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
));
21 NDR_CHECK(ndr_push_trailer_align(ndr
, 2));
23 if (ndr_flags
& NDR_BUFFERS
) {
25 return NDR_ERR_SUCCESS
;
28 static enum ndr_err_code
ndr_pull_spoolss_Time(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Time
*r
)
30 if (ndr_flags
& NDR_SCALARS
) {
31 NDR_CHECK(ndr_pull_align(ndr
, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->year
));
33 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->month
));
34 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day_of_week
));
35 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day
));
36 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hour
));
37 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->minute
));
38 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->second
));
39 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->millisecond
));
40 NDR_CHECK(ndr_pull_trailer_align(ndr
, 2));
42 if (ndr_flags
& NDR_BUFFERS
) {
44 return NDR_ERR_SUCCESS
;
47 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
49 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
52 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
54 if (ndr_flags
& NDR_SCALARS
) {
55 NDR_CHECK(ndr_push_align(ndr
, 5));
56 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
57 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
58 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
60 if (ndr_flags
& NDR_BUFFERS
) {
62 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
65 return NDR_ERR_SUCCESS
;
68 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
71 TALLOC_CTX
*_mem_save_time_0
;
72 if (ndr_flags
& NDR_SCALARS
) {
73 NDR_CHECK(ndr_pull_align(ndr
, 5));
74 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
75 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
77 NDR_PULL_ALLOC(ndr
, r
->time
);
81 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
83 if (ndr_flags
& NDR_BUFFERS
) {
85 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
86 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
87 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
88 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
91 return NDR_ERR_SUCCESS
;
94 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
96 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
98 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
99 ndr_print_ptr(ndr
, "time", r
->time
);
102 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
108 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
110 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
111 return NDR_ERR_SUCCESS
;
114 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
117 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
119 return NDR_ERR_SUCCESS
;
122 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
124 const char *val
= NULL
;
127 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
128 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
129 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
131 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
134 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
136 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
137 return NDR_ERR_SUCCESS
;
140 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
143 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
145 return NDR_ERR_SUCCESS
;
148 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
150 const char *val
= NULL
;
153 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
154 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
155 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
156 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
157 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
159 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
162 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
164 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
165 return NDR_ERR_SUCCESS
;
168 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
171 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
173 return NDR_ERR_SUCCESS
;
176 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
178 const char *val
= NULL
;
181 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
182 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
183 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
185 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
188 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
190 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
191 return NDR_ERR_SUCCESS
;
194 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
197 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
199 return NDR_ERR_SUCCESS
;
202 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
204 const char *val
= NULL
;
207 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
208 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
209 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
210 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
211 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
213 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
216 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
219 return NDR_ERR_SUCCESS
;
222 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
225 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
227 return NDR_ERR_SUCCESS
;
230 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
232 ndr_print_uint32(ndr
, name
, r
);
234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
242 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
243 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
244 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
245 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
246 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
262 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
265 return NDR_ERR_SUCCESS
;
268 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
271 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
273 return NDR_ERR_SUCCESS
;
276 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
278 ndr_print_uint32(ndr
, name
, r
);
280 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
281 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
282 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
283 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
284 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
285 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
286 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
287 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
288 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
289 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
290 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
291 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
292 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
296 static enum ndr_err_code
ndr_push_spoolss_Build(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_Build r
)
298 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
299 return NDR_ERR_SUCCESS
;
302 static enum ndr_err_code
ndr_pull_spoolss_Build(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_Build
*r
)
305 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
307 return NDR_ERR_SUCCESS
;
310 _PUBLIC_
void ndr_print_spoolss_Build(struct ndr_print
*ndr
, const char *name
, enum spoolss_Build r
)
312 const char *val
= NULL
;
315 case SPOOLSS_DEBUGGING_BUILD
: val
= "SPOOLSS_DEBUGGING_BUILD"; break;
316 case SPOOLSS_RELEASE_BUILD
: val
= "SPOOLSS_RELEASE_BUILD"; break;
318 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
321 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
323 if (ndr_flags
& NDR_SCALARS
) {
324 NDR_CHECK(ndr_push_align(ndr
, 5));
326 uint32_t _flags_save_string
= ndr
->flags
;
327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
328 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
329 ndr
->flags
= _flags_save_string
;
332 uint32_t _flags_save_string
= ndr
->flags
;
333 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
334 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
335 ndr
->flags
= _flags_save_string
;
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
340 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
344 NDR_CHECK(ndr_push_spoolss_Build(ndr
, NDR_SCALARS
, r
->free_build
));
345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
350 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
352 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
355 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
356 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
359 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
360 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
364 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
366 if (ndr_flags
& NDR_BUFFERS
) {
368 uint32_t _flags_save_string
= ndr
->flags
;
369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
370 if (r
->printername
) {
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
372 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
375 ndr
->flags
= _flags_save_string
;
378 uint32_t _flags_save_string
= ndr
->flags
;
379 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
381 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
382 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
383 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
385 ndr
->flags
= _flags_save_string
;
388 return NDR_ERR_SUCCESS
;
391 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
393 uint32_t _ptr_printername
;
394 TALLOC_CTX
*_mem_save_printername_0
;
395 uint32_t _ptr_servername
;
396 TALLOC_CTX
*_mem_save_servername_0
;
397 if (ndr_flags
& NDR_SCALARS
) {
398 NDR_CHECK(ndr_pull_align(ndr
, 5));
400 uint32_t _flags_save_string
= ndr
->flags
;
401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
403 if (_ptr_printername
) {
404 NDR_PULL_ALLOC(ndr
, r
->printername
);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
407 r
->printername
= NULL
;
409 ndr
->flags
= _flags_save_string
;
412 uint32_t _flags_save_string
= ndr
->flags
;
413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
415 if (_ptr_servername
) {
416 NDR_PULL_ALLOC(ndr
, r
->servername
);
417 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
419 r
->servername
= NULL
;
421 ndr
->flags
= _flags_save_string
;
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
426 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
430 NDR_CHECK(ndr_pull_spoolss_Build(ndr
, NDR_SCALARS
, &r
->free_build
));
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
435 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
436 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
438 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
441 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
442 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
445 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
446 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
450 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
452 if (ndr_flags
& NDR_BUFFERS
) {
454 uint32_t _flags_save_string
= ndr
->flags
;
455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
456 if (r
->printername
) {
457 uint32_t _relative_save_offset
;
458 _relative_save_offset
= ndr
->offset
;
459 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
460 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
461 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
462 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
464 if (ndr
->offset
> ndr
->relative_highest_offset
) {
465 ndr
->relative_highest_offset
= ndr
->offset
;
467 ndr
->offset
= _relative_save_offset
;
469 ndr
->flags
= _flags_save_string
;
472 uint32_t _flags_save_string
= ndr
->flags
;
473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
475 uint32_t _relative_save_offset
;
476 _relative_save_offset
= ndr
->offset
;
477 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
478 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
479 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
480 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
482 if (ndr
->offset
> ndr
->relative_highest_offset
) {
483 ndr
->relative_highest_offset
= ndr
->offset
;
485 ndr
->offset
= _relative_save_offset
;
487 ndr
->flags
= _flags_save_string
;
490 return NDR_ERR_SUCCESS
;
493 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
495 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
497 ndr_print_ptr(ndr
, "printername", r
->printername
);
499 if (r
->printername
) {
500 ndr_print_string(ndr
, "printername", r
->printername
);
503 ndr_print_ptr(ndr
, "servername", r
->servername
);
506 ndr_print_string(ndr
, "servername", r
->servername
);
509 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
510 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
511 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
512 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
513 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
514 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
515 ndr_print_uint32(ndr
, "version", r
->version
);
516 ndr_print_spoolss_Build(ndr
, "free_build", r
->free_build
);
517 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
518 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
519 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
520 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
521 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
522 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
523 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
524 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
525 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
526 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
527 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
528 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
529 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
530 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
531 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
532 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
533 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
534 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
535 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
539 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
541 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
544 static enum ndr_err_code
ndr_push_spoolss_DM_Signature(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_Signature r
)
546 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
547 return NDR_ERR_SUCCESS
;
550 static enum ndr_err_code
ndr_pull_spoolss_DM_Signature(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_Signature
*r
)
553 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
555 return NDR_ERR_SUCCESS
;
558 _PUBLIC_
void ndr_print_spoolss_DM_Signature(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_Signature r
)
560 const char *val
= NULL
;
563 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
: val
= "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
564 case SPOOLSS_DM_SIGNATURE_JTEXP
: val
= "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
565 case SPOOLSS_DM_SIGNATURE_PSEXTRA
: val
= "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
567 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
570 static enum ndr_err_code
ndr_push_spoolss_DM_Layout(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_Layout r
)
572 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
573 return NDR_ERR_SUCCESS
;
576 static enum ndr_err_code
ndr_pull_spoolss_DM_Layout(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_Layout
*r
)
579 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
581 return NDR_ERR_SUCCESS
;
584 _PUBLIC_
void ndr_print_spoolss_DM_Layout(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_Layout r
)
586 const char *val
= NULL
;
589 case SPOOLSS_DM_LAYOUT_NUP_DISABLED
: val
= "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
590 case SPOOLSS_DM_LAYOUT_NUP_2
: val
= "SPOOLSS_DM_LAYOUT_NUP_2"; break;
591 case SPOOLSS_DM_LAYOUT_NUP_4
: val
= "SPOOLSS_DM_LAYOUT_NUP_4"; break;
592 case SPOOLSS_DM_LAYOUT_NUP_6
: val
= "SPOOLSS_DM_LAYOUT_NUP_6"; break;
593 case SPOOLSS_DM_LAYOUT_NUP_9
: val
= "SPOOLSS_DM_LAYOUT_NUP_9"; break;
594 case SPOOLSS_DM_LAYOUT_NUP_16
: val
= "SPOOLSS_DM_LAYOUT_NUP_16"; break;
595 case SPOOLSS_DM_LAYOUT_BOOKLET
: val
= "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
597 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
600 static enum ndr_err_code
ndr_push_spoolss_DM_NupDirection(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_NupDirection r
)
602 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
603 return NDR_ERR_SUCCESS
;
606 static enum ndr_err_code
ndr_pull_spoolss_DM_NupDirection(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_NupDirection
*r
)
609 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
611 return NDR_ERR_SUCCESS
;
614 _PUBLIC_
void ndr_print_spoolss_DM_NupDirection(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_NupDirection r
)
616 const char *val
= NULL
;
619 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B
: val
= "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
620 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R
: val
= "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
621 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B
: val
= "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
622 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L
: val
= "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
624 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
627 static enum ndr_err_code
ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_NupBorderFlags r
)
629 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
630 return NDR_ERR_SUCCESS
;
633 static enum ndr_err_code
ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_NupBorderFlags
*r
)
636 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
638 return NDR_ERR_SUCCESS
;
641 _PUBLIC_
void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_NupBorderFlags r
)
643 const char *val
= NULL
;
646 case SPOOLSS_DM_NUP_BORDER_PRINT
: val
= "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
647 case SPOOLSS_DM_NUP_BORDER_NONE
: val
= "SPOOLSS_DM_NUP_BORDER_NONE"; break;
649 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
652 static enum ndr_err_code
ndr_push_spoolss_DM_BookletFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_BookletFlags r
)
654 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
655 return NDR_ERR_SUCCESS
;
658 static enum ndr_err_code
ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_BookletFlags
*r
)
661 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
663 return NDR_ERR_SUCCESS
;
666 _PUBLIC_
void ndr_print_spoolss_DM_BookletFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_BookletFlags r
)
668 const char *val
= NULL
;
671 case SPOOLSS_DM_BOOKLET_LEFT_FLIP
: val
= "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
672 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP
: val
= "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
674 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
677 static enum ndr_err_code
ndr_push_spoolss_DMUNI_Quality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DMUNI_Quality r
)
679 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
680 return NDR_ERR_SUCCESS
;
683 static enum ndr_err_code
ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DMUNI_Quality
*r
)
686 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
688 return NDR_ERR_SUCCESS
;
691 _PUBLIC_
void ndr_print_spoolss_DMUNI_Quality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DMUNI_Quality r
)
693 const char *val
= NULL
;
696 case SPOOLSS_DM_UNI_QUALITY_BEST
: val
= "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
697 case SPOOLSS_DM_UNI_QUALITY_MEDIUM
: val
= "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
698 case SPOOLSS_DM_UNI_QUALITY_DRAFT
: val
= "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
700 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
703 static enum ndr_err_code
ndr_push_spoolss_DMUNI_Flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
706 return NDR_ERR_SUCCESS
;
709 static enum ndr_err_code
ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
714 return NDR_ERR_SUCCESS
;
717 _PUBLIC_
void ndr_print_spoolss_DMUNI_Flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
719 ndr_print_uint32(ndr
, name
, r
);
721 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS
, r
);
722 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL
, r
);
723 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING
, r
);
727 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UNIDRVEXTRA
*r
)
729 uint32_t cntr_wReserved_0
;
730 uint32_t cntr_aOptions_0
;
731 if (ndr_flags
& NDR_SCALARS
) {
732 NDR_CHECK(ndr_push_align(ndr
, 4));
733 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr
, NDR_SCALARS
, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
));
734 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, 0x0022));
735 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wCoreJTExpSize
));
736 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, ndr_size_spoolss_UNIDRVEXTRA(r
, ndr
->iconv_convenience
, ndr
->flags
) + r
->wCoreJTExpSize
));
737 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wOEMExtra
));
738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dwChecksum32
));
739 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr
, NDR_SCALARS
, r
->dwFlags
));
740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bReversePrint
));
741 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr
, NDR_SCALARS
, r
->iLayout
));
742 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr
, NDR_SCALARS
, r
->iQuality
));
743 for (cntr_wReserved_0
= 0; cntr_wReserved_0
< 6; cntr_wReserved_0
++) {
744 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wReserved
[cntr_wReserved_0
]));
746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dwOptions
));
747 for (cntr_aOptions_0
= 0; cntr_aOptions_0
< 128; cntr_aOptions_0
++) {
748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->aOptions
[cntr_aOptions_0
]));
750 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr
, NDR_SCALARS
, r
->dwNupDirection
));
751 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr
, NDR_SCALARS
, r
->dwNupBorderFlags
));
752 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr
, NDR_SCALARS
, r
->dwBookletFlags
));
753 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
755 if (ndr_flags
& NDR_BUFFERS
) {
757 return NDR_ERR_SUCCESS
;
760 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UNIDRVEXTRA
*r
)
762 uint32_t cntr_wReserved_0
;
763 uint32_t cntr_aOptions_0
;
764 if (ndr_flags
& NDR_SCALARS
) {
765 NDR_CHECK(ndr_pull_align(ndr
, 4));
766 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr
, NDR_SCALARS
, &r
->dwSignature
));
767 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wVer
));
768 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wCoreJTExpSize
));
769 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wCoreFullSize
));
770 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wOEMExtra
));
771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dwChecksum32
));
772 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr
, NDR_SCALARS
, &r
->dwFlags
));
773 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bReversePrint
));
774 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr
, NDR_SCALARS
, &r
->iLayout
));
775 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr
, NDR_SCALARS
, &r
->iQuality
));
776 for (cntr_wReserved_0
= 0; cntr_wReserved_0
< 6; cntr_wReserved_0
++) {
777 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wReserved
[cntr_wReserved_0
]));
779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dwOptions
));
780 for (cntr_aOptions_0
= 0; cntr_aOptions_0
< 128; cntr_aOptions_0
++) {
781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->aOptions
[cntr_aOptions_0
]));
783 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr
, NDR_SCALARS
, &r
->dwNupDirection
));
784 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr
, NDR_SCALARS
, &r
->dwNupBorderFlags
));
785 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr
, NDR_SCALARS
, &r
->dwBookletFlags
));
786 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
788 if (ndr_flags
& NDR_BUFFERS
) {
790 return NDR_ERR_SUCCESS
;
793 _PUBLIC_
void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UNIDRVEXTRA
*r
)
795 uint32_t cntr_wReserved_0
;
796 uint32_t cntr_aOptions_0
;
797 ndr_print_struct(ndr
, name
, "spoolss_UNIDRVEXTRA");
799 ndr_print_spoolss_DM_Signature(ndr
, "dwSignature", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
:r
->dwSignature
);
800 ndr_print_uint16(ndr
, "wVer", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x0022:r
->wVer
);
801 ndr_print_uint16(ndr
, "wCoreJTExpSize", r
->wCoreJTExpSize
);
802 ndr_print_uint16(ndr
, "wCoreFullSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_UNIDRVEXTRA(r
, ndr
->iconv_convenience
, ndr
->flags
) + r
->wCoreJTExpSize
:r
->wCoreFullSize
);
803 ndr_print_uint16(ndr
, "wOEMExtra", r
->wOEMExtra
);
804 ndr_print_uint32(ndr
, "dwChecksum32", r
->dwChecksum32
);
805 ndr_print_spoolss_DMUNI_Flags(ndr
, "dwFlags", r
->dwFlags
);
806 ndr_print_uint32(ndr
, "bReversePrint", r
->bReversePrint
);
807 ndr_print_spoolss_DM_Layout(ndr
, "iLayout", r
->iLayout
);
808 ndr_print_spoolss_DMUNI_Quality(ndr
, "iQuality", r
->iQuality
);
809 ndr
->print(ndr
, "%s: ARRAY(%d)", "wReserved", (int)6);
811 for (cntr_wReserved_0
=0;cntr_wReserved_0
<6;cntr_wReserved_0
++) {
813 if (asprintf(&idx_0
, "[%d]", cntr_wReserved_0
) != -1) {
814 ndr_print_uint16(ndr
, "wReserved", r
->wReserved
[cntr_wReserved_0
]);
819 ndr_print_uint32(ndr
, "dwOptions", r
->dwOptions
);
820 ndr
->print(ndr
, "%s: ARRAY(%d)", "aOptions", (int)128);
822 for (cntr_aOptions_0
=0;cntr_aOptions_0
<128;cntr_aOptions_0
++) {
824 if (asprintf(&idx_0
, "[%d]", cntr_aOptions_0
) != -1) {
825 ndr_print_uint32(ndr
, "aOptions", r
->aOptions
[cntr_aOptions_0
]);
830 ndr_print_spoolss_DM_NupDirection(ndr
, "dwNupDirection", r
->dwNupDirection
);
831 ndr_print_spoolss_DM_NupBorderFlags(ndr
, "dwNupBorderFlags", r
->dwNupBorderFlags
);
832 ndr_print_spoolss_DM_BookletFlags(ndr
, "dwBookletFlags", r
->dwBookletFlags
);
836 _PUBLIC_
size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA
*r
, struct smb_iconv_convenience
*ic
, int flags
)
838 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_UNIDRVEXTRA
, ic
);
841 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
844 return NDR_ERR_SUCCESS
;
847 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
850 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
852 return NDR_ERR_SUCCESS
;
855 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
857 ndr_print_uint32(ndr
, name
, r
);
859 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
860 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
861 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
862 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
863 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
864 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
865 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
866 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
867 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
868 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
869 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
870 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
871 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
872 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
873 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
874 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
877 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
878 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
883 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
884 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
890 static enum ndr_err_code
ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion r
)
892 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
893 return NDR_ERR_SUCCESS
;
896 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion
*r
)
899 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
901 return NDR_ERR_SUCCESS
;
904 _PUBLIC_
void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeSpecVersion r
)
906 const char *val
= NULL
;
909 case DMSPEC_NT3
: val
= "DMSPEC_NT3"; break;
910 case DMSPEC_WIN95_98_ME
: val
= "DMSPEC_WIN95_98_ME"; break;
911 case DMSPEC_NT4_AND_ABOVE
: val
= "DMSPEC_NT4_AND_ABOVE"; break;
913 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
916 static enum ndr_err_code
ndr_push_spoolss_DeviceModeOrientation(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation r
)
918 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
919 return NDR_ERR_SUCCESS
;
922 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation
*r
)
925 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
927 return NDR_ERR_SUCCESS
;
930 _PUBLIC_
void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeOrientation r
)
932 const char *val
= NULL
;
935 case DMORIENT_PORTRAIT
: val
= "DMORIENT_PORTRAIT"; break;
936 case DMORIENT_LANDSCAPE
: val
= "DMORIENT_LANDSCAPE"; break;
938 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
941 static enum ndr_err_code
ndr_push_spoolss_DeviceModePaperSize(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize r
)
943 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
944 return NDR_ERR_SUCCESS
;
947 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize
*r
)
950 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
952 return NDR_ERR_SUCCESS
;
955 _PUBLIC_
void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePaperSize r
)
957 const char *val
= NULL
;
960 case DMPAPER_LETTER
: val
= "DMPAPER_LETTER"; break;
961 case DMPAPER_LETTERSMALL
: val
= "DMPAPER_LETTERSMALL"; break;
962 case DMPAPER_TABLOID
: val
= "DMPAPER_TABLOID"; break;
963 case DMPAPER_LEDGER
: val
= "DMPAPER_LEDGER"; break;
964 case DMPAPER_LEGAL
: val
= "DMPAPER_LEGAL"; break;
965 case DMPAPER_STATEMENT
: val
= "DMPAPER_STATEMENT"; break;
966 case DMPAPER_EXECUTIVE
: val
= "DMPAPER_EXECUTIVE"; break;
967 case DMPAPER_A3
: val
= "DMPAPER_A3"; break;
968 case DMPAPER_A4
: val
= "DMPAPER_A4"; break;
969 case DMPAPER_A4SMALL
: val
= "DMPAPER_A4SMALL"; break;
970 case DMPAPER_A5
: val
= "DMPAPER_A5"; break;
971 case DMPAPER_B4
: val
= "DMPAPER_B4"; break;
972 case DMPAPER_B5
: val
= "DMPAPER_B5"; break;
973 case DMPAPER_FOLIO
: val
= "DMPAPER_FOLIO"; break;
974 case DMPAPER_QUARTO
: val
= "DMPAPER_QUARTO"; break;
975 case DMPAPER_10X14
: val
= "DMPAPER_10X14"; break;
976 case DMPAPER_11X17
: val
= "DMPAPER_11X17"; break;
977 case DMPAPER_NOTE
: val
= "DMPAPER_NOTE"; break;
978 case DMPAPER_ENV_9
: val
= "DMPAPER_ENV_9"; break;
979 case DMPAPER_ENV_10
: val
= "DMPAPER_ENV_10"; break;
980 case DMPAPER_ENV_11
: val
= "DMPAPER_ENV_11"; break;
981 case DMPAPER_ENV_12
: val
= "DMPAPER_ENV_12"; break;
982 case DMPAPER_ENV_14
: val
= "DMPAPER_ENV_14"; break;
983 case DMPAPER_CSHEET
: val
= "DMPAPER_CSHEET"; break;
984 case DMPAPER_DSHEET
: val
= "DMPAPER_DSHEET"; break;
985 case DMPAPER_ESHEET
: val
= "DMPAPER_ESHEET"; break;
986 case DMPAPER_ENV_DL
: val
= "DMPAPER_ENV_DL"; break;
987 case DMPAPER_ENV_C5
: val
= "DMPAPER_ENV_C5"; break;
988 case DMPAPER_ENV_C3
: val
= "DMPAPER_ENV_C3"; break;
989 case DMPAPER_ENV_C4
: val
= "DMPAPER_ENV_C4"; break;
990 case DMPAPER_ENV_C6
: val
= "DMPAPER_ENV_C6"; break;
991 case DMPAPER_ENV_C65
: val
= "DMPAPER_ENV_C65"; break;
992 case DMPAPER_ENV_B4
: val
= "DMPAPER_ENV_B4"; break;
993 case DMPAPER_ENV_B5
: val
= "DMPAPER_ENV_B5"; break;
994 case DMPAPER_ENV_B6
: val
= "DMPAPER_ENV_B6"; break;
995 case DMPAPER_ENV_ITALY
: val
= "DMPAPER_ENV_ITALY"; break;
996 case DMPAPER_ENV_MONARCH
: val
= "DMPAPER_ENV_MONARCH"; break;
997 case DMPAPER_ENV_PERSONAL
: val
= "DMPAPER_ENV_PERSONAL"; break;
998 case DMPAPER_FANFOLD_US
: val
= "DMPAPER_FANFOLD_US"; break;
999 case DMPAPER_FANFOLD_STD_GERMAN
: val
= "DMPAPER_FANFOLD_STD_GERMAN"; break;
1000 case DMPAPER_FANFOLD_LGL_GERMAN
: val
= "DMPAPER_FANFOLD_LGL_GERMAN"; break;
1001 case DMPAPER_DBL_JAPANESE_POSTCARD
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
1002 case DMPAPER_A6
: val
= "DMPAPER_A6"; break;
1003 case DMPAPER_JENV_KAKU2
: val
= "DMPAPER_JENV_KAKU2"; break;
1004 case DMPAPER_JENV_KAKU3
: val
= "DMPAPER_JENV_KAKU3"; break;
1005 case DMPAPER_JENV_CHOU3
: val
= "DMPAPER_JENV_CHOU3"; break;
1006 case DMPAPER_JENV_CHOU4
: val
= "DMPAPER_JENV_CHOU4"; break;
1007 case DMPAPER_LETTER_ROTATED
: val
= "DMPAPER_LETTER_ROTATED"; break;
1008 case DMPAPER_A3_ROTATED
: val
= "DMPAPER_A3_ROTATED"; break;
1009 case DMPAPER_A4_ROTATED
: val
= "DMPAPER_A4_ROTATED"; break;
1010 case DMPAPER_A5_ROTATED
: val
= "DMPAPER_A5_ROTATED"; break;
1011 case DMPAPER_B4_JIS_ROTATED
: val
= "DMPAPER_B4_JIS_ROTATED"; break;
1012 case DMPAPER_B5_JIS_ROTATED
: val
= "DMPAPER_B5_JIS_ROTATED"; break;
1013 case DMPAPER_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1014 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1015 case DMPAPER_A6_ROTATED
: val
= "DMPAPER_A6_ROTATED"; break;
1016 case DMPAPER_JENV_KAKU2_ROTATED
: val
= "DMPAPER_JENV_KAKU2_ROTATED"; break;
1017 case DMPAPER_JENV_KAKU3_ROTATED
: val
= "DMPAPER_JENV_KAKU3_ROTATED"; break;
1018 case DMPAPER_JENV_CHOU3_ROTATED
: val
= "DMPAPER_JENV_CHOU3_ROTATED"; break;
1019 case DMPAPER_JENV_CHOU4_ROTATED
: val
= "DMPAPER_JENV_CHOU4_ROTATED"; break;
1020 case DMPAPER_B6_JIS
: val
= "DMPAPER_B6_JIS"; break;
1021 case DMPAPER_B6_JIS_ROTATED
: val
= "DMPAPER_B6_JIS_ROTATED"; break;
1022 case DMPAPER_12X11
: val
= "DMPAPER_12X11"; break;
1023 case DMPAPER_JENV_YOU4
: val
= "DMPAPER_JENV_YOU4"; break;
1024 case DMPAPER_JENV_YOU4_ROTATED
: val
= "DMPAPER_JENV_YOU4_ROTATED"; break;
1025 case DMPAPER_P16K
: val
= "DMPAPER_P16K"; break;
1026 case DMPAPER_P32K
: val
= "DMPAPER_P32K"; break;
1027 case DMPAPER_P32KBIG
: val
= "DMPAPER_P32KBIG"; break;
1028 case DMPAPER_PENV_1
: val
= "DMPAPER_PENV_1"; break;
1029 case DMPAPER_PENV_2
: val
= "DMPAPER_PENV_2"; break;
1030 case DMPAPER_PENV_3
: val
= "DMPAPER_PENV_3"; break;
1031 case DMPAPER_PENV_4
: val
= "DMPAPER_PENV_4"; break;
1032 case DMPAPER_PENV_5
: val
= "DMPAPER_PENV_5"; break;
1033 case DMPAPER_PENV_6
: val
= "DMPAPER_PENV_6"; break;
1034 case DMPAPER_PENV_7
: val
= "DMPAPER_PENV_7"; break;
1035 case DMPAPER_PENV_8
: val
= "DMPAPER_PENV_8"; break;
1036 case DMPAPER_PENV_9
: val
= "DMPAPER_PENV_9"; break;
1037 case DMPAPER_PENV_10
: val
= "DMPAPER_PENV_10"; break;
1038 case DMPAPER_P16K_ROTATED
: val
= "DMPAPER_P16K_ROTATED"; break;
1039 case DMPAPER_P32K_ROTATED
: val
= "DMPAPER_P32K_ROTATED"; break;
1040 case DMPAPER_P32KBIG_ROTATED
: val
= "DMPAPER_P32KBIG_ROTATED"; break;
1041 case DMPAPER_PENV_1_ROTATED
: val
= "DMPAPER_PENV_1_ROTATED"; break;
1042 case DMPAPER_PENV_2_ROTATED
: val
= "DMPAPER_PENV_2_ROTATED"; break;
1043 case DMPAPER_PENV_3_ROTATED
: val
= "DMPAPER_PENV_3_ROTATED"; break;
1044 case DMPAPER_PENV_4_ROTATED
: val
= "DMPAPER_PENV_4_ROTATED"; break;
1045 case DMPAPER_PENV_5_ROTATED
: val
= "DMPAPER_PENV_5_ROTATED"; break;
1046 case DMPAPER_PENV_6_ROTATED
: val
= "DMPAPER_PENV_6_ROTATED"; break;
1047 case DMPAPER_PENV_7_ROTATED
: val
= "DMPAPER_PENV_7_ROTATED"; break;
1048 case DMPAPER_PENV_8_ROTATED
: val
= "DMPAPER_PENV_8_ROTATED"; break;
1049 case DMPAPER_PENV_9_ROTATED
: val
= "DMPAPER_PENV_9_ROTATED"; break;
1050 case DMPAPER_PENV_10_ROTATED
: val
= "DMPAPER_PENV_10_ROTATED"; break;
1052 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1055 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource r
)
1057 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1058 return NDR_ERR_SUCCESS
;
1061 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource
*r
)
1064 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1066 return NDR_ERR_SUCCESS
;
1069 _PUBLIC_
void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDefaultSource r
)
1071 const char *val
= NULL
;
1074 case DMBIN_UPPER
: val
= "DMBIN_UPPER"; break;
1075 case DMBIN_LOWER
: val
= "DMBIN_LOWER"; break;
1076 case DMBIN_MIDDLE
: val
= "DMBIN_MIDDLE"; break;
1077 case DMBIN_MANUAL
: val
= "DMBIN_MANUAL"; break;
1078 case DMBIN_ENVELOPE
: val
= "DMBIN_ENVELOPE"; break;
1079 case DMBIN_ENVMANUAL
: val
= "DMBIN_ENVMANUAL"; break;
1080 case DMBIN_AUTO
: val
= "DMBIN_AUTO"; break;
1081 case DMBIN_TRACTOR
: val
= "DMBIN_TRACTOR"; break;
1082 case DMBIN_SMALLFMT
: val
= "DMBIN_SMALLFMT"; break;
1083 case DMBIN_LARGEFMT
: val
= "DMBIN_LARGEFMT"; break;
1084 case DMBIN_LARGECAPACITY
: val
= "DMBIN_LARGECAPACITY"; break;
1085 case DMBIN_CASSETTE
: val
= "DMBIN_CASSETTE"; break;
1086 case DMBIN_FORMSOURCE
: val
= "DMBIN_FORMSOURCE"; break;
1088 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1091 static enum ndr_err_code
ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality r
)
1093 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1094 return NDR_ERR_SUCCESS
;
1097 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality
*r
)
1100 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1102 return NDR_ERR_SUCCESS
;
1105 _PUBLIC_
void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePrintQuality r
)
1107 const char *val
= NULL
;
1110 case DMRES_HIGH
: val
= "DMRES_HIGH"; break;
1111 case DMRES_MEDIUM
: val
= "DMRES_MEDIUM"; break;
1112 case DMRES_LOW
: val
= "DMRES_LOW"; break;
1113 case DMRES_DRAFT
: val
= "DMRES_DRAFT"; break;
1115 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1118 static enum ndr_err_code
ndr_push_spoolss_DeviceModeColor(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor r
)
1120 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1121 return NDR_ERR_SUCCESS
;
1124 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeColor(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor
*r
)
1127 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1129 return NDR_ERR_SUCCESS
;
1132 _PUBLIC_
void ndr_print_spoolss_DeviceModeColor(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeColor r
)
1134 const char *val
= NULL
;
1137 case DMRES_MONOCHROME
: val
= "DMRES_MONOCHROME"; break;
1138 case DMRES_COLOR
: val
= "DMRES_COLOR"; break;
1140 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1143 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDuplex(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex r
)
1145 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1146 return NDR_ERR_SUCCESS
;
1149 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex
*r
)
1152 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1154 return NDR_ERR_SUCCESS
;
1157 _PUBLIC_
void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDuplex r
)
1159 const char *val
= NULL
;
1162 case DMDUP_SIMPLEX
: val
= "DMDUP_SIMPLEX"; break;
1163 case DMDUP_VERTICAL
: val
= "DMDUP_VERTICAL"; break;
1164 case DMDUP_HORIZONTAL
: val
= "DMDUP_HORIZONTAL"; break;
1166 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1169 static enum ndr_err_code
ndr_push_spoolss_DeviceModeTTOption(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption r
)
1171 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1172 return NDR_ERR_SUCCESS
;
1175 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption
*r
)
1178 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1180 return NDR_ERR_SUCCESS
;
1183 _PUBLIC_
void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeTTOption r
)
1185 const char *val
= NULL
;
1188 case DMTT_BITMAP
: val
= "DMTT_BITMAP"; break;
1189 case DMTT_DOWNLOAD
: val
= "DMTT_DOWNLOAD"; break;
1190 case DMTT_SUBDEV
: val
= "DMTT_SUBDEV"; break;
1191 case DMTT_DOWNLOAD_OUTLINE
: val
= "DMTT_DOWNLOAD_OUTLINE"; break;
1193 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1196 static enum ndr_err_code
ndr_push_spoolss_DeviceModeCollate(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate r
)
1198 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1199 return NDR_ERR_SUCCESS
;
1202 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate
*r
)
1205 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1207 return NDR_ERR_SUCCESS
;
1210 _PUBLIC_
void ndr_print_spoolss_DeviceModeCollate(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeCollate r
)
1212 const char *val
= NULL
;
1215 case DMCOLLATE_FALSE
: val
= "DMCOLLATE_FALSE"; break;
1216 case DMCOLLATE_TRUE
: val
= "DMCOLLATE_TRUE"; break;
1218 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1221 static enum ndr_err_code
ndr_push_spoolss_DeviceModeNUp(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp r
)
1223 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1224 return NDR_ERR_SUCCESS
;
1227 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp
*r
)
1230 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1232 return NDR_ERR_SUCCESS
;
1235 _PUBLIC_
void ndr_print_spoolss_DeviceModeNUp(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeNUp r
)
1237 const char *val
= NULL
;
1240 case DMNUP_SYSTEM
: val
= "DMNUP_SYSTEM"; break;
1241 case DMNUP_ONEUP
: val
= "DMNUP_ONEUP"; break;
1243 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1246 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod r
)
1248 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1249 return NDR_ERR_SUCCESS
;
1252 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod
*r
)
1255 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1257 return NDR_ERR_SUCCESS
;
1260 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMMethod r
)
1262 const char *val
= NULL
;
1265 case DMICMMETHOD_NONE
: val
= "DMICMMETHOD_NONE"; break;
1266 case DMICMMETHOD_SYSTEM
: val
= "DMICMMETHOD_SYSTEM"; break;
1267 case DMICMMETHOD_DRIVER
: val
= "DMICMMETHOD_DRIVER"; break;
1268 case DMICMMETHOD_DEVICE
: val
= "DMICMMETHOD_DEVICE"; break;
1270 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1273 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent r
)
1275 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1276 return NDR_ERR_SUCCESS
;
1279 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent
*r
)
1282 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1284 return NDR_ERR_SUCCESS
;
1287 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMIntent r
)
1289 const char *val
= NULL
;
1292 case DMICM_SATURATE
: val
= "DMICM_SATURATE"; break;
1293 case DMICM_CONTRAST
: val
= "DMICM_CONTRAST"; break;
1294 case DMICM_COLORIMETRIC
: val
= "DMICM_COLORIMETRIC"; break;
1295 case DMICM_ABS_COLORIMETRIC
: val
= "DMICM_ABS_COLORIMETRIC"; break;
1297 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1300 static enum ndr_err_code
ndr_push_spoolss_DeviceModeMediaType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType r
)
1302 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1303 return NDR_ERR_SUCCESS
;
1306 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType
*r
)
1309 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1311 return NDR_ERR_SUCCESS
;
1314 _PUBLIC_
void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeMediaType r
)
1316 const char *val
= NULL
;
1319 case DMMEDIA_STANDARD
: val
= "DMMEDIA_STANDARD"; break;
1320 case DMMEDIA_TRANSPARENCY
: val
= "DMMEDIA_TRANSPARENCY"; break;
1321 case DMMEDIA_GLOSSY
: val
= "DMMEDIA_GLOSSY"; break;
1323 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1326 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDitherType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType r
)
1328 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1329 return NDR_ERR_SUCCESS
;
1332 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType
*r
)
1335 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1337 return NDR_ERR_SUCCESS
;
1340 _PUBLIC_
void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDitherType r
)
1342 const char *val
= NULL
;
1345 case DMDITHER_NONE
: val
= "DMDITHER_NONE"; break;
1346 case DMDITHER_COARSE
: val
= "DMDITHER_COARSE"; break;
1347 case DMDITHER_FINE
: val
= "DMDITHER_FINE"; break;
1348 case DMDITHER_LINEART
: val
= "DMDITHER_LINEART"; break;
1349 case DMDITHER_ERRORDIFFUSION
: val
= "DMDITHER_ERRORDIFFUSION"; break;
1350 case DMDITHER_RESERVED6
: val
= "DMDITHER_RESERVED6"; break;
1351 case DMDITHER_RESERVED7
: val
= "DMDITHER_RESERVED7"; break;
1352 case DMDITHER_RESERVED8
: val
= "DMDITHER_RESERVED8"; break;
1353 case DMDITHER_RESERVED9
: val
= "DMDITHER_RESERVED9"; break;
1354 case DMDITHER_GRAYSCALE
: val
= "DMDITHER_GRAYSCALE"; break;
1356 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1359 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
1361 if (ndr_flags
& NDR_SCALARS
) {
1362 NDR_CHECK(ndr_push_align(ndr
, 4));
1363 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1364 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, r
->specversion
));
1365 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
1366 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
1367 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
1368 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
1369 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, r
->orientation
));
1370 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, r
->papersize
));
1371 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
1372 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
1373 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
1374 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
1375 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, r
->defaultsource
));
1376 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, r
->printquality
));
1377 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, r
->color
));
1378 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, r
->duplex
));
1379 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
1380 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, r
->ttoption
));
1381 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, r
->collate
));
1382 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1383 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
1384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
1385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
1386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
1387 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, r
->displayflags
));
1388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
1389 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, r
->icmmethod
));
1390 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, r
->icmintent
));
1391 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, r
->mediatype
));
1392 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, r
->dithertype
));
1393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
1394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
1395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
1396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
1398 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1401 struct ndr_push
*_ndr_driverextra_data
;
1402 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1403 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
1404 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1406 ndr
->flags
= _flags_save_DATA_BLOB
;
1408 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1410 if (ndr_flags
& NDR_BUFFERS
) {
1412 return NDR_ERR_SUCCESS
;
1415 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
1417 if (ndr_flags
& NDR_SCALARS
) {
1418 NDR_CHECK(ndr_pull_align(ndr
, 4));
1419 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1420 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, &r
->specversion
));
1421 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
1422 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1423 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
1424 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
1425 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, &r
->orientation
));
1426 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, &r
->papersize
));
1427 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
1428 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
1429 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
1430 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
1431 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, &r
->defaultsource
));
1432 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, &r
->printquality
));
1433 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, &r
->color
));
1434 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, &r
->duplex
));
1435 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
1436 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, &r
->ttoption
));
1437 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, &r
->collate
));
1438 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1439 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
1440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
1441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
1442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
1443 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, &r
->displayflags
));
1444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
1445 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, &r
->icmmethod
));
1446 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, &r
->icmintent
));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, &r
->mediatype
));
1448 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, &r
->dithertype
));
1449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1450 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1451 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
1452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
1454 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1457 struct ndr_pull
*_ndr_driverextra_data
;
1458 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
1459 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
1460 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
1462 ndr
->flags
= _flags_save_DATA_BLOB
;
1464 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1466 if (ndr_flags
& NDR_BUFFERS
) {
1468 return NDR_ERR_SUCCESS
;
1471 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
1473 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
1475 ndr_print_string(ndr
, "devicename", r
->devicename
);
1476 ndr_print_spoolss_DeviceModeSpecVersion(ndr
, "specversion", r
->specversion
);
1477 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
1478 ndr_print_uint16(ndr
, "size", r
->size
);
1479 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
1480 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
1481 ndr_print_spoolss_DeviceModeOrientation(ndr
, "orientation", r
->orientation
);
1482 ndr_print_spoolss_DeviceModePaperSize(ndr
, "papersize", r
->papersize
);
1483 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
1484 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
1485 ndr_print_uint16(ndr
, "scale", r
->scale
);
1486 ndr_print_uint16(ndr
, "copies", r
->copies
);
1487 ndr_print_spoolss_DeviceModeDefaultSource(ndr
, "defaultsource", r
->defaultsource
);
1488 ndr_print_spoolss_DeviceModePrintQuality(ndr
, "printquality", r
->printquality
);
1489 ndr_print_spoolss_DeviceModeColor(ndr
, "color", r
->color
);
1490 ndr_print_spoolss_DeviceModeDuplex(ndr
, "duplex", r
->duplex
);
1491 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
1492 ndr_print_spoolss_DeviceModeTTOption(ndr
, "ttoption", r
->ttoption
);
1493 ndr_print_spoolss_DeviceModeCollate(ndr
, "collate", r
->collate
);
1494 ndr_print_string(ndr
, "formname", r
->formname
);
1495 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
1496 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
1497 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
1498 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
1499 ndr_print_spoolss_DeviceModeNUp(ndr
, "displayflags", r
->displayflags
);
1500 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
1501 ndr_print_spoolss_DeviceModeICMMethod(ndr
, "icmmethod", r
->icmmethod
);
1502 ndr_print_spoolss_DeviceModeICMIntent(ndr
, "icmintent", r
->icmintent
);
1503 ndr_print_spoolss_DeviceModeMediaType(ndr
, "mediatype", r
->mediatype
);
1504 ndr_print_spoolss_DeviceModeDitherType(ndr
, "dithertype", r
->dithertype
);
1505 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
1506 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
1507 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
1508 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
1509 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
1513 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1515 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
1518 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1521 return NDR_ERR_SUCCESS
;
1524 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1529 return NDR_ERR_SUCCESS
;
1532 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1534 ndr_print_uint32(ndr
, name
, r
);
1536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
1537 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
1538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
1539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
1540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
1541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
1542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
1543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
1544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
1545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
1546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
1547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
1548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
1549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
1550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
1551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
1552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
1553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
1554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
1558 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1561 return NDR_ERR_SUCCESS
;
1564 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1569 return NDR_ERR_SUCCESS
;
1572 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1574 ndr_print_uint32(ndr
, name
, r
);
1576 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
1577 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
1578 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
1579 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
1580 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
1581 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
1582 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
1583 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
1584 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
1585 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
1586 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
1587 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
1588 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
1589 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
1590 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
1591 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
1595 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
1597 if (ndr_flags
& NDR_SCALARS
) {
1598 NDR_CHECK(ndr_push_align(ndr
, 5));
1599 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
1601 uint32_t _flags_save_string
= ndr
->flags
;
1602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1603 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
1604 ndr
->flags
= _flags_save_string
;
1607 uint32_t _flags_save_string
= ndr
->flags
;
1608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1609 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
1610 ndr
->flags
= _flags_save_string
;
1613 uint32_t _flags_save_string
= ndr
->flags
;
1614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1615 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1616 ndr
->flags
= _flags_save_string
;
1618 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1620 if (ndr_flags
& NDR_BUFFERS
) {
1622 uint32_t _flags_save_string
= ndr
->flags
;
1623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1624 if (r
->description
) {
1625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
1626 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
1627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
1629 ndr
->flags
= _flags_save_string
;
1632 uint32_t _flags_save_string
= ndr
->flags
;
1633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name
));
1636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
1637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name
));
1639 ndr
->flags
= _flags_save_string
;
1642 uint32_t _flags_save_string
= ndr
->flags
;
1643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1645 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->comment
));
1646 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1647 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->comment
));
1649 ndr
->flags
= _flags_save_string
;
1652 return NDR_ERR_SUCCESS
;
1655 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
1657 uint32_t _ptr_description
;
1658 TALLOC_CTX
*_mem_save_description_0
;
1660 TALLOC_CTX
*_mem_save_name_0
;
1661 uint32_t _ptr_comment
;
1662 TALLOC_CTX
*_mem_save_comment_0
;
1663 if (ndr_flags
& NDR_SCALARS
) {
1664 NDR_CHECK(ndr_pull_align(ndr
, 5));
1665 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
1667 uint32_t _flags_save_string
= ndr
->flags
;
1668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
1670 if (_ptr_description
) {
1671 NDR_PULL_ALLOC(ndr
, r
->description
);
1672 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
1674 r
->description
= NULL
;
1676 ndr
->flags
= _flags_save_string
;
1679 uint32_t _flags_save_string
= ndr
->flags
;
1680 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
1683 NDR_PULL_ALLOC(ndr
, r
->name
);
1684 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
1688 ndr
->flags
= _flags_save_string
;
1691 uint32_t _flags_save_string
= ndr
->flags
;
1692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1695 NDR_PULL_ALLOC(ndr
, r
->comment
);
1696 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1700 ndr
->flags
= _flags_save_string
;
1702 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1704 if (ndr_flags
& NDR_BUFFERS
) {
1706 uint32_t _flags_save_string
= ndr
->flags
;
1707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1708 if (r
->description
) {
1709 uint32_t _relative_save_offset
;
1710 _relative_save_offset
= ndr
->offset
;
1711 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
1712 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1713 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
1714 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
1715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
1716 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1717 ndr
->relative_highest_offset
= ndr
->offset
;
1719 ndr
->offset
= _relative_save_offset
;
1721 ndr
->flags
= _flags_save_string
;
1724 uint32_t _flags_save_string
= ndr
->flags
;
1725 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1727 uint32_t _relative_save_offset
;
1728 _relative_save_offset
= ndr
->offset
;
1729 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
1730 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1731 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
1732 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
1733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
1734 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1735 ndr
->relative_highest_offset
= ndr
->offset
;
1737 ndr
->offset
= _relative_save_offset
;
1739 ndr
->flags
= _flags_save_string
;
1742 uint32_t _flags_save_string
= ndr
->flags
;
1743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1745 uint32_t _relative_save_offset
;
1746 _relative_save_offset
= ndr
->offset
;
1747 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1748 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1749 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1750 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1752 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1753 ndr
->relative_highest_offset
= ndr
->offset
;
1755 ndr
->offset
= _relative_save_offset
;
1757 ndr
->flags
= _flags_save_string
;
1760 return NDR_ERR_SUCCESS
;
1763 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
1765 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
1767 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
1768 ndr_print_ptr(ndr
, "description", r
->description
);
1770 if (r
->description
) {
1771 ndr_print_string(ndr
, "description", r
->description
);
1774 ndr_print_ptr(ndr
, "name", r
->name
);
1777 ndr_print_string(ndr
, "name", r
->name
);
1780 ndr_print_ptr(ndr
, "comment", r
->comment
);
1783 ndr_print_string(ndr
, "comment", r
->comment
);
1789 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1791 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
1794 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1796 uint32_t _ptr_servername
;
1797 TALLOC_CTX
*_mem_save_servername_0
;
1798 uint32_t _ptr_printername
;
1799 TALLOC_CTX
*_mem_save_printername_0
;
1800 uint32_t _ptr_sharename
;
1801 TALLOC_CTX
*_mem_save_sharename_0
;
1802 uint32_t _ptr_portname
;
1803 TALLOC_CTX
*_mem_save_portname_0
;
1804 uint32_t _ptr_drivername
;
1805 TALLOC_CTX
*_mem_save_drivername_0
;
1806 uint32_t _ptr_comment
;
1807 TALLOC_CTX
*_mem_save_comment_0
;
1808 uint32_t _ptr_location
;
1809 TALLOC_CTX
*_mem_save_location_0
;
1810 uint32_t _ptr_devmode
;
1811 TALLOC_CTX
*_mem_save_devmode_0
;
1812 uint32_t _ptr_sepfile
;
1813 TALLOC_CTX
*_mem_save_sepfile_0
;
1814 uint32_t _ptr_printprocessor
;
1815 TALLOC_CTX
*_mem_save_printprocessor_0
;
1816 uint32_t _ptr_datatype
;
1817 TALLOC_CTX
*_mem_save_datatype_0
;
1818 uint32_t _ptr_parameters
;
1819 TALLOC_CTX
*_mem_save_parameters_0
;
1820 uint32_t _ptr_secdesc
;
1821 TALLOC_CTX
*_mem_save_secdesc_0
;
1822 if (ndr_flags
& NDR_SCALARS
) {
1823 NDR_CHECK(ndr_pull_align(ndr
, 5));
1825 uint32_t _flags_save_string
= ndr
->flags
;
1826 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1828 if (_ptr_servername
) {
1829 NDR_PULL_ALLOC(ndr
, r
->servername
);
1830 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1832 r
->servername
= NULL
;
1834 ndr
->flags
= _flags_save_string
;
1837 uint32_t _flags_save_string
= ndr
->flags
;
1838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1839 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1840 if (_ptr_printername
) {
1841 NDR_PULL_ALLOC(ndr
, r
->printername
);
1842 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1844 r
->printername
= NULL
;
1846 ndr
->flags
= _flags_save_string
;
1849 uint32_t _flags_save_string
= ndr
->flags
;
1850 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1851 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1852 if (_ptr_sharename
) {
1853 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1854 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1856 r
->sharename
= NULL
;
1858 ndr
->flags
= _flags_save_string
;
1861 uint32_t _flags_save_string
= ndr
->flags
;
1862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1864 if (_ptr_portname
) {
1865 NDR_PULL_ALLOC(ndr
, r
->portname
);
1866 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1870 ndr
->flags
= _flags_save_string
;
1873 uint32_t _flags_save_string
= ndr
->flags
;
1874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1875 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1876 if (_ptr_drivername
) {
1877 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1878 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1880 r
->drivername
= NULL
;
1882 ndr
->flags
= _flags_save_string
;
1885 uint32_t _flags_save_string
= ndr
->flags
;
1886 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1887 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1889 NDR_PULL_ALLOC(ndr
, r
->comment
);
1890 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1894 ndr
->flags
= _flags_save_string
;
1897 uint32_t _flags_save_string
= ndr
->flags
;
1898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1900 if (_ptr_location
) {
1901 NDR_PULL_ALLOC(ndr
, r
->location
);
1902 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1906 ndr
->flags
= _flags_save_string
;
1909 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1913 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1914 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1918 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1921 uint32_t _flags_save_string
= ndr
->flags
;
1922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1925 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1926 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1930 ndr
->flags
= _flags_save_string
;
1933 uint32_t _flags_save_string
= ndr
->flags
;
1934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1936 if (_ptr_printprocessor
) {
1937 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1938 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1940 r
->printprocessor
= NULL
;
1942 ndr
->flags
= _flags_save_string
;
1945 uint32_t _flags_save_string
= ndr
->flags
;
1946 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1948 if (_ptr_datatype
) {
1949 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1950 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1954 ndr
->flags
= _flags_save_string
;
1957 uint32_t _flags_save_string
= ndr
->flags
;
1958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1960 if (_ptr_parameters
) {
1961 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1964 r
->parameters
= NULL
;
1966 ndr
->flags
= _flags_save_string
;
1969 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1970 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1973 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1974 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1978 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1980 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1982 if (r
->priority
> 99) {
1983 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1985 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1988 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1989 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1990 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1991 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1993 if (ndr_flags
& NDR_BUFFERS
) {
1995 uint32_t _flags_save_string
= ndr
->flags
;
1996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1997 if (r
->servername
) {
1998 uint32_t _relative_save_offset
;
1999 _relative_save_offset
= ndr
->offset
;
2000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2001 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2002 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2005 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2006 ndr
->relative_highest_offset
= ndr
->offset
;
2008 ndr
->offset
= _relative_save_offset
;
2010 ndr
->flags
= _flags_save_string
;
2013 uint32_t _flags_save_string
= ndr
->flags
;
2014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2015 if (r
->printername
) {
2016 uint32_t _relative_save_offset
;
2017 _relative_save_offset
= ndr
->offset
;
2018 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2019 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2020 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2021 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2023 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2024 ndr
->relative_highest_offset
= ndr
->offset
;
2026 ndr
->offset
= _relative_save_offset
;
2028 ndr
->flags
= _flags_save_string
;
2031 uint32_t _flags_save_string
= ndr
->flags
;
2032 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2034 uint32_t _relative_save_offset
;
2035 _relative_save_offset
= ndr
->offset
;
2036 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
2037 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2038 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
2039 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
2040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
2041 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2042 ndr
->relative_highest_offset
= ndr
->offset
;
2044 ndr
->offset
= _relative_save_offset
;
2046 ndr
->flags
= _flags_save_string
;
2049 uint32_t _flags_save_string
= ndr
->flags
;
2050 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2052 uint32_t _relative_save_offset
;
2053 _relative_save_offset
= ndr
->offset
;
2054 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2055 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2056 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2057 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2059 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2060 ndr
->relative_highest_offset
= ndr
->offset
;
2062 ndr
->offset
= _relative_save_offset
;
2064 ndr
->flags
= _flags_save_string
;
2067 uint32_t _flags_save_string
= ndr
->flags
;
2068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2069 if (r
->drivername
) {
2070 uint32_t _relative_save_offset
;
2071 _relative_save_offset
= ndr
->offset
;
2072 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
2073 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2074 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
2075 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
2076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
2077 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2078 ndr
->relative_highest_offset
= ndr
->offset
;
2080 ndr
->offset
= _relative_save_offset
;
2082 ndr
->flags
= _flags_save_string
;
2085 uint32_t _flags_save_string
= ndr
->flags
;
2086 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2088 uint32_t _relative_save_offset
;
2089 _relative_save_offset
= ndr
->offset
;
2090 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
2091 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2092 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
2093 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
2094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
2095 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2096 ndr
->relative_highest_offset
= ndr
->offset
;
2098 ndr
->offset
= _relative_save_offset
;
2100 ndr
->flags
= _flags_save_string
;
2103 uint32_t _flags_save_string
= ndr
->flags
;
2104 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2106 uint32_t _relative_save_offset
;
2107 _relative_save_offset
= ndr
->offset
;
2108 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
2109 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2110 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
2111 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
2112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
2113 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2114 ndr
->relative_highest_offset
= ndr
->offset
;
2116 ndr
->offset
= _relative_save_offset
;
2118 ndr
->flags
= _flags_save_string
;
2121 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2122 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2124 uint32_t _relative_save_offset
;
2125 _relative_save_offset
= ndr
->offset
;
2126 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2127 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2128 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2130 struct ndr_pull
*_ndr_devmode
;
2131 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2132 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2133 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2136 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2137 ndr
->relative_highest_offset
= ndr
->offset
;
2139 ndr
->offset
= _relative_save_offset
;
2141 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2144 uint32_t _flags_save_string
= ndr
->flags
;
2145 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2147 uint32_t _relative_save_offset
;
2148 _relative_save_offset
= ndr
->offset
;
2149 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
2150 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2151 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
2152 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
2153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
2154 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2155 ndr
->relative_highest_offset
= ndr
->offset
;
2157 ndr
->offset
= _relative_save_offset
;
2159 ndr
->flags
= _flags_save_string
;
2162 uint32_t _flags_save_string
= ndr
->flags
;
2163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2164 if (r
->printprocessor
) {
2165 uint32_t _relative_save_offset
;
2166 _relative_save_offset
= ndr
->offset
;
2167 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
2168 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2169 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
2170 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
2171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
2172 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2173 ndr
->relative_highest_offset
= ndr
->offset
;
2175 ndr
->offset
= _relative_save_offset
;
2177 ndr
->flags
= _flags_save_string
;
2180 uint32_t _flags_save_string
= ndr
->flags
;
2181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2183 uint32_t _relative_save_offset
;
2184 _relative_save_offset
= ndr
->offset
;
2185 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
2186 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2187 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
2188 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
2189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
2190 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2191 ndr
->relative_highest_offset
= ndr
->offset
;
2193 ndr
->offset
= _relative_save_offset
;
2195 ndr
->flags
= _flags_save_string
;
2198 uint32_t _flags_save_string
= ndr
->flags
;
2199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2200 if (r
->parameters
) {
2201 uint32_t _relative_save_offset
;
2202 _relative_save_offset
= ndr
->offset
;
2203 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
2204 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2205 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
2206 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
2207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
2208 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2209 ndr
->relative_highest_offset
= ndr
->offset
;
2211 ndr
->offset
= _relative_save_offset
;
2213 ndr
->flags
= _flags_save_string
;
2216 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2217 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2219 uint32_t _relative_save_offset
;
2220 _relative_save_offset
= ndr
->offset
;
2221 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2222 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2223 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2225 struct ndr_pull
*_ndr_secdesc
;
2226 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2227 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2228 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2231 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2232 ndr
->relative_highest_offset
= ndr
->offset
;
2234 ndr
->offset
= _relative_save_offset
;
2236 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2239 return NDR_ERR_SUCCESS
;
2242 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
2244 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
2246 ndr_print_ptr(ndr
, "servername", r
->servername
);
2248 if (r
->servername
) {
2249 ndr_print_string(ndr
, "servername", r
->servername
);
2252 ndr_print_ptr(ndr
, "printername", r
->printername
);
2254 if (r
->printername
) {
2255 ndr_print_string(ndr
, "printername", r
->printername
);
2258 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
2261 ndr_print_string(ndr
, "sharename", r
->sharename
);
2264 ndr_print_ptr(ndr
, "portname", r
->portname
);
2267 ndr_print_string(ndr
, "portname", r
->portname
);
2270 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
2272 if (r
->drivername
) {
2273 ndr_print_string(ndr
, "drivername", r
->drivername
);
2276 ndr_print_ptr(ndr
, "comment", r
->comment
);
2279 ndr_print_string(ndr
, "comment", r
->comment
);
2282 ndr_print_ptr(ndr
, "location", r
->location
);
2285 ndr_print_string(ndr
, "location", r
->location
);
2288 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2291 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2294 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
2297 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
2300 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
2302 if (r
->printprocessor
) {
2303 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
2306 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
2309 ndr_print_string(ndr
, "datatype", r
->datatype
);
2312 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
2314 if (r
->parameters
) {
2315 ndr_print_string(ndr
, "parameters", r
->parameters
);
2318 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2321 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2324 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2325 ndr_print_uint32(ndr
, "priority", r
->priority
);
2326 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
2327 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
2328 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
2329 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2330 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
2331 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
2335 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2337 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
2340 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
2342 if (ndr_flags
& NDR_SCALARS
) {
2343 NDR_CHECK(ndr_push_align(ndr
, 5));
2345 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2346 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2347 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2348 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2350 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2352 if (ndr_flags
& NDR_BUFFERS
) {
2354 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
2359 struct ndr_push
*_ndr_secdesc
;
2360 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2361 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2362 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2364 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
2366 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2369 return NDR_ERR_SUCCESS
;
2372 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
2374 uint32_t _ptr_secdesc
;
2375 TALLOC_CTX
*_mem_save_secdesc_0
;
2376 if (ndr_flags
& NDR_SCALARS
) {
2377 NDR_CHECK(ndr_pull_align(ndr
, 5));
2379 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
2383 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
2384 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
2388 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2390 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2392 if (ndr_flags
& NDR_BUFFERS
) {
2394 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2397 uint32_t _relative_save_offset
;
2398 _relative_save_offset
= ndr
->offset
;
2399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2400 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2401 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2403 struct ndr_pull
*_ndr_secdesc
;
2404 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2405 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2406 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2409 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2410 ndr
->relative_highest_offset
= ndr
->offset
;
2412 ndr
->offset
= _relative_save_offset
;
2414 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2417 return NDR_ERR_SUCCESS
;
2420 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
2422 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
2424 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2427 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2433 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2435 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
2438 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
2440 if (ndr_flags
& NDR_SCALARS
) {
2441 NDR_CHECK(ndr_push_align(ndr
, 5));
2443 uint32_t _flags_save_string
= ndr
->flags
;
2444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2445 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2446 ndr
->flags
= _flags_save_string
;
2449 uint32_t _flags_save_string
= ndr
->flags
;
2450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2451 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
2452 ndr
->flags
= _flags_save_string
;
2454 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2455 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2457 if (ndr_flags
& NDR_BUFFERS
) {
2459 uint32_t _flags_save_string
= ndr
->flags
;
2460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2461 if (r
->printername
) {
2462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2463 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2466 ndr
->flags
= _flags_save_string
;
2469 uint32_t _flags_save_string
= ndr
->flags
;
2470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2471 if (r
->servername
) {
2472 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
2473 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
2474 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
2476 ndr
->flags
= _flags_save_string
;
2479 return NDR_ERR_SUCCESS
;
2482 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
2484 uint32_t _ptr_printername
;
2485 TALLOC_CTX
*_mem_save_printername_0
;
2486 uint32_t _ptr_servername
;
2487 TALLOC_CTX
*_mem_save_servername_0
;
2488 if (ndr_flags
& NDR_SCALARS
) {
2489 NDR_CHECK(ndr_pull_align(ndr
, 5));
2491 uint32_t _flags_save_string
= ndr
->flags
;
2492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2494 if (_ptr_printername
) {
2495 NDR_PULL_ALLOC(ndr
, r
->printername
);
2496 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2498 r
->printername
= NULL
;
2500 ndr
->flags
= _flags_save_string
;
2503 uint32_t _flags_save_string
= ndr
->flags
;
2504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2505 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
2506 if (_ptr_servername
) {
2507 NDR_PULL_ALLOC(ndr
, r
->servername
);
2508 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
2510 r
->servername
= NULL
;
2512 ndr
->flags
= _flags_save_string
;
2514 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2515 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2517 if (ndr_flags
& NDR_BUFFERS
) {
2519 uint32_t _flags_save_string
= ndr
->flags
;
2520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2521 if (r
->printername
) {
2522 uint32_t _relative_save_offset
;
2523 _relative_save_offset
= ndr
->offset
;
2524 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2525 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2526 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2527 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2529 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2530 ndr
->relative_highest_offset
= ndr
->offset
;
2532 ndr
->offset
= _relative_save_offset
;
2534 ndr
->flags
= _flags_save_string
;
2537 uint32_t _flags_save_string
= ndr
->flags
;
2538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2539 if (r
->servername
) {
2540 uint32_t _relative_save_offset
;
2541 _relative_save_offset
= ndr
->offset
;
2542 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2543 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2544 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2545 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2547 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2548 ndr
->relative_highest_offset
= ndr
->offset
;
2550 ndr
->offset
= _relative_save_offset
;
2552 ndr
->flags
= _flags_save_string
;
2555 return NDR_ERR_SUCCESS
;
2558 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
2560 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
2562 ndr_print_ptr(ndr
, "printername", r
->printername
);
2564 if (r
->printername
) {
2565 ndr_print_string(ndr
, "printername", r
->printername
);
2568 ndr_print_ptr(ndr
, "servername", r
->servername
);
2570 if (r
->servername
) {
2571 ndr_print_string(ndr
, "servername", r
->servername
);
2574 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2578 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2580 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
2583 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
2585 if (ndr_flags
& NDR_SCALARS
) {
2586 NDR_CHECK(ndr_push_align(ndr
, 5));
2588 uint32_t _flags_save_string
= ndr
->flags
;
2589 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2590 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2591 ndr
->flags
= _flags_save_string
;
2594 uint32_t _flags_save_string
= ndr
->flags
;
2595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2596 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
2597 ndr
->flags
= _flags_save_string
;
2599 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
2601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
2602 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2604 if (ndr_flags
& NDR_BUFFERS
) {
2606 uint32_t _flags_save_string
= ndr
->flags
;
2607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2608 if (r
->printername
) {
2609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2610 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2613 ndr
->flags
= _flags_save_string
;
2616 uint32_t _flags_save_string
= ndr
->flags
;
2617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->portname
));
2620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
2621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->portname
));
2623 ndr
->flags
= _flags_save_string
;
2626 return NDR_ERR_SUCCESS
;
2629 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
2631 uint32_t _ptr_printername
;
2632 TALLOC_CTX
*_mem_save_printername_0
;
2633 uint32_t _ptr_portname
;
2634 TALLOC_CTX
*_mem_save_portname_0
;
2635 if (ndr_flags
& NDR_SCALARS
) {
2636 NDR_CHECK(ndr_pull_align(ndr
, 5));
2638 uint32_t _flags_save_string
= ndr
->flags
;
2639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2641 if (_ptr_printername
) {
2642 NDR_PULL_ALLOC(ndr
, r
->printername
);
2643 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2645 r
->printername
= NULL
;
2647 ndr
->flags
= _flags_save_string
;
2650 uint32_t _flags_save_string
= ndr
->flags
;
2651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
2653 if (_ptr_portname
) {
2654 NDR_PULL_ALLOC(ndr
, r
->portname
);
2655 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
2659 ndr
->flags
= _flags_save_string
;
2661 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2662 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
2663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
2664 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2666 if (ndr_flags
& NDR_BUFFERS
) {
2668 uint32_t _flags_save_string
= ndr
->flags
;
2669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2670 if (r
->printername
) {
2671 uint32_t _relative_save_offset
;
2672 _relative_save_offset
= ndr
->offset
;
2673 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2674 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2675 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2676 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2678 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2679 ndr
->relative_highest_offset
= ndr
->offset
;
2681 ndr
->offset
= _relative_save_offset
;
2683 ndr
->flags
= _flags_save_string
;
2686 uint32_t _flags_save_string
= ndr
->flags
;
2687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2689 uint32_t _relative_save_offset
;
2690 _relative_save_offset
= ndr
->offset
;
2691 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2692 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2693 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2694 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2696 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2697 ndr
->relative_highest_offset
= ndr
->offset
;
2699 ndr
->offset
= _relative_save_offset
;
2701 ndr
->flags
= _flags_save_string
;
2704 return NDR_ERR_SUCCESS
;
2707 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2709 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2711 ndr_print_ptr(ndr
, "printername", r
->printername
);
2713 if (r
->printername
) {
2714 ndr_print_string(ndr
, "printername", r
->printername
);
2717 ndr_print_ptr(ndr
, "portname", r
->portname
);
2720 ndr_print_string(ndr
, "portname", r
->portname
);
2723 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2724 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2725 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2729 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2731 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2734 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2736 if (ndr_flags
& NDR_SCALARS
) {
2737 NDR_CHECK(ndr_push_align(ndr
, 4));
2738 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2739 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2741 if (ndr_flags
& NDR_BUFFERS
) {
2743 return NDR_ERR_SUCCESS
;
2746 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2748 if (ndr_flags
& NDR_SCALARS
) {
2749 NDR_CHECK(ndr_pull_align(ndr
, 4));
2750 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2751 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2753 if (ndr_flags
& NDR_BUFFERS
) {
2755 return NDR_ERR_SUCCESS
;
2758 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2760 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2762 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2766 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2768 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2771 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2774 return NDR_ERR_SUCCESS
;
2777 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2780 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2782 return NDR_ERR_SUCCESS
;
2785 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2787 ndr_print_uint32(ndr
, name
, r
);
2789 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2790 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2791 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2792 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2793 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2797 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2799 if (ndr_flags
& NDR_SCALARS
) {
2800 NDR_CHECK(ndr_push_align(ndr
, 5));
2802 uint32_t _flags_save_string
= ndr
->flags
;
2803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2804 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2805 ndr
->flags
= _flags_save_string
;
2807 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2808 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2810 if (ndr_flags
& NDR_BUFFERS
) {
2812 uint32_t _flags_save_string
= ndr
->flags
;
2813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2815 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->guid
));
2816 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2817 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->guid
));
2819 ndr
->flags
= _flags_save_string
;
2822 return NDR_ERR_SUCCESS
;
2825 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2828 TALLOC_CTX
*_mem_save_guid_0
;
2829 if (ndr_flags
& NDR_SCALARS
) {
2830 NDR_CHECK(ndr_pull_align(ndr
, 5));
2832 uint32_t _flags_save_string
= ndr
->flags
;
2833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2834 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2836 NDR_PULL_ALLOC(ndr
, r
->guid
);
2837 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2841 ndr
->flags
= _flags_save_string
;
2843 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2844 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2846 if (ndr_flags
& NDR_BUFFERS
) {
2848 uint32_t _flags_save_string
= ndr
->flags
;
2849 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2851 uint32_t _relative_save_offset
;
2852 _relative_save_offset
= ndr
->offset
;
2853 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2854 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2855 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2856 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2857 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2858 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2859 ndr
->relative_highest_offset
= ndr
->offset
;
2861 ndr
->offset
= _relative_save_offset
;
2863 ndr
->flags
= _flags_save_string
;
2866 return NDR_ERR_SUCCESS
;
2869 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2871 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2873 ndr_print_ptr(ndr
, "guid", r
->guid
);
2876 ndr_print_string(ndr
, "guid", r
->guid
);
2879 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2883 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2885 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2888 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2890 if (ndr_flags
& NDR_SCALARS
) {
2891 NDR_CHECK(ndr_push_align(ndr
, 5));
2893 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2895 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2896 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2898 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2900 if (ndr_flags
& NDR_BUFFERS
) {
2902 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2905 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
2907 struct ndr_push
*_ndr_devmode
;
2908 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2909 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2910 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
2914 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2917 return NDR_ERR_SUCCESS
;
2920 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2922 uint32_t _ptr_devmode
;
2923 TALLOC_CTX
*_mem_save_devmode_0
;
2924 if (ndr_flags
& NDR_SCALARS
) {
2925 NDR_CHECK(ndr_pull_align(ndr
, 5));
2927 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2931 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2932 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2936 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2938 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2940 if (ndr_flags
& NDR_BUFFERS
) {
2942 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2945 uint32_t _relative_save_offset
;
2946 _relative_save_offset
= ndr
->offset
;
2947 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2948 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2949 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2951 struct ndr_pull
*_ndr_devmode
;
2952 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2953 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2954 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2957 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2958 ndr
->relative_highest_offset
= ndr
->offset
;
2960 ndr
->offset
= _relative_save_offset
;
2962 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2965 return NDR_ERR_SUCCESS
;
2968 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2970 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2972 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2975 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2981 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2983 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2985 uint32_t _flags_save_UNION
= ndr
->flags
;
2986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2987 if (ndr_flags
& NDR_SCALARS
) {
2988 int level
= ndr_push_get_switch_value(ndr
, r
);
2989 NDR_CHECK(ndr_push_union_align(ndr
, 5));
2992 NDR_CHECK(ndr_push_align(ndr
, 5));
2993 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2994 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2998 NDR_CHECK(ndr_push_align(ndr
, 5));
2999 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3000 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
3004 NDR_CHECK(ndr_push_align(ndr
, 5));
3005 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3006 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3010 NDR_CHECK(ndr_push_align(ndr
, 5));
3011 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3012 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3016 NDR_CHECK(ndr_push_align(ndr
, 5));
3017 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3018 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3022 NDR_CHECK(ndr_push_align(ndr
, 5));
3023 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3024 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3028 NDR_CHECK(ndr_push_align(ndr
, 4));
3029 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3030 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3034 NDR_CHECK(ndr_push_align(ndr
, 5));
3035 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3036 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3040 NDR_CHECK(ndr_push_align(ndr
, 5));
3041 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3042 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
3046 NDR_CHECK(ndr_push_align(ndr
, 5));
3047 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3048 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
3056 if (ndr_flags
& NDR_BUFFERS
) {
3057 int level
= ndr_push_get_switch_value(ndr
, r
);
3058 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
3061 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
3065 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3069 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3073 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3077 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3081 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3088 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3092 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
3096 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
3104 ndr
->flags
= _flags_save_UNION
;
3106 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
3107 return NDR_ERR_SUCCESS
;
3110 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
3112 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
3115 uint32_t _flags_save_UNION
= ndr
->flags
;
3116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
3117 level
= ndr_pull_get_switch_value(ndr
, r
);
3118 if (ndr_flags
& NDR_SCALARS
) {
3119 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
3122 NDR_CHECK(ndr_pull_align(ndr
, 5));
3123 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3124 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
3128 NDR_CHECK(ndr_pull_align(ndr
, 5));
3129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3130 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
3134 NDR_CHECK(ndr_pull_align(ndr
, 5));
3135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3136 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3140 NDR_CHECK(ndr_pull_align(ndr
, 5));
3141 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3142 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3146 NDR_CHECK(ndr_pull_align(ndr
, 5));
3147 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3148 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3152 NDR_CHECK(ndr_pull_align(ndr
, 5));
3153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3154 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3158 NDR_CHECK(ndr_pull_align(ndr
, 4));
3159 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3160 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3164 NDR_CHECK(ndr_pull_align(ndr
, 5));
3165 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3166 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3170 NDR_CHECK(ndr_pull_align(ndr
, 5));
3171 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3172 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
3176 NDR_CHECK(ndr_pull_align(ndr
, 5));
3177 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3178 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
3186 if (ndr_flags
& NDR_BUFFERS
) {
3187 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
3190 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
3194 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3198 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3202 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3206 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3210 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3217 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3221 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
3225 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
3233 ndr
->flags
= _flags_save_UNION
;
3235 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
3236 return NDR_ERR_SUCCESS
;
3239 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
3243 uint32_t _flags_save_UNION
= ndr
->flags
;
3244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
3245 level
= ndr_print_get_switch_value(ndr
, r
);
3246 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
3249 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
3253 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
3257 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
3261 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
3265 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
3269 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
3273 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
3277 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
3281 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
3285 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
3292 ndr
->flags
= _flags_save_UNION
;
3296 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
3298 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
3299 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
3302 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
3304 if (ndr_flags
& NDR_SCALARS
) {
3305 NDR_CHECK(ndr_push_align(ndr
, 5));
3306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3307 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
3308 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3310 if (ndr_flags
& NDR_BUFFERS
) {
3313 struct ndr_push
*_ndr_devmode
;
3314 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3315 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3316 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3320 return NDR_ERR_SUCCESS
;
3323 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
3325 uint32_t _ptr_devmode
;
3326 TALLOC_CTX
*_mem_save_devmode_0
;
3327 if (ndr_flags
& NDR_SCALARS
) {
3328 NDR_CHECK(ndr_pull_align(ndr
, 5));
3329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
3330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3332 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3336 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3338 if (ndr_flags
& NDR_BUFFERS
) {
3340 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3341 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3343 struct ndr_pull
*_ndr_devmode
;
3344 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
3345 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3346 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
3348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3351 return NDR_ERR_SUCCESS
;
3354 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
3356 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
3358 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
);
3359 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3362 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3368 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
3370 if (ndr_flags
& NDR_SCALARS
) {
3371 NDR_CHECK(ndr_push_align(ndr
, 5));
3372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3374 uint32_t _flags_save_string
= ndr
->flags
;
3375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3376 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3377 ndr
->flags
= _flags_save_string
;
3380 uint32_t _flags_save_string
= ndr
->flags
;
3381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3382 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3383 ndr
->flags
= _flags_save_string
;
3386 uint32_t _flags_save_string
= ndr
->flags
;
3387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3388 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3389 ndr
->flags
= _flags_save_string
;
3392 uint32_t _flags_save_string
= ndr
->flags
;
3393 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3394 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3395 ndr
->flags
= _flags_save_string
;
3398 uint32_t _flags_save_string
= ndr
->flags
;
3399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3400 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3401 ndr
->flags
= _flags_save_string
;
3404 uint32_t _flags_save_string
= ndr
->flags
;
3405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3406 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3407 ndr
->flags
= _flags_save_string
;
3409 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3414 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3415 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3417 if (ndr_flags
& NDR_BUFFERS
) {
3419 uint32_t _flags_save_string
= ndr
->flags
;
3420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3421 if (r
->printer_name
) {
3422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3423 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3426 ndr
->flags
= _flags_save_string
;
3429 uint32_t _flags_save_string
= ndr
->flags
;
3430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3431 if (r
->server_name
) {
3432 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3433 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3434 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3436 ndr
->flags
= _flags_save_string
;
3439 uint32_t _flags_save_string
= ndr
->flags
;
3440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3442 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3443 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3444 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3446 ndr
->flags
= _flags_save_string
;
3449 uint32_t _flags_save_string
= ndr
->flags
;
3450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3451 if (r
->document_name
) {
3452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3453 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3456 ndr
->flags
= _flags_save_string
;
3459 uint32_t _flags_save_string
= ndr
->flags
;
3460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3463 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3466 ndr
->flags
= _flags_save_string
;
3469 uint32_t _flags_save_string
= ndr
->flags
;
3470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3471 if (r
->text_status
) {
3472 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3473 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3474 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3476 ndr
->flags
= _flags_save_string
;
3479 return NDR_ERR_SUCCESS
;
3482 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
3484 uint32_t _ptr_printer_name
;
3485 TALLOC_CTX
*_mem_save_printer_name_0
;
3486 uint32_t _ptr_server_name
;
3487 TALLOC_CTX
*_mem_save_server_name_0
;
3488 uint32_t _ptr_user_name
;
3489 TALLOC_CTX
*_mem_save_user_name_0
;
3490 uint32_t _ptr_document_name
;
3491 TALLOC_CTX
*_mem_save_document_name_0
;
3492 uint32_t _ptr_data_type
;
3493 TALLOC_CTX
*_mem_save_data_type_0
;
3494 uint32_t _ptr_text_status
;
3495 TALLOC_CTX
*_mem_save_text_status_0
;
3496 if (ndr_flags
& NDR_SCALARS
) {
3497 NDR_CHECK(ndr_pull_align(ndr
, 5));
3498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3500 uint32_t _flags_save_string
= ndr
->flags
;
3501 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3503 if (_ptr_printer_name
) {
3504 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3505 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3507 r
->printer_name
= NULL
;
3509 ndr
->flags
= _flags_save_string
;
3512 uint32_t _flags_save_string
= ndr
->flags
;
3513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3515 if (_ptr_server_name
) {
3516 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3517 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3519 r
->server_name
= NULL
;
3521 ndr
->flags
= _flags_save_string
;
3524 uint32_t _flags_save_string
= ndr
->flags
;
3525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3527 if (_ptr_user_name
) {
3528 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3529 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3531 r
->user_name
= NULL
;
3533 ndr
->flags
= _flags_save_string
;
3536 uint32_t _flags_save_string
= ndr
->flags
;
3537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3539 if (_ptr_document_name
) {
3540 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3541 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3543 r
->document_name
= NULL
;
3545 ndr
->flags
= _flags_save_string
;
3548 uint32_t _flags_save_string
= ndr
->flags
;
3549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3551 if (_ptr_data_type
) {
3552 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3553 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3555 r
->data_type
= NULL
;
3557 ndr
->flags
= _flags_save_string
;
3560 uint32_t _flags_save_string
= ndr
->flags
;
3561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3563 if (_ptr_text_status
) {
3564 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3565 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3567 r
->text_status
= NULL
;
3569 ndr
->flags
= _flags_save_string
;
3571 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3572 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3573 if (r
->priority
> 99) {
3574 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3577 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3579 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3580 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3582 if (ndr_flags
& NDR_BUFFERS
) {
3584 uint32_t _flags_save_string
= ndr
->flags
;
3585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3586 if (r
->printer_name
) {
3587 uint32_t _relative_save_offset
;
3588 _relative_save_offset
= ndr
->offset
;
3589 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3590 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3591 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3592 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3594 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3595 ndr
->relative_highest_offset
= ndr
->offset
;
3597 ndr
->offset
= _relative_save_offset
;
3599 ndr
->flags
= _flags_save_string
;
3602 uint32_t _flags_save_string
= ndr
->flags
;
3603 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3604 if (r
->server_name
) {
3605 uint32_t _relative_save_offset
;
3606 _relative_save_offset
= ndr
->offset
;
3607 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3608 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3609 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3610 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3612 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3613 ndr
->relative_highest_offset
= ndr
->offset
;
3615 ndr
->offset
= _relative_save_offset
;
3617 ndr
->flags
= _flags_save_string
;
3620 uint32_t _flags_save_string
= ndr
->flags
;
3621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3623 uint32_t _relative_save_offset
;
3624 _relative_save_offset
= ndr
->offset
;
3625 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3626 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3627 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3628 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3630 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3631 ndr
->relative_highest_offset
= ndr
->offset
;
3633 ndr
->offset
= _relative_save_offset
;
3635 ndr
->flags
= _flags_save_string
;
3638 uint32_t _flags_save_string
= ndr
->flags
;
3639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3640 if (r
->document_name
) {
3641 uint32_t _relative_save_offset
;
3642 _relative_save_offset
= ndr
->offset
;
3643 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3644 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3645 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3646 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3648 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3649 ndr
->relative_highest_offset
= ndr
->offset
;
3651 ndr
->offset
= _relative_save_offset
;
3653 ndr
->flags
= _flags_save_string
;
3656 uint32_t _flags_save_string
= ndr
->flags
;
3657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3659 uint32_t _relative_save_offset
;
3660 _relative_save_offset
= ndr
->offset
;
3661 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3662 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3663 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3664 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3666 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3667 ndr
->relative_highest_offset
= ndr
->offset
;
3669 ndr
->offset
= _relative_save_offset
;
3671 ndr
->flags
= _flags_save_string
;
3674 uint32_t _flags_save_string
= ndr
->flags
;
3675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3676 if (r
->text_status
) {
3677 uint32_t _relative_save_offset
;
3678 _relative_save_offset
= ndr
->offset
;
3679 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3680 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3681 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3682 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3684 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3685 ndr
->relative_highest_offset
= ndr
->offset
;
3687 ndr
->offset
= _relative_save_offset
;
3689 ndr
->flags
= _flags_save_string
;
3692 return NDR_ERR_SUCCESS
;
3695 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
3697 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
3699 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3700 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3702 if (r
->printer_name
) {
3703 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3706 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3708 if (r
->server_name
) {
3709 ndr_print_string(ndr
, "server_name", r
->server_name
);
3712 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3715 ndr_print_string(ndr
, "user_name", r
->user_name
);
3718 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3720 if (r
->document_name
) {
3721 ndr_print_string(ndr
, "document_name", r
->document_name
);
3724 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3727 ndr_print_string(ndr
, "data_type", r
->data_type
);
3730 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3732 if (r
->text_status
) {
3733 ndr_print_string(ndr
, "text_status", r
->text_status
);
3736 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3737 ndr_print_uint32(ndr
, "priority", r
->priority
);
3738 ndr_print_uint32(ndr
, "position", r
->position
);
3739 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3740 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3741 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3745 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3747 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
3750 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
3752 if (ndr_flags
& NDR_SCALARS
) {
3753 NDR_CHECK(ndr_push_align(ndr
, 5));
3754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3758 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3759 ndr
->flags
= _flags_save_string
;
3762 uint32_t _flags_save_string
= ndr
->flags
;
3763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3764 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3765 ndr
->flags
= _flags_save_string
;
3768 uint32_t _flags_save_string
= ndr
->flags
;
3769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3770 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3771 ndr
->flags
= _flags_save_string
;
3774 uint32_t _flags_save_string
= ndr
->flags
;
3775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3776 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3777 ndr
->flags
= _flags_save_string
;
3780 uint32_t _flags_save_string
= ndr
->flags
;
3781 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3782 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3783 ndr
->flags
= _flags_save_string
;
3786 uint32_t _flags_save_string
= ndr
->flags
;
3787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3788 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3789 ndr
->flags
= _flags_save_string
;
3792 uint32_t _flags_save_string
= ndr
->flags
;
3793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3794 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3795 ndr
->flags
= _flags_save_string
;
3798 uint32_t _flags_save_string
= ndr
->flags
;
3799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3800 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3801 ndr
->flags
= _flags_save_string
;
3804 uint32_t _flags_save_string
= ndr
->flags
;
3805 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3806 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3807 ndr
->flags
= _flags_save_string
;
3810 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3812 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3813 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3816 uint32_t _flags_save_string
= ndr
->flags
;
3817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3818 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3819 ndr
->flags
= _flags_save_string
;
3822 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3824 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3825 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3827 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3834 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3837 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3839 if (ndr_flags
& NDR_BUFFERS
) {
3841 uint32_t _flags_save_string
= ndr
->flags
;
3842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3843 if (r
->printer_name
) {
3844 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3845 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3846 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3848 ndr
->flags
= _flags_save_string
;
3851 uint32_t _flags_save_string
= ndr
->flags
;
3852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3853 if (r
->server_name
) {
3854 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3855 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3856 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3858 ndr
->flags
= _flags_save_string
;
3861 uint32_t _flags_save_string
= ndr
->flags
;
3862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3865 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3868 ndr
->flags
= _flags_save_string
;
3871 uint32_t _flags_save_string
= ndr
->flags
;
3872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3873 if (r
->document_name
) {
3874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3875 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3878 ndr
->flags
= _flags_save_string
;
3881 uint32_t _flags_save_string
= ndr
->flags
;
3882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3883 if (r
->notify_name
) {
3884 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
3885 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3886 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
3888 ndr
->flags
= _flags_save_string
;
3891 uint32_t _flags_save_string
= ndr
->flags
;
3892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3894 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3895 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3898 ndr
->flags
= _flags_save_string
;
3901 uint32_t _flags_save_string
= ndr
->flags
;
3902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3903 if (r
->print_processor
) {
3904 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
3905 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3906 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
3908 ndr
->flags
= _flags_save_string
;
3911 uint32_t _flags_save_string
= ndr
->flags
;
3912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3913 if (r
->parameters
) {
3914 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
3915 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3916 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
3918 ndr
->flags
= _flags_save_string
;
3921 uint32_t _flags_save_string
= ndr
->flags
;
3922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3923 if (r
->driver_name
) {
3924 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
3925 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3926 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
3928 ndr
->flags
= _flags_save_string
;
3931 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3934 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
3936 struct ndr_push
*_ndr_devmode
;
3937 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3938 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3939 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
3943 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3946 uint32_t _flags_save_string
= ndr
->flags
;
3947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3948 if (r
->text_status
) {
3949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3950 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3951 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3953 ndr
->flags
= _flags_save_string
;
3956 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3957 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3959 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
3961 struct ndr_push
*_ndr_secdesc
;
3962 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3963 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3964 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3966 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
3968 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3971 return NDR_ERR_SUCCESS
;
3974 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3976 uint32_t _ptr_printer_name
;
3977 TALLOC_CTX
*_mem_save_printer_name_0
;
3978 uint32_t _ptr_server_name
;
3979 TALLOC_CTX
*_mem_save_server_name_0
;
3980 uint32_t _ptr_user_name
;
3981 TALLOC_CTX
*_mem_save_user_name_0
;
3982 uint32_t _ptr_document_name
;
3983 TALLOC_CTX
*_mem_save_document_name_0
;
3984 uint32_t _ptr_notify_name
;
3985 TALLOC_CTX
*_mem_save_notify_name_0
;
3986 uint32_t _ptr_data_type
;
3987 TALLOC_CTX
*_mem_save_data_type_0
;
3988 uint32_t _ptr_print_processor
;
3989 TALLOC_CTX
*_mem_save_print_processor_0
;
3990 uint32_t _ptr_parameters
;
3991 TALLOC_CTX
*_mem_save_parameters_0
;
3992 uint32_t _ptr_driver_name
;
3993 TALLOC_CTX
*_mem_save_driver_name_0
;
3994 uint32_t _ptr_devmode
;
3995 TALLOC_CTX
*_mem_save_devmode_0
;
3996 uint32_t _ptr_text_status
;
3997 TALLOC_CTX
*_mem_save_text_status_0
;
3998 uint32_t _ptr_secdesc
;
3999 TALLOC_CTX
*_mem_save_secdesc_0
;
4000 if (ndr_flags
& NDR_SCALARS
) {
4001 NDR_CHECK(ndr_pull_align(ndr
, 5));
4002 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4004 uint32_t _flags_save_string
= ndr
->flags
;
4005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4007 if (_ptr_printer_name
) {
4008 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4009 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4011 r
->printer_name
= NULL
;
4013 ndr
->flags
= _flags_save_string
;
4016 uint32_t _flags_save_string
= ndr
->flags
;
4017 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4018 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4019 if (_ptr_server_name
) {
4020 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4021 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4023 r
->server_name
= NULL
;
4025 ndr
->flags
= _flags_save_string
;
4028 uint32_t _flags_save_string
= ndr
->flags
;
4029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4031 if (_ptr_user_name
) {
4032 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4033 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4035 r
->user_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4043 if (_ptr_document_name
) {
4044 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4045 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4047 r
->document_name
= NULL
;
4049 ndr
->flags
= _flags_save_string
;
4052 uint32_t _flags_save_string
= ndr
->flags
;
4053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4055 if (_ptr_notify_name
) {
4056 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4057 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4059 r
->notify_name
= NULL
;
4061 ndr
->flags
= _flags_save_string
;
4064 uint32_t _flags_save_string
= ndr
->flags
;
4065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4066 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4067 if (_ptr_data_type
) {
4068 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4069 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4071 r
->data_type
= NULL
;
4073 ndr
->flags
= _flags_save_string
;
4076 uint32_t _flags_save_string
= ndr
->flags
;
4077 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4079 if (_ptr_print_processor
) {
4080 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4081 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4083 r
->print_processor
= NULL
;
4085 ndr
->flags
= _flags_save_string
;
4088 uint32_t _flags_save_string
= ndr
->flags
;
4089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4091 if (_ptr_parameters
) {
4092 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4093 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4095 r
->parameters
= NULL
;
4097 ndr
->flags
= _flags_save_string
;
4100 uint32_t _flags_save_string
= ndr
->flags
;
4101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4103 if (_ptr_driver_name
) {
4104 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4105 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4107 r
->driver_name
= NULL
;
4109 ndr
->flags
= _flags_save_string
;
4112 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4114 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4116 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4117 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4121 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4124 uint32_t _flags_save_string
= ndr
->flags
;
4125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4127 if (_ptr_text_status
) {
4128 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4129 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4131 r
->text_status
= NULL
;
4133 ndr
->flags
= _flags_save_string
;
4136 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4140 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4141 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4145 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4147 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4149 if (r
->priority
> 99) {
4150 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4152 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4157 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4158 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4159 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4160 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4162 if (ndr_flags
& NDR_BUFFERS
) {
4164 uint32_t _flags_save_string
= ndr
->flags
;
4165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4166 if (r
->printer_name
) {
4167 uint32_t _relative_save_offset
;
4168 _relative_save_offset
= ndr
->offset
;
4169 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4170 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4171 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4172 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4174 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4175 ndr
->relative_highest_offset
= ndr
->offset
;
4177 ndr
->offset
= _relative_save_offset
;
4179 ndr
->flags
= _flags_save_string
;
4182 uint32_t _flags_save_string
= ndr
->flags
;
4183 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4184 if (r
->server_name
) {
4185 uint32_t _relative_save_offset
;
4186 _relative_save_offset
= ndr
->offset
;
4187 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4188 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4189 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4190 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4191 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4192 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4193 ndr
->relative_highest_offset
= ndr
->offset
;
4195 ndr
->offset
= _relative_save_offset
;
4197 ndr
->flags
= _flags_save_string
;
4200 uint32_t _flags_save_string
= ndr
->flags
;
4201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4203 uint32_t _relative_save_offset
;
4204 _relative_save_offset
= ndr
->offset
;
4205 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4206 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4207 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4208 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4209 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4210 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4211 ndr
->relative_highest_offset
= ndr
->offset
;
4213 ndr
->offset
= _relative_save_offset
;
4215 ndr
->flags
= _flags_save_string
;
4218 uint32_t _flags_save_string
= ndr
->flags
;
4219 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4220 if (r
->document_name
) {
4221 uint32_t _relative_save_offset
;
4222 _relative_save_offset
= ndr
->offset
;
4223 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4224 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4225 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4226 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4228 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4229 ndr
->relative_highest_offset
= ndr
->offset
;
4231 ndr
->offset
= _relative_save_offset
;
4233 ndr
->flags
= _flags_save_string
;
4236 uint32_t _flags_save_string
= ndr
->flags
;
4237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4238 if (r
->notify_name
) {
4239 uint32_t _relative_save_offset
;
4240 _relative_save_offset
= ndr
->offset
;
4241 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4242 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4243 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4244 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4246 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4247 ndr
->relative_highest_offset
= ndr
->offset
;
4249 ndr
->offset
= _relative_save_offset
;
4251 ndr
->flags
= _flags_save_string
;
4254 uint32_t _flags_save_string
= ndr
->flags
;
4255 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4257 uint32_t _relative_save_offset
;
4258 _relative_save_offset
= ndr
->offset
;
4259 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4260 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4261 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4262 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4264 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4265 ndr
->relative_highest_offset
= ndr
->offset
;
4267 ndr
->offset
= _relative_save_offset
;
4269 ndr
->flags
= _flags_save_string
;
4272 uint32_t _flags_save_string
= ndr
->flags
;
4273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4274 if (r
->print_processor
) {
4275 uint32_t _relative_save_offset
;
4276 _relative_save_offset
= ndr
->offset
;
4277 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4278 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4279 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4280 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4282 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4283 ndr
->relative_highest_offset
= ndr
->offset
;
4285 ndr
->offset
= _relative_save_offset
;
4287 ndr
->flags
= _flags_save_string
;
4290 uint32_t _flags_save_string
= ndr
->flags
;
4291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4292 if (r
->parameters
) {
4293 uint32_t _relative_save_offset
;
4294 _relative_save_offset
= ndr
->offset
;
4295 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4296 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4297 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4298 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4300 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4301 ndr
->relative_highest_offset
= ndr
->offset
;
4303 ndr
->offset
= _relative_save_offset
;
4305 ndr
->flags
= _flags_save_string
;
4308 uint32_t _flags_save_string
= ndr
->flags
;
4309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4310 if (r
->driver_name
) {
4311 uint32_t _relative_save_offset
;
4312 _relative_save_offset
= ndr
->offset
;
4313 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4314 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4315 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4316 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4318 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4319 ndr
->relative_highest_offset
= ndr
->offset
;
4321 ndr
->offset
= _relative_save_offset
;
4323 ndr
->flags
= _flags_save_string
;
4326 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4329 uint32_t _relative_save_offset
;
4330 _relative_save_offset
= ndr
->offset
;
4331 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4332 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4333 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4335 struct ndr_pull
*_ndr_devmode
;
4336 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4337 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4338 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4341 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4342 ndr
->relative_highest_offset
= ndr
->offset
;
4344 ndr
->offset
= _relative_save_offset
;
4346 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4349 uint32_t _flags_save_string
= ndr
->flags
;
4350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4351 if (r
->text_status
) {
4352 uint32_t _relative_save_offset
;
4353 _relative_save_offset
= ndr
->offset
;
4354 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4355 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4356 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4357 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4359 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4360 ndr
->relative_highest_offset
= ndr
->offset
;
4362 ndr
->offset
= _relative_save_offset
;
4364 ndr
->flags
= _flags_save_string
;
4367 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4370 uint32_t _relative_save_offset
;
4371 _relative_save_offset
= ndr
->offset
;
4372 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4373 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4374 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4376 struct ndr_pull
*_ndr_secdesc
;
4377 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4378 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4379 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4382 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4383 ndr
->relative_highest_offset
= ndr
->offset
;
4385 ndr
->offset
= _relative_save_offset
;
4387 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4390 return NDR_ERR_SUCCESS
;
4393 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
4395 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
4397 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4398 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4400 if (r
->printer_name
) {
4401 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4404 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4406 if (r
->server_name
) {
4407 ndr_print_string(ndr
, "server_name", r
->server_name
);
4410 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4413 ndr_print_string(ndr
, "user_name", r
->user_name
);
4416 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4418 if (r
->document_name
) {
4419 ndr_print_string(ndr
, "document_name", r
->document_name
);
4422 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4424 if (r
->notify_name
) {
4425 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4428 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4431 ndr_print_string(ndr
, "data_type", r
->data_type
);
4434 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4436 if (r
->print_processor
) {
4437 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4440 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4442 if (r
->parameters
) {
4443 ndr_print_string(ndr
, "parameters", r
->parameters
);
4446 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4448 if (r
->driver_name
) {
4449 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4452 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4455 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4458 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4460 if (r
->text_status
) {
4461 ndr_print_string(ndr
, "text_status", r
->text_status
);
4464 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4467 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4470 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4471 ndr_print_uint32(ndr
, "priority", r
->priority
);
4472 ndr_print_uint32(ndr
, "position", r
->position
);
4473 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4474 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4475 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4476 ndr_print_uint32(ndr
, "size", r
->size
);
4477 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4478 ndr_print_uint32(ndr
, "time", r
->time
);
4479 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4483 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4485 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
4488 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
4490 if (ndr_flags
& NDR_SCALARS
) {
4491 NDR_CHECK(ndr_push_align(ndr
, 4));
4492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
4494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
4495 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
4497 if (ndr_flags
& NDR_BUFFERS
) {
4499 return NDR_ERR_SUCCESS
;
4502 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
4504 if (ndr_flags
& NDR_SCALARS
) {
4505 NDR_CHECK(ndr_pull_align(ndr
, 4));
4506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4507 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
4508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
4509 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
4511 if (ndr_flags
& NDR_BUFFERS
) {
4513 return NDR_ERR_SUCCESS
;
4516 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
4518 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
4520 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4521 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
4522 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
4526 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4528 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
4531 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
4533 if (ndr_flags
& NDR_SCALARS
) {
4534 NDR_CHECK(ndr_push_align(ndr
, 5));
4535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4537 uint32_t _flags_save_string
= ndr
->flags
;
4538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4539 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
4540 ndr
->flags
= _flags_save_string
;
4543 uint32_t _flags_save_string
= ndr
->flags
;
4544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4545 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
4546 ndr
->flags
= _flags_save_string
;
4549 uint32_t _flags_save_string
= ndr
->flags
;
4550 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4551 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
4552 ndr
->flags
= _flags_save_string
;
4555 uint32_t _flags_save_string
= ndr
->flags
;
4556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4557 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
4558 ndr
->flags
= _flags_save_string
;
4561 uint32_t _flags_save_string
= ndr
->flags
;
4562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4563 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
4564 ndr
->flags
= _flags_save_string
;
4567 uint32_t _flags_save_string
= ndr
->flags
;
4568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4569 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
4570 ndr
->flags
= _flags_save_string
;
4573 uint32_t _flags_save_string
= ndr
->flags
;
4574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4575 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
4576 ndr
->flags
= _flags_save_string
;
4579 uint32_t _flags_save_string
= ndr
->flags
;
4580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4581 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
4582 ndr
->flags
= _flags_save_string
;
4585 uint32_t _flags_save_string
= ndr
->flags
;
4586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4587 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
4588 ndr
->flags
= _flags_save_string
;
4591 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
4594 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4597 uint32_t _flags_save_string
= ndr
->flags
;
4598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
4600 ndr
->flags
= _flags_save_string
;
4603 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
4606 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4608 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4615 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
4619 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4621 if (ndr_flags
& NDR_BUFFERS
) {
4623 uint32_t _flags_save_string
= ndr
->flags
;
4624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4625 if (r
->printer_name
) {
4626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
4627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
4628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
4630 ndr
->flags
= _flags_save_string
;
4633 uint32_t _flags_save_string
= ndr
->flags
;
4634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4635 if (r
->server_name
) {
4636 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
4637 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
4638 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
4640 ndr
->flags
= _flags_save_string
;
4643 uint32_t _flags_save_string
= ndr
->flags
;
4644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
4647 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
4648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
4650 ndr
->flags
= _flags_save_string
;
4653 uint32_t _flags_save_string
= ndr
->flags
;
4654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4655 if (r
->document_name
) {
4656 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
4657 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
4658 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
4660 ndr
->flags
= _flags_save_string
;
4663 uint32_t _flags_save_string
= ndr
->flags
;
4664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4665 if (r
->notify_name
) {
4666 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
4667 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
4668 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
4670 ndr
->flags
= _flags_save_string
;
4673 uint32_t _flags_save_string
= ndr
->flags
;
4674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4676 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
4677 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
4678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
4680 ndr
->flags
= _flags_save_string
;
4683 uint32_t _flags_save_string
= ndr
->flags
;
4684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4685 if (r
->print_processor
) {
4686 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
4687 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
4688 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
4690 ndr
->flags
= _flags_save_string
;
4693 uint32_t _flags_save_string
= ndr
->flags
;
4694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4695 if (r
->parameters
) {
4696 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
4697 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
4698 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
4700 ndr
->flags
= _flags_save_string
;
4703 uint32_t _flags_save_string
= ndr
->flags
;
4704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4705 if (r
->driver_name
) {
4706 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
4707 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
4708 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
4710 ndr
->flags
= _flags_save_string
;
4713 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4714 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4716 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
4718 struct ndr_push
*_ndr_devmode
;
4719 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4720 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4721 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
4725 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4728 uint32_t _flags_save_string
= ndr
->flags
;
4729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4730 if (r
->text_status
) {
4731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
4732 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
4733 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
4735 ndr
->flags
= _flags_save_string
;
4738 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
4743 struct ndr_push
*_ndr_secdesc
;
4744 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4745 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4746 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4748 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
4750 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4753 return NDR_ERR_SUCCESS
;
4756 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
4758 uint32_t _ptr_printer_name
;
4759 TALLOC_CTX
*_mem_save_printer_name_0
;
4760 uint32_t _ptr_server_name
;
4761 TALLOC_CTX
*_mem_save_server_name_0
;
4762 uint32_t _ptr_user_name
;
4763 TALLOC_CTX
*_mem_save_user_name_0
;
4764 uint32_t _ptr_document_name
;
4765 TALLOC_CTX
*_mem_save_document_name_0
;
4766 uint32_t _ptr_notify_name
;
4767 TALLOC_CTX
*_mem_save_notify_name_0
;
4768 uint32_t _ptr_data_type
;
4769 TALLOC_CTX
*_mem_save_data_type_0
;
4770 uint32_t _ptr_print_processor
;
4771 TALLOC_CTX
*_mem_save_print_processor_0
;
4772 uint32_t _ptr_parameters
;
4773 TALLOC_CTX
*_mem_save_parameters_0
;
4774 uint32_t _ptr_driver_name
;
4775 TALLOC_CTX
*_mem_save_driver_name_0
;
4776 uint32_t _ptr_devmode
;
4777 TALLOC_CTX
*_mem_save_devmode_0
;
4778 uint32_t _ptr_text_status
;
4779 TALLOC_CTX
*_mem_save_text_status_0
;
4780 uint32_t _ptr_secdesc
;
4781 TALLOC_CTX
*_mem_save_secdesc_0
;
4782 if (ndr_flags
& NDR_SCALARS
) {
4783 NDR_CHECK(ndr_pull_align(ndr
, 5));
4784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4786 uint32_t _flags_save_string
= ndr
->flags
;
4787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4789 if (_ptr_printer_name
) {
4790 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4791 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4793 r
->printer_name
= NULL
;
4795 ndr
->flags
= _flags_save_string
;
4798 uint32_t _flags_save_string
= ndr
->flags
;
4799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4801 if (_ptr_server_name
) {
4802 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4803 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4805 r
->server_name
= NULL
;
4807 ndr
->flags
= _flags_save_string
;
4810 uint32_t _flags_save_string
= ndr
->flags
;
4811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4813 if (_ptr_user_name
) {
4814 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4815 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4817 r
->user_name
= NULL
;
4819 ndr
->flags
= _flags_save_string
;
4822 uint32_t _flags_save_string
= ndr
->flags
;
4823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4825 if (_ptr_document_name
) {
4826 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4827 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4829 r
->document_name
= NULL
;
4831 ndr
->flags
= _flags_save_string
;
4834 uint32_t _flags_save_string
= ndr
->flags
;
4835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4837 if (_ptr_notify_name
) {
4838 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4839 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4841 r
->notify_name
= NULL
;
4843 ndr
->flags
= _flags_save_string
;
4846 uint32_t _flags_save_string
= ndr
->flags
;
4847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4849 if (_ptr_data_type
) {
4850 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4851 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4853 r
->data_type
= NULL
;
4855 ndr
->flags
= _flags_save_string
;
4858 uint32_t _flags_save_string
= ndr
->flags
;
4859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4861 if (_ptr_print_processor
) {
4862 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4863 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4865 r
->print_processor
= NULL
;
4867 ndr
->flags
= _flags_save_string
;
4870 uint32_t _flags_save_string
= ndr
->flags
;
4871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4872 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4873 if (_ptr_parameters
) {
4874 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4875 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4877 r
->parameters
= NULL
;
4879 ndr
->flags
= _flags_save_string
;
4882 uint32_t _flags_save_string
= ndr
->flags
;
4883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4885 if (_ptr_driver_name
) {
4886 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4887 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4889 r
->driver_name
= NULL
;
4891 ndr
->flags
= _flags_save_string
;
4894 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4895 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4898 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4899 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4903 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4906 uint32_t _flags_save_string
= ndr
->flags
;
4907 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4909 if (_ptr_text_status
) {
4910 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4911 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4913 r
->text_status
= NULL
;
4915 ndr
->flags
= _flags_save_string
;
4918 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4920 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4922 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4923 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4927 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4929 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4930 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4931 if (r
->priority
> 99) {
4932 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4936 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4937 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4938 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4939 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4941 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4943 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4945 if (ndr_flags
& NDR_BUFFERS
) {
4947 uint32_t _flags_save_string
= ndr
->flags
;
4948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4949 if (r
->printer_name
) {
4950 uint32_t _relative_save_offset
;
4951 _relative_save_offset
= ndr
->offset
;
4952 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4953 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4954 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4955 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4957 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4958 ndr
->relative_highest_offset
= ndr
->offset
;
4960 ndr
->offset
= _relative_save_offset
;
4962 ndr
->flags
= _flags_save_string
;
4965 uint32_t _flags_save_string
= ndr
->flags
;
4966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4967 if (r
->server_name
) {
4968 uint32_t _relative_save_offset
;
4969 _relative_save_offset
= ndr
->offset
;
4970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4971 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4972 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4975 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4976 ndr
->relative_highest_offset
= ndr
->offset
;
4978 ndr
->offset
= _relative_save_offset
;
4980 ndr
->flags
= _flags_save_string
;
4983 uint32_t _flags_save_string
= ndr
->flags
;
4984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4986 uint32_t _relative_save_offset
;
4987 _relative_save_offset
= ndr
->offset
;
4988 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4989 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4990 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4991 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4993 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4994 ndr
->relative_highest_offset
= ndr
->offset
;
4996 ndr
->offset
= _relative_save_offset
;
4998 ndr
->flags
= _flags_save_string
;
5001 uint32_t _flags_save_string
= ndr
->flags
;
5002 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5003 if (r
->document_name
) {
5004 uint32_t _relative_save_offset
;
5005 _relative_save_offset
= ndr
->offset
;
5006 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
5007 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5008 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5009 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
5010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5011 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5012 ndr
->relative_highest_offset
= ndr
->offset
;
5014 ndr
->offset
= _relative_save_offset
;
5016 ndr
->flags
= _flags_save_string
;
5019 uint32_t _flags_save_string
= ndr
->flags
;
5020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5021 if (r
->notify_name
) {
5022 uint32_t _relative_save_offset
;
5023 _relative_save_offset
= ndr
->offset
;
5024 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
5025 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5026 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5027 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
5028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5029 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5030 ndr
->relative_highest_offset
= ndr
->offset
;
5032 ndr
->offset
= _relative_save_offset
;
5034 ndr
->flags
= _flags_save_string
;
5037 uint32_t _flags_save_string
= ndr
->flags
;
5038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5040 uint32_t _relative_save_offset
;
5041 _relative_save_offset
= ndr
->offset
;
5042 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
5043 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5044 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5045 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
5046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5047 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5048 ndr
->relative_highest_offset
= ndr
->offset
;
5050 ndr
->offset
= _relative_save_offset
;
5052 ndr
->flags
= _flags_save_string
;
5055 uint32_t _flags_save_string
= ndr
->flags
;
5056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5057 if (r
->print_processor
) {
5058 uint32_t _relative_save_offset
;
5059 _relative_save_offset
= ndr
->offset
;
5060 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
5061 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5062 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5063 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
5064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5065 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5066 ndr
->relative_highest_offset
= ndr
->offset
;
5068 ndr
->offset
= _relative_save_offset
;
5070 ndr
->flags
= _flags_save_string
;
5073 uint32_t _flags_save_string
= ndr
->flags
;
5074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5075 if (r
->parameters
) {
5076 uint32_t _relative_save_offset
;
5077 _relative_save_offset
= ndr
->offset
;
5078 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
5079 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5080 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5081 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
5082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5083 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5084 ndr
->relative_highest_offset
= ndr
->offset
;
5086 ndr
->offset
= _relative_save_offset
;
5088 ndr
->flags
= _flags_save_string
;
5091 uint32_t _flags_save_string
= ndr
->flags
;
5092 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5093 if (r
->driver_name
) {
5094 uint32_t _relative_save_offset
;
5095 _relative_save_offset
= ndr
->offset
;
5096 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
5097 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5098 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5099 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
5100 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5101 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5102 ndr
->relative_highest_offset
= ndr
->offset
;
5104 ndr
->offset
= _relative_save_offset
;
5106 ndr
->flags
= _flags_save_string
;
5109 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
5110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
5112 uint32_t _relative_save_offset
;
5113 _relative_save_offset
= ndr
->offset
;
5114 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
5115 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5116 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
5118 struct ndr_pull
*_ndr_devmode
;
5119 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
5120 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
5121 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
5123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
5124 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5125 ndr
->relative_highest_offset
= ndr
->offset
;
5127 ndr
->offset
= _relative_save_offset
;
5129 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
5132 uint32_t _flags_save_string
= ndr
->flags
;
5133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5134 if (r
->text_status
) {
5135 uint32_t _relative_save_offset
;
5136 _relative_save_offset
= ndr
->offset
;
5137 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
5138 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5139 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5140 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
5141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5142 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5143 ndr
->relative_highest_offset
= ndr
->offset
;
5145 ndr
->offset
= _relative_save_offset
;
5147 ndr
->flags
= _flags_save_string
;
5150 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
5151 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
5153 uint32_t _relative_save_offset
;
5154 _relative_save_offset
= ndr
->offset
;
5155 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
5156 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5157 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
5159 struct ndr_pull
*_ndr_secdesc
;
5160 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
5161 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
5162 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
5164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
5165 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5166 ndr
->relative_highest_offset
= ndr
->offset
;
5168 ndr
->offset
= _relative_save_offset
;
5170 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
5173 return NDR_ERR_SUCCESS
;
5176 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
5178 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
5180 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5181 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5183 if (r
->printer_name
) {
5184 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5187 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5189 if (r
->server_name
) {
5190 ndr_print_string(ndr
, "server_name", r
->server_name
);
5193 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5196 ndr_print_string(ndr
, "user_name", r
->user_name
);
5199 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5201 if (r
->document_name
) {
5202 ndr_print_string(ndr
, "document_name", r
->document_name
);
5205 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5207 if (r
->notify_name
) {
5208 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5211 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5214 ndr_print_string(ndr
, "data_type", r
->data_type
);
5217 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5219 if (r
->print_processor
) {
5220 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5223 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5225 if (r
->parameters
) {
5226 ndr_print_string(ndr
, "parameters", r
->parameters
);
5229 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5231 if (r
->driver_name
) {
5232 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5235 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
5238 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
5241 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5243 if (r
->text_status
) {
5244 ndr_print_string(ndr
, "text_status", r
->text_status
);
5247 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
5250 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
5253 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5254 ndr_print_uint32(ndr
, "priority", r
->priority
);
5255 ndr_print_uint32(ndr
, "position", r
->position
);
5256 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5257 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5258 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5259 ndr_print_uint32(ndr
, "size", r
->size
);
5260 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5261 ndr_print_uint32(ndr
, "time", r
->time
);
5262 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5263 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5267 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
5269 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
5272 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
5274 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
5276 uint32_t _flags_save_UNION
= ndr
->flags
;
5277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5278 if (ndr_flags
& NDR_SCALARS
) {
5279 int level
= ndr_push_get_switch_value(ndr
, r
);
5280 NDR_CHECK(ndr_push_union_align(ndr
, 5));
5283 NDR_CHECK(ndr_push_align(ndr
, 5));
5284 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5285 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5289 NDR_CHECK(ndr_push_align(ndr
, 5));
5290 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5291 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
5295 NDR_CHECK(ndr_push_align(ndr
, 4));
5296 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5297 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
5301 NDR_CHECK(ndr_push_align(ndr
, 5));
5302 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5303 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
5311 if (ndr_flags
& NDR_BUFFERS
) {
5312 int level
= ndr_push_get_switch_value(ndr
, r
);
5313 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
5316 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5320 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
5327 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
5335 ndr
->flags
= _flags_save_UNION
;
5337 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
5338 return NDR_ERR_SUCCESS
;
5341 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
5343 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
5346 uint32_t _flags_save_UNION
= ndr
->flags
;
5347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5348 level
= ndr_pull_get_switch_value(ndr
, r
);
5349 if (ndr_flags
& NDR_SCALARS
) {
5350 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
5353 NDR_CHECK(ndr_pull_align(ndr
, 5));
5354 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5355 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5359 NDR_CHECK(ndr_pull_align(ndr
, 5));
5360 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5361 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
5365 NDR_CHECK(ndr_pull_align(ndr
, 4));
5366 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5367 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
5371 NDR_CHECK(ndr_pull_align(ndr
, 5));
5372 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5373 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
5381 if (ndr_flags
& NDR_BUFFERS
) {
5382 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
5385 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5389 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
5396 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
5404 ndr
->flags
= _flags_save_UNION
;
5406 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
5407 return NDR_ERR_SUCCESS
;
5410 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
5414 uint32_t _flags_save_UNION
= ndr
->flags
;
5415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5416 level
= ndr_print_get_switch_value(ndr
, r
);
5417 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
5420 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
5424 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
5428 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
5432 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
5439 ndr
->flags
= _flags_save_UNION
;
5443 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
5445 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
5446 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
5449 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
5451 if (ndr_flags
& NDR_SCALARS
) {
5452 NDR_CHECK(ndr_push_align(ndr
, 5));
5453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5456 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5457 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5460 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5465 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5466 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5468 if (ndr_flags
& NDR_BUFFERS
) {
5469 if (r
->printer_name
) {
5470 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5472 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5473 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5475 if (r
->server_name
) {
5476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5478 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5479 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5482 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5484 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5485 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5487 if (r
->document_name
) {
5488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5491 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5497 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5499 if (r
->text_status
) {
5500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5503 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5506 return NDR_ERR_SUCCESS
;
5509 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
5511 uint32_t _ptr_printer_name
;
5512 TALLOC_CTX
*_mem_save_printer_name_0
;
5513 uint32_t _ptr_server_name
;
5514 TALLOC_CTX
*_mem_save_server_name_0
;
5515 uint32_t _ptr_user_name
;
5516 TALLOC_CTX
*_mem_save_user_name_0
;
5517 uint32_t _ptr_document_name
;
5518 TALLOC_CTX
*_mem_save_document_name_0
;
5519 uint32_t _ptr_data_type
;
5520 TALLOC_CTX
*_mem_save_data_type_0
;
5521 uint32_t _ptr_text_status
;
5522 TALLOC_CTX
*_mem_save_text_status_0
;
5523 if (ndr_flags
& NDR_SCALARS
) {
5524 NDR_CHECK(ndr_pull_align(ndr
, 5));
5525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5527 if (_ptr_printer_name
) {
5528 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5530 r
->printer_name
= NULL
;
5532 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5533 if (_ptr_server_name
) {
5534 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5536 r
->server_name
= NULL
;
5538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5539 if (_ptr_user_name
) {
5540 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5542 r
->user_name
= NULL
;
5544 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5545 if (_ptr_document_name
) {
5546 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5548 r
->document_name
= NULL
;
5550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5551 if (_ptr_data_type
) {
5552 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5554 r
->data_type
= NULL
;
5556 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5557 if (_ptr_text_status
) {
5558 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5560 r
->text_status
= NULL
;
5562 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5563 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5564 if (r
->priority
> 99) {
5565 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5569 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5570 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5571 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5573 if (ndr_flags
& NDR_BUFFERS
) {
5574 if (r
->printer_name
) {
5575 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5576 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5577 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5578 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5579 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5580 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
));
5582 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5583 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5586 if (r
->server_name
) {
5587 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5588 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5589 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5590 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5591 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5592 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
));
5594 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5599 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5600 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5601 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5602 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5603 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5604 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
));
5606 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5607 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5610 if (r
->document_name
) {
5611 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5612 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5613 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5614 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5615 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5616 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
));
5618 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5619 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5623 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5624 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5625 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5626 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5627 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5628 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
));
5630 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5631 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5634 if (r
->text_status
) {
5635 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5636 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5637 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5638 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5639 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5640 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
));
5642 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5643 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5647 return NDR_ERR_SUCCESS
;
5650 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
5652 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
5654 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5655 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5657 if (r
->printer_name
) {
5658 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5661 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5663 if (r
->server_name
) {
5664 ndr_print_string(ndr
, "server_name", r
->server_name
);
5667 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5670 ndr_print_string(ndr
, "user_name", r
->user_name
);
5673 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5675 if (r
->document_name
) {
5676 ndr_print_string(ndr
, "document_name", r
->document_name
);
5679 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5682 ndr_print_string(ndr
, "data_type", r
->data_type
);
5685 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5687 if (r
->text_status
) {
5688 ndr_print_string(ndr
, "text_status", r
->text_status
);
5691 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5692 ndr_print_uint32(ndr
, "priority", r
->priority
);
5693 ndr_print_uint32(ndr
, "position", r
->position
);
5694 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5695 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5696 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5700 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
5702 if (ndr_flags
& NDR_SCALARS
) {
5703 NDR_CHECK(ndr_push_align(ndr
, 5));
5704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5707 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5708 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5710 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5712 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5714 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5715 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5717 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5724 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5727 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5729 if (ndr_flags
& NDR_BUFFERS
) {
5730 if (r
->printer_name
) {
5731 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5732 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5734 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5736 if (r
->server_name
) {
5737 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5738 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5740 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5743 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5744 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5745 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5746 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5748 if (r
->document_name
) {
5749 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5750 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5751 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5752 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5754 if (r
->notify_name
) {
5755 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5756 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5757 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5758 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5761 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5762 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5763 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5764 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5766 if (r
->print_processor
) {
5767 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5768 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5769 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5770 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5772 if (r
->parameters
) {
5773 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5774 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5775 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5776 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5778 if (r
->driver_name
) {
5779 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5780 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5781 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5782 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5784 if (r
->text_status
) {
5785 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5787 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5788 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5791 return NDR_ERR_SUCCESS
;
5794 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
5796 uint32_t _ptr_printer_name
;
5797 TALLOC_CTX
*_mem_save_printer_name_0
;
5798 uint32_t _ptr_server_name
;
5799 TALLOC_CTX
*_mem_save_server_name_0
;
5800 uint32_t _ptr_user_name
;
5801 TALLOC_CTX
*_mem_save_user_name_0
;
5802 uint32_t _ptr_document_name
;
5803 TALLOC_CTX
*_mem_save_document_name_0
;
5804 uint32_t _ptr_notify_name
;
5805 TALLOC_CTX
*_mem_save_notify_name_0
;
5806 uint32_t _ptr_data_type
;
5807 TALLOC_CTX
*_mem_save_data_type_0
;
5808 uint32_t _ptr_print_processor
;
5809 TALLOC_CTX
*_mem_save_print_processor_0
;
5810 uint32_t _ptr_parameters
;
5811 TALLOC_CTX
*_mem_save_parameters_0
;
5812 uint32_t _ptr_driver_name
;
5813 TALLOC_CTX
*_mem_save_driver_name_0
;
5814 uint32_t _ptr_text_status
;
5815 TALLOC_CTX
*_mem_save_text_status_0
;
5816 if (ndr_flags
& NDR_SCALARS
) {
5817 NDR_CHECK(ndr_pull_align(ndr
, 5));
5818 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5820 if (_ptr_printer_name
) {
5821 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5823 r
->printer_name
= NULL
;
5825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5826 if (_ptr_server_name
) {
5827 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5829 r
->server_name
= NULL
;
5831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5832 if (_ptr_user_name
) {
5833 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5835 r
->user_name
= NULL
;
5837 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5838 if (_ptr_document_name
) {
5839 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5841 r
->document_name
= NULL
;
5843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5844 if (_ptr_notify_name
) {
5845 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5847 r
->notify_name
= NULL
;
5849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5850 if (_ptr_data_type
) {
5851 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5853 r
->data_type
= NULL
;
5855 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5856 if (_ptr_print_processor
) {
5857 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5859 r
->print_processor
= NULL
;
5861 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5862 if (_ptr_parameters
) {
5863 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5865 r
->parameters
= NULL
;
5867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5868 if (_ptr_driver_name
) {
5869 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5871 r
->driver_name
= NULL
;
5873 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5875 if (_ptr_text_status
) {
5876 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5878 r
->text_status
= NULL
;
5880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5881 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5883 if (r
->priority
> 99) {
5884 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5886 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5888 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5891 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5894 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5896 if (ndr_flags
& NDR_BUFFERS
) {
5897 if (r
->printer_name
) {
5898 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5899 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5900 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5901 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5902 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5903 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
));
5905 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5906 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5909 if (r
->server_name
) {
5910 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5911 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5912 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5913 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5914 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5915 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
));
5917 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5918 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5922 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5923 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5924 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5925 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5926 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5927 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
));
5929 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5930 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5933 if (r
->document_name
) {
5934 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5935 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5936 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5937 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5938 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5939 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
));
5941 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5942 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5945 if (r
->notify_name
) {
5946 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5947 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5948 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5949 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5950 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5951 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
));
5953 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5954 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5958 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5959 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5960 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5961 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5962 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5963 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
));
5965 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5966 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5969 if (r
->print_processor
) {
5970 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5971 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5972 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5973 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5974 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5975 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
));
5977 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5978 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5981 if (r
->parameters
) {
5982 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5983 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5984 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5985 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5986 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5987 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
));
5989 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5990 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5993 if (r
->driver_name
) {
5994 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5995 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5996 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5997 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5998 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5999 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
));
6001 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6002 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6005 if (r
->text_status
) {
6006 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6007 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
6008 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
6009 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
6010 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
6011 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
));
6013 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
6014 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
6015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
6018 return NDR_ERR_SUCCESS
;
6021 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
6023 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
6025 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
6026 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
6028 if (r
->printer_name
) {
6029 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
6032 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
6034 if (r
->server_name
) {
6035 ndr_print_string(ndr
, "server_name", r
->server_name
);
6038 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
6041 ndr_print_string(ndr
, "user_name", r
->user_name
);
6044 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
6046 if (r
->document_name
) {
6047 ndr_print_string(ndr
, "document_name", r
->document_name
);
6050 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
6052 if (r
->notify_name
) {
6053 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
6056 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
6059 ndr_print_string(ndr
, "data_type", r
->data_type
);
6062 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
6064 if (r
->print_processor
) {
6065 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
6068 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6070 if (r
->parameters
) {
6071 ndr_print_string(ndr
, "parameters", r
->parameters
);
6074 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6076 if (r
->driver_name
) {
6077 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6080 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
6081 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
6083 if (r
->text_status
) {
6084 ndr_print_string(ndr
, "text_status", r
->text_status
);
6087 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
6088 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
6089 ndr_print_uint32(ndr
, "priority", r
->priority
);
6090 ndr_print_uint32(ndr
, "position", r
->position
);
6091 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
6092 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
6093 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6094 ndr_print_uint32(ndr
, "size", r
->size
);
6095 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
6096 ndr_print_uint32(ndr
, "time", r
->time
);
6097 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
6101 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
6103 if (ndr_flags
& NDR_SCALARS
) {
6104 NDR_CHECK(ndr_push_align(ndr
, 5));
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
6106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
6107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
6108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
6109 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
6110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
6111 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
6112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
6113 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6114 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
6116 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
6118 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
6119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
6121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
6122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
6123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
6125 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
6126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
6128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
6129 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6131 if (ndr_flags
& NDR_BUFFERS
) {
6132 if (r
->printer_name
) {
6133 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
6134 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6135 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
6136 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6138 if (r
->server_name
) {
6139 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
6140 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6141 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
6142 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
6146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6147 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
6148 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6150 if (r
->document_name
) {
6151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
6152 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6153 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
6154 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6156 if (r
->notify_name
) {
6157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
6158 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
6160 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6163 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
6164 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6165 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
6166 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6168 if (r
->print_processor
) {
6169 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
6170 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6171 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
6172 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6174 if (r
->parameters
) {
6175 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6178 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6180 if (r
->driver_name
) {
6181 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6182 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6183 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6184 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6186 if (r
->text_status
) {
6187 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6189 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
6190 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6193 return NDR_ERR_SUCCESS
;
6196 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
6198 uint32_t _ptr_printer_name
;
6199 TALLOC_CTX
*_mem_save_printer_name_0
;
6200 uint32_t _ptr_server_name
;
6201 TALLOC_CTX
*_mem_save_server_name_0
;
6202 uint32_t _ptr_user_name
;
6203 TALLOC_CTX
*_mem_save_user_name_0
;
6204 uint32_t _ptr_document_name
;
6205 TALLOC_CTX
*_mem_save_document_name_0
;
6206 uint32_t _ptr_notify_name
;
6207 TALLOC_CTX
*_mem_save_notify_name_0
;
6208 uint32_t _ptr_data_type
;
6209 TALLOC_CTX
*_mem_save_data_type_0
;
6210 uint32_t _ptr_print_processor
;
6211 TALLOC_CTX
*_mem_save_print_processor_0
;
6212 uint32_t _ptr_parameters
;
6213 TALLOC_CTX
*_mem_save_parameters_0
;
6214 uint32_t _ptr_driver_name
;
6215 TALLOC_CTX
*_mem_save_driver_name_0
;
6216 uint32_t _ptr_text_status
;
6217 TALLOC_CTX
*_mem_save_text_status_0
;
6218 if (ndr_flags
& NDR_SCALARS
) {
6219 NDR_CHECK(ndr_pull_align(ndr
, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
6221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
6222 if (_ptr_printer_name
) {
6223 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
6225 r
->printer_name
= NULL
;
6227 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
6228 if (_ptr_server_name
) {
6229 NDR_PULL_ALLOC(ndr
, r
->server_name
);
6231 r
->server_name
= NULL
;
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
6234 if (_ptr_user_name
) {
6235 NDR_PULL_ALLOC(ndr
, r
->user_name
);
6237 r
->user_name
= NULL
;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
6240 if (_ptr_document_name
) {
6241 NDR_PULL_ALLOC(ndr
, r
->document_name
);
6243 r
->document_name
= NULL
;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
6246 if (_ptr_notify_name
) {
6247 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
6249 r
->notify_name
= NULL
;
6251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
6252 if (_ptr_data_type
) {
6253 NDR_PULL_ALLOC(ndr
, r
->data_type
);
6255 r
->data_type
= NULL
;
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
6258 if (_ptr_print_processor
) {
6259 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
6261 r
->print_processor
= NULL
;
6263 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6264 if (_ptr_parameters
) {
6265 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6267 r
->parameters
= NULL
;
6269 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6270 if (_ptr_driver_name
) {
6271 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6273 r
->driver_name
= NULL
;
6275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
6276 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
6277 if (_ptr_text_status
) {
6278 NDR_PULL_ALLOC(ndr
, r
->text_status
);
6280 r
->text_status
= NULL
;
6282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
6283 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
6284 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6285 if (r
->priority
> 99) {
6286 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
6289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
6290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
6291 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
6293 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
6294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
6295 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
6296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
6297 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6299 if (ndr_flags
& NDR_BUFFERS
) {
6300 if (r
->printer_name
) {
6301 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6302 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
6303 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
6304 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
6305 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
6306 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
));
6308 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
6309 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
6310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
6312 if (r
->server_name
) {
6313 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6314 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
6315 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
6316 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
6317 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
6318 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
));
6320 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
6321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
6322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
6325 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6326 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
6327 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
6328 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
6329 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
6330 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
));
6332 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
6333 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
6334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
6336 if (r
->document_name
) {
6337 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6338 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
6339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
6340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
6341 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
6342 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
));
6344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
6345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
6346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
6348 if (r
->notify_name
) {
6349 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6350 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
6351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
6352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
6353 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
6354 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
));
6356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
6357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
6358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
6361 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6362 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
6363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
6364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
6365 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
6366 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
));
6368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
6369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
6370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
6372 if (r
->print_processor
) {
6373 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6374 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
6375 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
6376 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
6377 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
6378 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
6380 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
6381 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
6382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
6384 if (r
->parameters
) {
6385 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6386 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6387 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6388 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6389 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6390 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
6392 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6393 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6396 if (r
->driver_name
) {
6397 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6398 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6401 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6402 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6404 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6405 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6408 if (r
->text_status
) {
6409 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6410 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
6411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
6412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
6413 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
6414 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
6416 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
6417 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
6418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
6421 return NDR_ERR_SUCCESS
;
6424 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
6426 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
6428 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
6429 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
6431 if (r
->printer_name
) {
6432 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
6435 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
6437 if (r
->server_name
) {
6438 ndr_print_string(ndr
, "server_name", r
->server_name
);
6441 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
6444 ndr_print_string(ndr
, "user_name", r
->user_name
);
6447 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
6449 if (r
->document_name
) {
6450 ndr_print_string(ndr
, "document_name", r
->document_name
);
6453 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
6455 if (r
->notify_name
) {
6456 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
6459 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
6462 ndr_print_string(ndr
, "data_type", r
->data_type
);
6465 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
6467 if (r
->print_processor
) {
6468 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
6471 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6473 if (r
->parameters
) {
6474 ndr_print_string(ndr
, "parameters", r
->parameters
);
6477 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6479 if (r
->driver_name
) {
6480 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6483 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
6484 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
6486 if (r
->text_status
) {
6487 ndr_print_string(ndr
, "text_status", r
->text_status
);
6490 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
6491 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
6492 ndr_print_uint32(ndr
, "priority", r
->priority
);
6493 ndr_print_uint32(ndr
, "position", r
->position
);
6494 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
6495 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
6496 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6497 ndr_print_uint32(ndr
, "size", r
->size
);
6498 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
6499 ndr_print_uint32(ndr
, "time", r
->time
);
6500 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
6501 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
6505 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
6507 if (ndr_flags
& NDR_SCALARS
) {
6508 int level
= ndr_push_get_switch_value(ndr
, r
);
6509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6510 NDR_CHECK(ndr_push_union_align(ndr
, 5));
6513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6521 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6525 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6533 if (ndr_flags
& NDR_BUFFERS
) {
6534 int level
= ndr_push_get_switch_value(ndr
, r
);
6538 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6544 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6550 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6556 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6565 return NDR_ERR_SUCCESS
;
6568 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
6572 TALLOC_CTX
*_mem_save_info1_0
;
6573 TALLOC_CTX
*_mem_save_info2_0
;
6574 TALLOC_CTX
*_mem_save_info3_0
;
6575 TALLOC_CTX
*_mem_save_info4_0
;
6576 level
= ndr_pull_get_switch_value(ndr
, r
);
6577 if (ndr_flags
& NDR_SCALARS
) {
6578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6579 if (_level
!= level
) {
6580 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6582 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6585 uint32_t _ptr_info1
;
6586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6588 NDR_PULL_ALLOC(ndr
, r
->info1
);
6595 uint32_t _ptr_info2
;
6596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6598 NDR_PULL_ALLOC(ndr
, r
->info2
);
6605 uint32_t _ptr_info3
;
6606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6608 NDR_PULL_ALLOC(ndr
, r
->info3
);
6615 uint32_t _ptr_info4
;
6616 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6618 NDR_PULL_ALLOC(ndr
, r
->info4
);
6629 if (ndr_flags
& NDR_BUFFERS
) {
6633 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6634 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6635 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6642 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6643 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6644 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6651 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6652 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6653 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6660 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6661 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6662 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6672 return NDR_ERR_SUCCESS
;
6675 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
6678 level
= ndr_print_get_switch_value(ndr
, r
);
6679 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
6682 ndr_print_ptr(ndr
, "info1", r
->info1
);
6685 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
6691 ndr_print_ptr(ndr
, "info2", r
->info2
);
6694 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
6700 ndr_print_ptr(ndr
, "info3", r
->info3
);
6703 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
6709 ndr_print_ptr(ndr
, "info4", r
->info4
);
6712 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
6723 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
6725 if (ndr_flags
& NDR_SCALARS
) {
6726 NDR_CHECK(ndr_push_align(ndr
, 5));
6727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
6728 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
6729 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6730 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6732 if (ndr_flags
& NDR_BUFFERS
) {
6733 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6735 return NDR_ERR_SUCCESS
;
6738 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
6740 if (ndr_flags
& NDR_SCALARS
) {
6741 NDR_CHECK(ndr_pull_align(ndr
, 5));
6742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6743 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6744 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6745 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6747 if (ndr_flags
& NDR_BUFFERS
) {
6748 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6750 return NDR_ERR_SUCCESS
;
6753 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
6755 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
6757 ndr_print_uint32(ndr
, "level", r
->level
);
6758 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6759 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
6763 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
6765 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6766 return NDR_ERR_SUCCESS
;
6769 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
6772 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6774 return NDR_ERR_SUCCESS
;
6777 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
6779 const char *val
= NULL
;
6782 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6783 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
6784 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6785 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
6786 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
6787 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6788 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6789 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6790 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6792 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6795 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
6797 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6798 return NDR_ERR_SUCCESS
;
6801 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
6804 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6806 return NDR_ERR_SUCCESS
;
6809 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
6811 const char *val
= NULL
;
6814 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6815 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6816 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6817 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6818 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6820 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6823 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
6825 if (ndr_flags
& NDR_SCALARS
) {
6826 NDR_CHECK(ndr_push_align(ndr
, 5));
6827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
6831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
6832 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
6834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
6836 NDR_CHECK(ndr_push_spoolss_Build(ndr
, NDR_SCALARS
, r
->free_build
));
6837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
6838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
6839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
6840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
6841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
6842 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
6843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
6844 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
6845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
6846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
6847 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
6848 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
6850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
6851 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
6852 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
6853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
6854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
6855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
6856 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6858 if (ndr_flags
& NDR_BUFFERS
) {
6859 if (r
->servername
) {
6860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6861 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6862 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6863 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6865 if (r
->printername
) {
6866 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6867 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6868 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6869 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6872 return NDR_ERR_SUCCESS
;
6875 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
6877 uint32_t _ptr_servername
;
6878 TALLOC_CTX
*_mem_save_servername_0
;
6879 uint32_t _ptr_printername
;
6880 TALLOC_CTX
*_mem_save_printername_0
;
6881 if (ndr_flags
& NDR_SCALARS
) {
6882 NDR_CHECK(ndr_pull_align(ndr
, 5));
6883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6884 if (_ptr_servername
) {
6885 NDR_PULL_ALLOC(ndr
, r
->servername
);
6887 r
->servername
= NULL
;
6889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6890 if (_ptr_printername
) {
6891 NDR_PULL_ALLOC(ndr
, r
->printername
);
6893 r
->printername
= NULL
;
6895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6898 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6900 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6901 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6902 NDR_CHECK(ndr_pull_spoolss_Build(ndr
, NDR_SCALARS
, &r
->free_build
));
6903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6908 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
6909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6910 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6913 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6914 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6917 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6918 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6919 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6922 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6924 if (ndr_flags
& NDR_BUFFERS
) {
6925 if (r
->servername
) {
6926 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6927 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6928 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6929 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6930 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6931 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
));
6933 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6934 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6937 if (r
->printername
) {
6938 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6939 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6940 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6941 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6942 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6943 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
));
6945 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6946 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6950 return NDR_ERR_SUCCESS
;
6953 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6955 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6957 ndr_print_ptr(ndr
, "servername", r
->servername
);
6959 if (r
->servername
) {
6960 ndr_print_string(ndr
, "servername", r
->servername
);
6963 ndr_print_ptr(ndr
, "printername", r
->printername
);
6965 if (r
->printername
) {
6966 ndr_print_string(ndr
, "printername", r
->printername
);
6969 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6970 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6971 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6972 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6973 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6974 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6975 ndr_print_uint32(ndr
, "version", r
->version
);
6976 ndr_print_spoolss_Build(ndr
, "free_build", r
->free_build
);
6977 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6978 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6979 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6980 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6981 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6982 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
6983 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6984 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6985 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6986 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6987 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6988 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6989 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6990 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6991 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6992 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6993 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6994 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6995 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6999 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
7001 if (ndr_flags
& NDR_SCALARS
) {
7002 NDR_CHECK(ndr_push_align(ndr
, 5));
7003 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
7004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
7005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
7006 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
7007 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7009 if (ndr_flags
& NDR_BUFFERS
) {
7010 if (r
->description
) {
7011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
7012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
7014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
7018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
7020 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7023 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7024 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7026 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7029 return NDR_ERR_SUCCESS
;
7032 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
7034 uint32_t _ptr_description
;
7035 TALLOC_CTX
*_mem_save_description_0
;
7037 TALLOC_CTX
*_mem_save_name_0
;
7038 uint32_t _ptr_comment
;
7039 TALLOC_CTX
*_mem_save_comment_0
;
7040 if (ndr_flags
& NDR_SCALARS
) {
7041 NDR_CHECK(ndr_pull_align(ndr
, 5));
7042 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
7043 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
7044 if (_ptr_description
) {
7045 NDR_PULL_ALLOC(ndr
, r
->description
);
7047 r
->description
= NULL
;
7049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
7051 NDR_PULL_ALLOC(ndr
, r
->name
);
7055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
7057 NDR_PULL_ALLOC(ndr
, r
->comment
);
7061 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7063 if (ndr_flags
& NDR_BUFFERS
) {
7064 if (r
->description
) {
7065 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7066 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
7067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
7068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
7069 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
7070 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
));
7072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
7073 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
7074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
7077 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7078 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
7079 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
7080 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
7081 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
7082 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
));
7084 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
7085 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
7086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
7089 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7090 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
7091 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
7092 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
7093 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
7094 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
));
7096 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
7097 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
7098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
7101 return NDR_ERR_SUCCESS
;
7104 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
7106 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
7108 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
7109 ndr_print_ptr(ndr
, "description", r
->description
);
7111 if (r
->description
) {
7112 ndr_print_string(ndr
, "description", r
->description
);
7115 ndr_print_ptr(ndr
, "name", r
->name
);
7118 ndr_print_string(ndr
, "name", r
->name
);
7121 ndr_print_ptr(ndr
, "comment", r
->comment
);
7124 ndr_print_string(ndr
, "comment", r
->comment
);
7130 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
7132 if (ndr_flags
& NDR_SCALARS
) {
7133 NDR_CHECK(ndr_push_align(ndr
, 5));
7134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7135 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7136 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
7137 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7138 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
7139 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
7140 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
7141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
7143 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
7144 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
7145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
7146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->secdesc_ptr
));
7147 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
7149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
7150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
7151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
7152 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
7154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
7155 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7157 if (ndr_flags
& NDR_BUFFERS
) {
7158 if (r
->servername
) {
7159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7162 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7164 if (r
->printername
) {
7165 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7166 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7168 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7171 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
7172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7173 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
7174 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7178 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7180 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7182 if (r
->drivername
) {
7183 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
7184 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
7186 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7189 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7190 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7191 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7192 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7195 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
7196 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7197 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
7198 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7201 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
7202 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7203 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
7204 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7206 if (r
->printprocessor
) {
7207 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
7208 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7209 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
7210 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7213 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
7214 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7215 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
7216 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7218 if (r
->parameters
) {
7219 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
7220 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7221 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
7222 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7225 return NDR_ERR_SUCCESS
;
7228 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
7230 uint32_t _ptr_servername
;
7231 TALLOC_CTX
*_mem_save_servername_0
;
7232 uint32_t _ptr_printername
;
7233 TALLOC_CTX
*_mem_save_printername_0
;
7234 uint32_t _ptr_sharename
;
7235 TALLOC_CTX
*_mem_save_sharename_0
;
7236 uint32_t _ptr_portname
;
7237 TALLOC_CTX
*_mem_save_portname_0
;
7238 uint32_t _ptr_drivername
;
7239 TALLOC_CTX
*_mem_save_drivername_0
;
7240 uint32_t _ptr_comment
;
7241 TALLOC_CTX
*_mem_save_comment_0
;
7242 uint32_t _ptr_location
;
7243 TALLOC_CTX
*_mem_save_location_0
;
7244 uint32_t _ptr_sepfile
;
7245 TALLOC_CTX
*_mem_save_sepfile_0
;
7246 uint32_t _ptr_printprocessor
;
7247 TALLOC_CTX
*_mem_save_printprocessor_0
;
7248 uint32_t _ptr_datatype
;
7249 TALLOC_CTX
*_mem_save_datatype_0
;
7250 uint32_t _ptr_parameters
;
7251 TALLOC_CTX
*_mem_save_parameters_0
;
7252 if (ndr_flags
& NDR_SCALARS
) {
7253 NDR_CHECK(ndr_pull_align(ndr
, 5));
7254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7255 if (_ptr_servername
) {
7256 NDR_PULL_ALLOC(ndr
, r
->servername
);
7258 r
->servername
= NULL
;
7260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7261 if (_ptr_printername
) {
7262 NDR_PULL_ALLOC(ndr
, r
->printername
);
7264 r
->printername
= NULL
;
7266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
7267 if (_ptr_sharename
) {
7268 NDR_PULL_ALLOC(ndr
, r
->sharename
);
7270 r
->sharename
= NULL
;
7272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7273 if (_ptr_portname
) {
7274 NDR_PULL_ALLOC(ndr
, r
->portname
);
7278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
7279 if (_ptr_drivername
) {
7280 NDR_PULL_ALLOC(ndr
, r
->drivername
);
7282 r
->drivername
= NULL
;
7284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
7286 NDR_PULL_ALLOC(ndr
, r
->comment
);
7290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
7291 if (_ptr_location
) {
7292 NDR_PULL_ALLOC(ndr
, r
->location
);
7296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
7299 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
7303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
7304 if (_ptr_printprocessor
) {
7305 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
7307 r
->printprocessor
= NULL
;
7309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
7310 if (_ptr_datatype
) {
7311 NDR_PULL_ALLOC(ndr
, r
->datatype
);
7315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
7316 if (_ptr_parameters
) {
7317 NDR_PULL_ALLOC(ndr
, r
->parameters
);
7319 r
->parameters
= NULL
;
7321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->secdesc_ptr
));
7322 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7323 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
7324 if (r
->priority
> 99) {
7325 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
7328 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
7329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
7330 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
7332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
7333 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7335 if (ndr_flags
& NDR_BUFFERS
) {
7336 if (r
->servername
) {
7337 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7338 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7341 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7342 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
));
7344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7348 if (r
->printername
) {
7349 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7350 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7353 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7354 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
));
7356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7361 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7362 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
7363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
7364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
7365 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
7366 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
));
7368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
7369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
7370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
7373 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7374 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7375 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7376 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7377 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7378 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
));
7380 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7381 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7384 if (r
->drivername
) {
7385 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7386 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
7387 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
7388 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
7389 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
7390 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
));
7392 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
7393 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
7394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
7397 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7398 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
7399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
7400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
7401 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
7402 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
));
7404 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
7405 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
7406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
7409 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7410 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
7411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
7412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
7413 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
7414 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
));
7416 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
7417 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
7418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
7421 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7422 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
7423 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
7424 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
7425 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
7426 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
));
7428 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
7429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
7430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
7432 if (r
->printprocessor
) {
7433 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7434 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
7435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
7436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
7437 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
7438 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
));
7440 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
7441 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
7442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
7445 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7446 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
7448 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
7449 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
7450 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->datatype
), ndr_get_array_length(ndr
, &r
->datatype
));
7452 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
7454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
7456 if (r
->parameters
) {
7457 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7458 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
7459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
7460 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
7461 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
7462 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
7464 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
7465 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
7466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
7469 return NDR_ERR_SUCCESS
;
7472 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
7474 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
7476 ndr_print_ptr(ndr
, "servername", r
->servername
);
7478 if (r
->servername
) {
7479 ndr_print_string(ndr
, "servername", r
->servername
);
7482 ndr_print_ptr(ndr
, "printername", r
->printername
);
7484 if (r
->printername
) {
7485 ndr_print_string(ndr
, "printername", r
->printername
);
7488 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
7491 ndr_print_string(ndr
, "sharename", r
->sharename
);
7494 ndr_print_ptr(ndr
, "portname", r
->portname
);
7497 ndr_print_string(ndr
, "portname", r
->portname
);
7500 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
7502 if (r
->drivername
) {
7503 ndr_print_string(ndr
, "drivername", r
->drivername
);
7506 ndr_print_ptr(ndr
, "comment", r
->comment
);
7509 ndr_print_string(ndr
, "comment", r
->comment
);
7512 ndr_print_ptr(ndr
, "location", r
->location
);
7515 ndr_print_string(ndr
, "location", r
->location
);
7518 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7519 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7522 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7525 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7527 if (r
->printprocessor
) {
7528 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7531 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7534 ndr_print_string(ndr
, "datatype", r
->datatype
);
7537 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7539 if (r
->parameters
) {
7540 ndr_print_string(ndr
, "parameters", r
->parameters
);
7543 ndr_print_uint32(ndr
, "secdesc_ptr", r
->secdesc_ptr
);
7544 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7545 ndr_print_uint32(ndr
, "priority", r
->priority
);
7546 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7547 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7548 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7549 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7550 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7551 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7555 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7557 if (ndr_flags
& NDR_SCALARS
) {
7558 NDR_CHECK(ndr_push_align(ndr
, 4));
7559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7560 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7562 if (ndr_flags
& NDR_BUFFERS
) {
7564 return NDR_ERR_SUCCESS
;
7567 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7569 if (ndr_flags
& NDR_SCALARS
) {
7570 NDR_CHECK(ndr_pull_align(ndr
, 4));
7571 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7572 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7574 if (ndr_flags
& NDR_BUFFERS
) {
7576 return NDR_ERR_SUCCESS
;
7579 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7581 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7583 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7587 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7589 if (ndr_flags
& NDR_SCALARS
) {
7590 NDR_CHECK(ndr_push_align(ndr
, 5));
7591 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7593 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7594 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7596 if (ndr_flags
& NDR_BUFFERS
) {
7597 if (r
->printername
) {
7598 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7601 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7603 if (r
->servername
) {
7604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7607 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7610 return NDR_ERR_SUCCESS
;
7613 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7615 uint32_t _ptr_printername
;
7616 TALLOC_CTX
*_mem_save_printername_0
;
7617 uint32_t _ptr_servername
;
7618 TALLOC_CTX
*_mem_save_servername_0
;
7619 if (ndr_flags
& NDR_SCALARS
) {
7620 NDR_CHECK(ndr_pull_align(ndr
, 5));
7621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7622 if (_ptr_printername
) {
7623 NDR_PULL_ALLOC(ndr
, r
->printername
);
7625 r
->printername
= NULL
;
7627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7628 if (_ptr_servername
) {
7629 NDR_PULL_ALLOC(ndr
, r
->servername
);
7631 r
->servername
= NULL
;
7633 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7634 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7636 if (ndr_flags
& NDR_BUFFERS
) {
7637 if (r
->printername
) {
7638 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7639 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7640 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7641 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7642 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7643 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
));
7645 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7646 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7649 if (r
->servername
) {
7650 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7651 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7652 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7653 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7654 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7655 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
));
7657 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7658 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7659 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7662 return NDR_ERR_SUCCESS
;
7665 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7667 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7669 ndr_print_ptr(ndr
, "printername", r
->printername
);
7671 if (r
->printername
) {
7672 ndr_print_string(ndr
, "printername", r
->printername
);
7675 ndr_print_ptr(ndr
, "servername", r
->servername
);
7677 if (r
->servername
) {
7678 ndr_print_string(ndr
, "servername", r
->servername
);
7681 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7685 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7687 if (ndr_flags
& NDR_SCALARS
) {
7688 NDR_CHECK(ndr_push_align(ndr
, 5));
7689 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7691 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7694 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7696 if (ndr_flags
& NDR_BUFFERS
) {
7697 if (r
->printername
) {
7698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7700 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7701 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7704 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7705 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7706 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7707 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7710 return NDR_ERR_SUCCESS
;
7713 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7715 uint32_t _ptr_printername
;
7716 TALLOC_CTX
*_mem_save_printername_0
;
7717 uint32_t _ptr_portname
;
7718 TALLOC_CTX
*_mem_save_portname_0
;
7719 if (ndr_flags
& NDR_SCALARS
) {
7720 NDR_CHECK(ndr_pull_align(ndr
, 5));
7721 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7722 if (_ptr_printername
) {
7723 NDR_PULL_ALLOC(ndr
, r
->printername
);
7725 r
->printername
= NULL
;
7727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7728 if (_ptr_portname
) {
7729 NDR_PULL_ALLOC(ndr
, r
->portname
);
7733 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7736 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7738 if (ndr_flags
& NDR_BUFFERS
) {
7739 if (r
->printername
) {
7740 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7741 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7742 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7743 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7744 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7745 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
));
7747 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7748 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7752 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7753 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7754 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7755 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7756 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7757 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
));
7759 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7760 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7764 return NDR_ERR_SUCCESS
;
7767 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7769 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7771 ndr_print_ptr(ndr
, "printername", r
->printername
);
7773 if (r
->printername
) {
7774 ndr_print_string(ndr
, "printername", r
->printername
);
7777 ndr_print_ptr(ndr
, "portname", r
->portname
);
7780 ndr_print_string(ndr
, "portname", r
->portname
);
7783 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7784 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7785 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7789 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7791 if (ndr_flags
& NDR_SCALARS
) {
7792 NDR_CHECK(ndr_push_align(ndr
, 4));
7793 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7794 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7796 if (ndr_flags
& NDR_BUFFERS
) {
7798 return NDR_ERR_SUCCESS
;
7801 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7803 if (ndr_flags
& NDR_SCALARS
) {
7804 NDR_CHECK(ndr_pull_align(ndr
, 4));
7805 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7806 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7808 if (ndr_flags
& NDR_BUFFERS
) {
7810 return NDR_ERR_SUCCESS
;
7813 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7815 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7817 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7821 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7823 if (ndr_flags
& NDR_SCALARS
) {
7824 NDR_CHECK(ndr_push_align(ndr
, 5));
7825 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7826 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7827 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7829 if (ndr_flags
& NDR_BUFFERS
) {
7831 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7832 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7833 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7834 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7837 return NDR_ERR_SUCCESS
;
7840 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7843 TALLOC_CTX
*_mem_save_guid_0
;
7844 if (ndr_flags
& NDR_SCALARS
) {
7845 NDR_CHECK(ndr_pull_align(ndr
, 5));
7846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7848 NDR_PULL_ALLOC(ndr
, r
->guid
);
7852 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7853 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7855 if (ndr_flags
& NDR_BUFFERS
) {
7857 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7858 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7859 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7860 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7861 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
7862 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
));
7864 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
7865 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
7866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7869 return NDR_ERR_SUCCESS
;
7872 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7874 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7876 ndr_print_ptr(ndr
, "guid", r
->guid
);
7879 ndr_print_string(ndr
, "guid", r
->guid
);
7882 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7886 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo8
*r
)
7888 if (ndr_flags
& NDR_SCALARS
) {
7889 NDR_CHECK(ndr_push_align(ndr
, 4));
7890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7891 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7893 if (ndr_flags
& NDR_BUFFERS
) {
7895 return NDR_ERR_SUCCESS
;
7898 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo8
*r
)
7900 if (ndr_flags
& NDR_SCALARS
) {
7901 NDR_CHECK(ndr_pull_align(ndr
, 4));
7902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7903 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7905 if (ndr_flags
& NDR_BUFFERS
) {
7907 return NDR_ERR_SUCCESS
;
7910 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo8
*r
)
7912 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo8");
7914 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7918 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo9
*r
)
7920 if (ndr_flags
& NDR_SCALARS
) {
7921 NDR_CHECK(ndr_push_align(ndr
, 4));
7922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7923 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7925 if (ndr_flags
& NDR_BUFFERS
) {
7927 return NDR_ERR_SUCCESS
;
7930 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo9
*r
)
7932 if (ndr_flags
& NDR_SCALARS
) {
7933 NDR_CHECK(ndr_pull_align(ndr
, 4));
7934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7935 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7937 if (ndr_flags
& NDR_BUFFERS
) {
7939 return NDR_ERR_SUCCESS
;
7942 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo9
*r
)
7944 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo9");
7946 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7950 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7952 if (ndr_flags
& NDR_SCALARS
) {
7953 int level
= ndr_push_get_switch_value(ndr
, r
);
7954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7955 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7974 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7978 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7982 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7986 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7990 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7994 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
8002 if (ndr_flags
& NDR_BUFFERS
) {
8003 int level
= ndr_push_get_switch_value(ndr
, r
);
8007 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
8013 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8019 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8025 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
8031 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8037 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
8043 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
8049 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
8055 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
8061 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
8070 return NDR_ERR_SUCCESS
;
8073 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
8077 TALLOC_CTX
*_mem_save_info0_0
;
8078 TALLOC_CTX
*_mem_save_info1_0
;
8079 TALLOC_CTX
*_mem_save_info2_0
;
8080 TALLOC_CTX
*_mem_save_info3_0
;
8081 TALLOC_CTX
*_mem_save_info4_0
;
8082 TALLOC_CTX
*_mem_save_info5_0
;
8083 TALLOC_CTX
*_mem_save_info6_0
;
8084 TALLOC_CTX
*_mem_save_info7_0
;
8085 TALLOC_CTX
*_mem_save_info8_0
;
8086 TALLOC_CTX
*_mem_save_info9_0
;
8087 level
= ndr_pull_get_switch_value(ndr
, r
);
8088 if (ndr_flags
& NDR_SCALARS
) {
8089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8090 if (_level
!= level
) {
8091 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8093 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
8096 uint32_t _ptr_info0
;
8097 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
8099 NDR_PULL_ALLOC(ndr
, r
->info0
);
8106 uint32_t _ptr_info1
;
8107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
8109 NDR_PULL_ALLOC(ndr
, r
->info1
);
8116 uint32_t _ptr_info2
;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
8119 NDR_PULL_ALLOC(ndr
, r
->info2
);
8126 uint32_t _ptr_info3
;
8127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
8129 NDR_PULL_ALLOC(ndr
, r
->info3
);
8136 uint32_t _ptr_info4
;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
8139 NDR_PULL_ALLOC(ndr
, r
->info4
);
8146 uint32_t _ptr_info5
;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
8149 NDR_PULL_ALLOC(ndr
, r
->info5
);
8156 uint32_t _ptr_info6
;
8157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
8159 NDR_PULL_ALLOC(ndr
, r
->info6
);
8166 uint32_t _ptr_info7
;
8167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
8169 NDR_PULL_ALLOC(ndr
, r
->info7
);
8176 uint32_t _ptr_info8
;
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
8179 NDR_PULL_ALLOC(ndr
, r
->info8
);
8186 uint32_t _ptr_info9
;
8187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
8189 NDR_PULL_ALLOC(ndr
, r
->info9
);
8200 if (ndr_flags
& NDR_BUFFERS
) {
8204 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8205 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
8206 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
8207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
8213 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8214 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
8215 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
8222 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8223 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
8224 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
8231 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8232 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
8233 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
8234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
8240 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8241 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
8242 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
8249 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8250 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
8251 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
8252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
8258 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8259 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
8260 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
8261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
8267 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8268 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
8269 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
8270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
8276 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8277 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
8278 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
8279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
8285 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8286 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
8287 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
8288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
8297 return NDR_ERR_SUCCESS
;
8300 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
8303 level
= ndr_print_get_switch_value(ndr
, r
);
8304 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
8307 ndr_print_ptr(ndr
, "info0", r
->info0
);
8310 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
8316 ndr_print_ptr(ndr
, "info1", r
->info1
);
8319 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
8325 ndr_print_ptr(ndr
, "info2", r
->info2
);
8328 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
8334 ndr_print_ptr(ndr
, "info3", r
->info3
);
8337 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
8343 ndr_print_ptr(ndr
, "info4", r
->info4
);
8346 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
8352 ndr_print_ptr(ndr
, "info5", r
->info5
);
8355 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
8361 ndr_print_ptr(ndr
, "info6", r
->info6
);
8364 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
8370 ndr_print_ptr(ndr
, "info7", r
->info7
);
8373 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
8379 ndr_print_ptr(ndr
, "info8", r
->info8
);
8382 ndr_print_spoolss_SetPrinterInfo8(ndr
, "info8", r
->info8
);
8388 ndr_print_ptr(ndr
, "info9", r
->info9
);
8391 ndr_print_spoolss_SetPrinterInfo9(ndr
, "info9", r
->info9
);
8402 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
8404 if (ndr_flags
& NDR_SCALARS
) {
8405 NDR_CHECK(ndr_push_align(ndr
, 5));
8406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8407 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
8408 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8409 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8411 if (ndr_flags
& NDR_BUFFERS
) {
8412 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8414 return NDR_ERR_SUCCESS
;
8417 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
8419 if (ndr_flags
& NDR_SCALARS
) {
8420 NDR_CHECK(ndr_pull_align(ndr
, 5));
8421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8422 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
8423 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8424 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8426 if (ndr_flags
& NDR_BUFFERS
) {
8427 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8429 return NDR_ERR_SUCCESS
;
8432 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
8434 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
8436 ndr_print_uint32(ndr
, "level", r
->level
);
8437 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
8438 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
8442 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
8444 if (ndr_flags
& NDR_SCALARS
) {
8445 NDR_CHECK(ndr_push_align(ndr
, 4));
8446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
8448 uint32_t _flags_save_string_array
= ndr
->flags
;
8449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8450 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
8451 ndr
->flags
= _flags_save_string_array
;
8453 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
8455 if (ndr_flags
& NDR_BUFFERS
) {
8457 return NDR_ERR_SUCCESS
;
8460 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
8462 if (ndr_flags
& NDR_SCALARS
) {
8463 NDR_CHECK(ndr_pull_align(ndr
, 4));
8464 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
8466 uint32_t _flags_save_string_array
= ndr
->flags
;
8467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8468 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
8469 ndr
->flags
= _flags_save_string_array
;
8471 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
8473 if (ndr_flags
& NDR_BUFFERS
) {
8475 return NDR_ERR_SUCCESS
;
8478 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
8480 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
8482 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
);
8483 ndr_print_string_array(ndr
, "string", r
->string
);
8487 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
8489 if (ndr_flags
& NDR_SCALARS
) {
8490 NDR_CHECK(ndr_push_align(ndr
, 5));
8491 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8492 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8494 if (ndr_flags
& NDR_BUFFERS
) {
8495 if (r
->driver_name
) {
8496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8498 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8499 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8502 return NDR_ERR_SUCCESS
;
8505 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
8507 uint32_t _ptr_driver_name
;
8508 TALLOC_CTX
*_mem_save_driver_name_0
;
8509 if (ndr_flags
& NDR_SCALARS
) {
8510 NDR_CHECK(ndr_pull_align(ndr
, 5));
8511 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8512 if (_ptr_driver_name
) {
8513 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8515 r
->driver_name
= NULL
;
8517 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8519 if (ndr_flags
& NDR_BUFFERS
) {
8520 if (r
->driver_name
) {
8521 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8522 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8525 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8526 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
));
8528 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8529 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8533 return NDR_ERR_SUCCESS
;
8536 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8538 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8540 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8542 if (r
->driver_name
) {
8543 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8549 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8551 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8552 return NDR_ERR_SUCCESS
;
8555 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8558 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8560 return NDR_ERR_SUCCESS
;
8563 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8565 const char *val
= NULL
;
8568 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8569 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8570 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8571 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8573 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8576 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8578 if (ndr_flags
& NDR_SCALARS
) {
8579 NDR_CHECK(ndr_push_align(ndr
, 5));
8580 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8586 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8588 if (ndr_flags
& NDR_BUFFERS
) {
8589 if (r
->driver_name
) {
8590 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8591 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8592 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8593 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8595 if (r
->architecture
) {
8596 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8597 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8598 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8599 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8601 if (r
->driver_path
) {
8602 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8605 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8610 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8611 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8613 if (r
->config_file
) {
8614 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8615 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8616 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8617 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8620 return NDR_ERR_SUCCESS
;
8623 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8625 uint32_t _ptr_driver_name
;
8626 TALLOC_CTX
*_mem_save_driver_name_0
;
8627 uint32_t _ptr_architecture
;
8628 TALLOC_CTX
*_mem_save_architecture_0
;
8629 uint32_t _ptr_driver_path
;
8630 TALLOC_CTX
*_mem_save_driver_path_0
;
8631 uint32_t _ptr_data_file
;
8632 TALLOC_CTX
*_mem_save_data_file_0
;
8633 uint32_t _ptr_config_file
;
8634 TALLOC_CTX
*_mem_save_config_file_0
;
8635 if (ndr_flags
& NDR_SCALARS
) {
8636 NDR_CHECK(ndr_pull_align(ndr
, 5));
8637 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8639 if (_ptr_driver_name
) {
8640 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8642 r
->driver_name
= NULL
;
8644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8645 if (_ptr_architecture
) {
8646 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8648 r
->architecture
= NULL
;
8650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8651 if (_ptr_driver_path
) {
8652 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8654 r
->driver_path
= NULL
;
8656 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8657 if (_ptr_data_file
) {
8658 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8660 r
->data_file
= NULL
;
8662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8663 if (_ptr_config_file
) {
8664 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8666 r
->config_file
= NULL
;
8668 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8670 if (ndr_flags
& NDR_BUFFERS
) {
8671 if (r
->driver_name
) {
8672 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8673 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8674 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8675 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8676 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8677 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
));
8679 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8683 if (r
->architecture
) {
8684 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8685 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8688 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8689 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
));
8691 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8692 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8695 if (r
->driver_path
) {
8696 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8697 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8698 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8699 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8700 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8701 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
));
8703 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8704 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8708 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8709 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8710 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8711 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8712 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8713 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
));
8715 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8716 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8719 if (r
->config_file
) {
8720 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8721 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8722 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8723 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8724 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8725 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
));
8727 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8728 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8732 return NDR_ERR_SUCCESS
;
8735 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8737 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8739 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8740 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8742 if (r
->driver_name
) {
8743 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8746 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8748 if (r
->architecture
) {
8749 ndr_print_string(ndr
, "architecture", r
->architecture
);
8752 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8754 if (r
->driver_path
) {
8755 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8758 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8761 ndr_print_string(ndr
, "data_file", r
->data_file
);
8764 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8766 if (r
->config_file
) {
8767 ndr_print_string(ndr
, "config_file", r
->config_file
);
8773 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8775 if (ndr_flags
& NDR_SCALARS
) {
8776 NDR_CHECK(ndr_push_align(ndr
, 5));
8777 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8778 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8779 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8782 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8783 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8784 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8785 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8787 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8788 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8790 if (ndr_flags
& NDR_BUFFERS
) {
8791 if (r
->driver_name
) {
8792 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8793 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8795 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8797 if (r
->architecture
) {
8798 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8799 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8801 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8803 if (r
->driver_path
) {
8804 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8805 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8806 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8807 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8810 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8811 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8812 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8813 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8815 if (r
->config_file
) {
8816 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8817 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8819 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8822 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8823 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8825 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8827 if (r
->monitor_name
) {
8828 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8829 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8830 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8831 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8833 if (r
->default_datatype
) {
8834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8835 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8837 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8839 if (r
->dependent_files
) {
8840 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8843 return NDR_ERR_SUCCESS
;
8846 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8848 uint32_t _ptr_driver_name
;
8849 TALLOC_CTX
*_mem_save_driver_name_0
;
8850 uint32_t _ptr_architecture
;
8851 TALLOC_CTX
*_mem_save_architecture_0
;
8852 uint32_t _ptr_driver_path
;
8853 TALLOC_CTX
*_mem_save_driver_path_0
;
8854 uint32_t _ptr_data_file
;
8855 TALLOC_CTX
*_mem_save_data_file_0
;
8856 uint32_t _ptr_config_file
;
8857 TALLOC_CTX
*_mem_save_config_file_0
;
8858 uint32_t _ptr_help_file
;
8859 TALLOC_CTX
*_mem_save_help_file_0
;
8860 uint32_t _ptr_monitor_name
;
8861 TALLOC_CTX
*_mem_save_monitor_name_0
;
8862 uint32_t _ptr_default_datatype
;
8863 TALLOC_CTX
*_mem_save_default_datatype_0
;
8864 uint32_t _ptr_dependent_files
;
8865 TALLOC_CTX
*_mem_save_dependent_files_0
;
8866 if (ndr_flags
& NDR_SCALARS
) {
8867 NDR_CHECK(ndr_pull_align(ndr
, 5));
8868 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8870 if (_ptr_driver_name
) {
8871 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8873 r
->driver_name
= NULL
;
8875 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8876 if (_ptr_architecture
) {
8877 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8879 r
->architecture
= NULL
;
8881 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8882 if (_ptr_driver_path
) {
8883 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8885 r
->driver_path
= NULL
;
8887 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8888 if (_ptr_data_file
) {
8889 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8891 r
->data_file
= NULL
;
8893 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8894 if (_ptr_config_file
) {
8895 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8897 r
->config_file
= NULL
;
8899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8900 if (_ptr_help_file
) {
8901 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8903 r
->help_file
= NULL
;
8905 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8906 if (_ptr_monitor_name
) {
8907 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8909 r
->monitor_name
= NULL
;
8911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8912 if (_ptr_default_datatype
) {
8913 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8915 r
->default_datatype
= NULL
;
8917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8918 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8919 if (_ptr_dependent_files
) {
8920 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8922 r
->dependent_files
= NULL
;
8924 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8926 if (ndr_flags
& NDR_BUFFERS
) {
8927 if (r
->driver_name
) {
8928 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8929 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8932 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8933 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
));
8935 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8936 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8939 if (r
->architecture
) {
8940 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8941 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8943 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8944 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8945 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
));
8947 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8951 if (r
->driver_path
) {
8952 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8953 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8956 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8957 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
));
8959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8964 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8965 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8966 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8967 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8968 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8969 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
));
8971 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8972 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8975 if (r
->config_file
) {
8976 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8977 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8979 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8980 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8981 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
));
8983 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8988 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8989 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8990 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8991 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8992 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8993 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
));
8995 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8996 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8999 if (r
->monitor_name
) {
9000 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9001 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9002 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9003 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9004 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9005 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
));
9007 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9008 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9011 if (r
->default_datatype
) {
9012 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9013 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9014 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9015 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9016 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9017 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
));
9019 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9020 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9023 if (r
->dependent_files
) {
9024 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9025 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9026 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9030 return NDR_ERR_SUCCESS
;
9033 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
9035 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
9037 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9038 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9040 if (r
->driver_name
) {
9041 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9044 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9046 if (r
->architecture
) {
9047 ndr_print_string(ndr
, "architecture", r
->architecture
);
9050 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9052 if (r
->driver_path
) {
9053 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9056 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9059 ndr_print_string(ndr
, "data_file", r
->data_file
);
9062 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9064 if (r
->config_file
) {
9065 ndr_print_string(ndr
, "config_file", r
->config_file
);
9068 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9071 ndr_print_string(ndr
, "help_file", r
->help_file
);
9074 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9076 if (r
->monitor_name
) {
9077 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9080 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9082 if (r
->default_datatype
) {
9083 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9086 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
);
9087 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9089 if (r
->dependent_files
) {
9090 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9096 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
9098 if (ndr_flags
& NDR_SCALARS
) {
9099 NDR_CHECK(ndr_push_align(ndr
, 5));
9100 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9104 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9105 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9109 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9113 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
9115 if (ndr_flags
& NDR_BUFFERS
) {
9116 if (r
->driver_name
) {
9117 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9118 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9119 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9120 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9122 if (r
->architecture
) {
9123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9124 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9125 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9126 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9128 if (r
->driver_path
) {
9129 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9130 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9131 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9132 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9135 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9136 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9137 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9138 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9140 if (r
->config_file
) {
9141 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9142 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9143 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9144 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9147 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9148 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9152 if (r
->monitor_name
) {
9153 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9156 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9158 if (r
->default_datatype
) {
9159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9162 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9164 if (r
->dependent_files
) {
9165 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9167 if (r
->previous_names
) {
9168 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9171 return NDR_ERR_SUCCESS
;
9174 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
9176 uint32_t _ptr_driver_name
;
9177 TALLOC_CTX
*_mem_save_driver_name_0
;
9178 uint32_t _ptr_architecture
;
9179 TALLOC_CTX
*_mem_save_architecture_0
;
9180 uint32_t _ptr_driver_path
;
9181 TALLOC_CTX
*_mem_save_driver_path_0
;
9182 uint32_t _ptr_data_file
;
9183 TALLOC_CTX
*_mem_save_data_file_0
;
9184 uint32_t _ptr_config_file
;
9185 TALLOC_CTX
*_mem_save_config_file_0
;
9186 uint32_t _ptr_help_file
;
9187 TALLOC_CTX
*_mem_save_help_file_0
;
9188 uint32_t _ptr_monitor_name
;
9189 TALLOC_CTX
*_mem_save_monitor_name_0
;
9190 uint32_t _ptr_default_datatype
;
9191 TALLOC_CTX
*_mem_save_default_datatype_0
;
9192 uint32_t _ptr_dependent_files
;
9193 TALLOC_CTX
*_mem_save_dependent_files_0
;
9194 uint32_t _ptr_previous_names
;
9195 TALLOC_CTX
*_mem_save_previous_names_0
;
9196 if (ndr_flags
& NDR_SCALARS
) {
9197 NDR_CHECK(ndr_pull_align(ndr
, 5));
9198 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9200 if (_ptr_driver_name
) {
9201 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9203 r
->driver_name
= NULL
;
9205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9206 if (_ptr_architecture
) {
9207 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9209 r
->architecture
= NULL
;
9211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9212 if (_ptr_driver_path
) {
9213 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9215 r
->driver_path
= NULL
;
9217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9218 if (_ptr_data_file
) {
9219 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9221 r
->data_file
= NULL
;
9223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9224 if (_ptr_config_file
) {
9225 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9227 r
->config_file
= NULL
;
9229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9230 if (_ptr_help_file
) {
9231 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9233 r
->help_file
= NULL
;
9235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9236 if (_ptr_monitor_name
) {
9237 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9239 r
->monitor_name
= NULL
;
9241 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9242 if (_ptr_default_datatype
) {
9243 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9245 r
->default_datatype
= NULL
;
9247 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9249 if (_ptr_dependent_files
) {
9250 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9252 r
->dependent_files
= NULL
;
9254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9256 if (_ptr_previous_names
) {
9257 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9259 r
->previous_names
= NULL
;
9261 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
9263 if (ndr_flags
& NDR_BUFFERS
) {
9264 if (r
->driver_name
) {
9265 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9266 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9269 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9270 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
));
9272 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9273 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9276 if (r
->architecture
) {
9277 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9278 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9281 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9282 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
));
9284 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9285 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9288 if (r
->driver_path
) {
9289 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9290 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9291 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9292 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9293 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9294 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
));
9296 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9297 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9301 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9302 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9303 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9304 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9305 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9306 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
));
9308 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9309 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9312 if (r
->config_file
) {
9313 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9314 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9315 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9316 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9317 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9318 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
));
9320 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9325 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9326 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9327 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9328 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9329 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9330 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
));
9332 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9333 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9336 if (r
->monitor_name
) {
9337 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9338 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9341 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9342 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
));
9344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9348 if (r
->default_datatype
) {
9349 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9350 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9353 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9354 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
9356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9360 if (r
->dependent_files
) {
9361 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9362 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9363 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9366 if (r
->previous_names
) {
9367 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9368 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9369 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9373 return NDR_ERR_SUCCESS
;
9376 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
9378 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
9380 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9381 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9383 if (r
->driver_name
) {
9384 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9387 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9389 if (r
->architecture
) {
9390 ndr_print_string(ndr
, "architecture", r
->architecture
);
9393 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9395 if (r
->driver_path
) {
9396 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9399 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9402 ndr_print_string(ndr
, "data_file", r
->data_file
);
9405 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9407 if (r
->config_file
) {
9408 ndr_print_string(ndr
, "config_file", r
->config_file
);
9411 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9414 ndr_print_string(ndr
, "help_file", r
->help_file
);
9417 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9419 if (r
->monitor_name
) {
9420 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9423 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9425 if (r
->default_datatype
) {
9426 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9429 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
);
9430 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9432 if (r
->dependent_files
) {
9433 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9436 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
);
9437 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9439 if (r
->previous_names
) {
9440 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9446 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
9448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
9449 return NDR_ERR_SUCCESS
;
9452 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
9455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
9457 return NDR_ERR_SUCCESS
;
9460 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
9462 ndr_print_uint32(ndr
, name
, r
);
9464 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
9468 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
9470 if (ndr_flags
& NDR_SCALARS
) {
9471 NDR_CHECK(ndr_push_align(ndr
, 8));
9472 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9473 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9474 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9475 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9476 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9478 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9479 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9481 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9484 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9485 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9486 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9487 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9488 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9490 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9491 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9493 if (ndr_flags
& NDR_BUFFERS
) {
9494 if (r
->driver_name
) {
9495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9500 if (r
->architecture
) {
9501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9504 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9506 if (r
->driver_path
) {
9507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9508 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9510 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9514 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9516 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9518 if (r
->config_file
) {
9519 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9520 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9522 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9530 if (r
->monitor_name
) {
9531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9532 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9534 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9536 if (r
->default_datatype
) {
9537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9538 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9542 if (r
->dependent_files
) {
9543 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9545 if (r
->previous_names
) {
9546 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9548 if (r
->manufacturer_name
) {
9549 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9550 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9552 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9554 if (r
->manufacturer_url
) {
9555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9556 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9558 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9560 if (r
->hardware_id
) {
9561 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9564 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9567 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9568 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9569 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9570 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9573 return NDR_ERR_SUCCESS
;
9576 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9578 uint32_t _ptr_driver_name
;
9579 TALLOC_CTX
*_mem_save_driver_name_0
;
9580 uint32_t _ptr_architecture
;
9581 TALLOC_CTX
*_mem_save_architecture_0
;
9582 uint32_t _ptr_driver_path
;
9583 TALLOC_CTX
*_mem_save_driver_path_0
;
9584 uint32_t _ptr_data_file
;
9585 TALLOC_CTX
*_mem_save_data_file_0
;
9586 uint32_t _ptr_config_file
;
9587 TALLOC_CTX
*_mem_save_config_file_0
;
9588 uint32_t _ptr_help_file
;
9589 TALLOC_CTX
*_mem_save_help_file_0
;
9590 uint32_t _ptr_monitor_name
;
9591 TALLOC_CTX
*_mem_save_monitor_name_0
;
9592 uint32_t _ptr_default_datatype
;
9593 TALLOC_CTX
*_mem_save_default_datatype_0
;
9594 uint32_t _ptr_dependent_files
;
9595 TALLOC_CTX
*_mem_save_dependent_files_0
;
9596 uint32_t _ptr_previous_names
;
9597 TALLOC_CTX
*_mem_save_previous_names_0
;
9598 uint32_t _ptr_manufacturer_name
;
9599 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9600 uint32_t _ptr_manufacturer_url
;
9601 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9602 uint32_t _ptr_hardware_id
;
9603 TALLOC_CTX
*_mem_save_hardware_id_0
;
9604 uint32_t _ptr_provider
;
9605 TALLOC_CTX
*_mem_save_provider_0
;
9606 if (ndr_flags
& NDR_SCALARS
) {
9607 NDR_CHECK(ndr_pull_align(ndr
, 8));
9608 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9609 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9610 if (_ptr_driver_name
) {
9611 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9613 r
->driver_name
= NULL
;
9615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9616 if (_ptr_architecture
) {
9617 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9619 r
->architecture
= NULL
;
9621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9622 if (_ptr_driver_path
) {
9623 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9625 r
->driver_path
= NULL
;
9627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9628 if (_ptr_data_file
) {
9629 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9631 r
->data_file
= NULL
;
9633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9634 if (_ptr_config_file
) {
9635 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9637 r
->config_file
= NULL
;
9639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9640 if (_ptr_help_file
) {
9641 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9643 r
->help_file
= NULL
;
9645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9646 if (_ptr_monitor_name
) {
9647 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9649 r
->monitor_name
= NULL
;
9651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9652 if (_ptr_default_datatype
) {
9653 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9655 r
->default_datatype
= NULL
;
9657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9659 if (_ptr_dependent_files
) {
9660 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9662 r
->dependent_files
= NULL
;
9664 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9666 if (_ptr_previous_names
) {
9667 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9669 r
->previous_names
= NULL
;
9671 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9672 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9673 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9674 if (_ptr_manufacturer_name
) {
9675 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9677 r
->manufacturer_name
= NULL
;
9679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9680 if (_ptr_manufacturer_url
) {
9681 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9683 r
->manufacturer_url
= NULL
;
9685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9686 if (_ptr_hardware_id
) {
9687 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9689 r
->hardware_id
= NULL
;
9691 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9692 if (_ptr_provider
) {
9693 NDR_PULL_ALLOC(ndr
, r
->provider
);
9697 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9699 if (ndr_flags
& NDR_BUFFERS
) {
9700 if (r
->driver_name
) {
9701 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9702 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9705 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9706 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
));
9708 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9712 if (r
->architecture
) {
9713 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9714 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9715 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9716 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9717 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9718 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
));
9720 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9721 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9724 if (r
->driver_path
) {
9725 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9726 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9727 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9728 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9729 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9730 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
));
9732 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9733 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9737 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9738 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9739 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9740 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9741 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9742 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
));
9744 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9745 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9748 if (r
->config_file
) {
9749 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9750 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9751 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9752 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9753 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9754 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
));
9756 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9757 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9761 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9762 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9763 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9764 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9765 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9766 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
));
9768 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9769 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9770 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9772 if (r
->monitor_name
) {
9773 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9774 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9775 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9776 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9777 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9778 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
));
9780 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9781 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9782 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9784 if (r
->default_datatype
) {
9785 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9786 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9787 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9788 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9789 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9790 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
));
9792 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9793 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9794 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9796 if (r
->dependent_files
) {
9797 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9798 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9799 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9802 if (r
->previous_names
) {
9803 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9804 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9805 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9808 if (r
->manufacturer_name
) {
9809 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9810 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9811 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9812 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9813 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9814 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
));
9816 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9817 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9820 if (r
->manufacturer_url
) {
9821 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9822 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9823 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9824 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9825 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9826 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
));
9828 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9829 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9832 if (r
->hardware_id
) {
9833 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9834 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9836 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9837 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9838 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
));
9840 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9841 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9845 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9846 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9847 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9848 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9849 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9850 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
));
9852 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9853 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9857 return NDR_ERR_SUCCESS
;
9860 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9862 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9864 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9865 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9867 if (r
->driver_name
) {
9868 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9871 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9873 if (r
->architecture
) {
9874 ndr_print_string(ndr
, "architecture", r
->architecture
);
9877 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9879 if (r
->driver_path
) {
9880 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9883 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9886 ndr_print_string(ndr
, "data_file", r
->data_file
);
9889 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9891 if (r
->config_file
) {
9892 ndr_print_string(ndr
, "config_file", r
->config_file
);
9895 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9898 ndr_print_string(ndr
, "help_file", r
->help_file
);
9901 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9903 if (r
->monitor_name
) {
9904 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9907 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9909 if (r
->default_datatype
) {
9910 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9913 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
);
9914 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9916 if (r
->dependent_files
) {
9917 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9920 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
);
9921 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9923 if (r
->previous_names
) {
9924 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9927 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9928 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9929 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9931 if (r
->manufacturer_name
) {
9932 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9935 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9937 if (r
->manufacturer_url
) {
9938 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9941 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9943 if (r
->hardware_id
) {
9944 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9947 ndr_print_ptr(ndr
, "provider", r
->provider
);
9950 ndr_print_string(ndr
, "provider", r
->provider
);
9956 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9958 if (ndr_flags
& NDR_SCALARS
) {
9959 NDR_CHECK(ndr_push_align(ndr
, 8));
9960 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9961 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9973 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9974 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9975 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9977 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9978 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9980 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9982 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9983 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9986 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9987 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9988 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9989 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9991 if (ndr_flags
& NDR_BUFFERS
) {
9992 if (r
->driver_name
) {
9993 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9994 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9996 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9998 if (r
->architecture
) {
9999 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
10000 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
10002 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10004 if (r
->driver_path
) {
10005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
10006 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
10008 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10010 if (r
->data_file
) {
10011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
10012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
10014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10016 if (r
->config_file
) {
10017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
10018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
10020 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10022 if (r
->help_file
) {
10023 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
10024 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
10026 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10028 if (r
->monitor_name
) {
10029 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
10030 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10031 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
10032 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10034 if (r
->default_datatype
) {
10035 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
10036 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
10038 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10040 if (r
->dependent_files
) {
10041 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
10043 if (r
->previous_names
) {
10044 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
10046 if (r
->manufacturer_name
) {
10047 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
10048 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10049 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
10050 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10052 if (r
->manufacturer_url
) {
10053 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
10054 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10055 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
10056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10058 if (r
->hardware_id
) {
10059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
10060 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10061 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
10062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10065 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
10066 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
10068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10070 if (r
->print_processor
) {
10071 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
10072 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10073 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
10074 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10076 if (r
->vendor_setup
) {
10077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
10078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10079 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
10080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10082 if (r
->color_profiles
) {
10083 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
10086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
10087 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10088 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
10089 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10091 if (r
->core_driver_dependencies
) {
10092 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
10095 return NDR_ERR_SUCCESS
;
10098 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
10100 uint32_t _ptr_driver_name
;
10101 TALLOC_CTX
*_mem_save_driver_name_0
;
10102 uint32_t _ptr_architecture
;
10103 TALLOC_CTX
*_mem_save_architecture_0
;
10104 uint32_t _ptr_driver_path
;
10105 TALLOC_CTX
*_mem_save_driver_path_0
;
10106 uint32_t _ptr_data_file
;
10107 TALLOC_CTX
*_mem_save_data_file_0
;
10108 uint32_t _ptr_config_file
;
10109 TALLOC_CTX
*_mem_save_config_file_0
;
10110 uint32_t _ptr_help_file
;
10111 TALLOC_CTX
*_mem_save_help_file_0
;
10112 uint32_t _ptr_monitor_name
;
10113 TALLOC_CTX
*_mem_save_monitor_name_0
;
10114 uint32_t _ptr_default_datatype
;
10115 TALLOC_CTX
*_mem_save_default_datatype_0
;
10116 uint32_t _ptr_dependent_files
;
10117 TALLOC_CTX
*_mem_save_dependent_files_0
;
10118 uint32_t _ptr_previous_names
;
10119 TALLOC_CTX
*_mem_save_previous_names_0
;
10120 uint32_t _ptr_manufacturer_name
;
10121 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
10122 uint32_t _ptr_manufacturer_url
;
10123 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
10124 uint32_t _ptr_hardware_id
;
10125 TALLOC_CTX
*_mem_save_hardware_id_0
;
10126 uint32_t _ptr_provider
;
10127 TALLOC_CTX
*_mem_save_provider_0
;
10128 uint32_t _ptr_print_processor
;
10129 TALLOC_CTX
*_mem_save_print_processor_0
;
10130 uint32_t _ptr_vendor_setup
;
10131 TALLOC_CTX
*_mem_save_vendor_setup_0
;
10132 uint32_t _ptr_color_profiles
;
10133 TALLOC_CTX
*_mem_save_color_profiles_0
;
10134 uint32_t _ptr_inf_path
;
10135 TALLOC_CTX
*_mem_save_inf_path_0
;
10136 uint32_t _ptr_core_driver_dependencies
;
10137 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
10138 if (ndr_flags
& NDR_SCALARS
) {
10139 NDR_CHECK(ndr_pull_align(ndr
, 8));
10140 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10142 if (_ptr_driver_name
) {
10143 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10145 r
->driver_name
= NULL
;
10147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10148 if (_ptr_architecture
) {
10149 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10151 r
->architecture
= NULL
;
10153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10154 if (_ptr_driver_path
) {
10155 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10157 r
->driver_path
= NULL
;
10159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10160 if (_ptr_data_file
) {
10161 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10163 r
->data_file
= NULL
;
10165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10166 if (_ptr_config_file
) {
10167 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10169 r
->config_file
= NULL
;
10171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10172 if (_ptr_help_file
) {
10173 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10175 r
->help_file
= NULL
;
10177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10178 if (_ptr_monitor_name
) {
10179 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10181 r
->monitor_name
= NULL
;
10183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10184 if (_ptr_default_datatype
) {
10185 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10187 r
->default_datatype
= NULL
;
10189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
10190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10191 if (_ptr_dependent_files
) {
10192 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10194 r
->dependent_files
= NULL
;
10196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
10197 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10198 if (_ptr_previous_names
) {
10199 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10201 r
->previous_names
= NULL
;
10203 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
10204 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
10205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
10206 if (_ptr_manufacturer_name
) {
10207 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
10209 r
->manufacturer_name
= NULL
;
10211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
10212 if (_ptr_manufacturer_url
) {
10213 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
10215 r
->manufacturer_url
= NULL
;
10217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
10218 if (_ptr_hardware_id
) {
10219 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
10221 r
->hardware_id
= NULL
;
10223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
10224 if (_ptr_provider
) {
10225 NDR_PULL_ALLOC(ndr
, r
->provider
);
10227 r
->provider
= NULL
;
10229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
10230 if (_ptr_print_processor
) {
10231 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
10233 r
->print_processor
= NULL
;
10235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
10236 if (_ptr_vendor_setup
) {
10237 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
10239 r
->vendor_setup
= NULL
;
10241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
10242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
10243 if (_ptr_color_profiles
) {
10244 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
10246 r
->color_profiles
= NULL
;
10248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
10249 if (_ptr_inf_path
) {
10250 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
10252 r
->inf_path
= NULL
;
10254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
10255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
10256 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
10257 if (_ptr_core_driver_dependencies
) {
10258 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
10260 r
->core_driver_dependencies
= NULL
;
10262 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
10263 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
10264 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
10266 if (ndr_flags
& NDR_BUFFERS
) {
10267 if (r
->driver_name
) {
10268 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10269 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10270 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
10271 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
10272 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
10273 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
));
10275 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
10276 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
10277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10279 if (r
->architecture
) {
10280 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10281 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10282 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
10283 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
10284 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
10285 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
));
10287 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
10288 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
10289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10291 if (r
->driver_path
) {
10292 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10293 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
10295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
10296 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
10297 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
));
10299 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
10300 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
10301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10303 if (r
->data_file
) {
10304 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10305 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10306 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
10307 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
10308 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
10309 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
));
10311 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
10312 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
10313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10315 if (r
->config_file
) {
10316 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10317 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10318 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
10319 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
10320 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
10321 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
));
10323 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
10324 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
10325 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10327 if (r
->help_file
) {
10328 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10329 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10330 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
10331 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
10332 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
10333 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
));
10335 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
10336 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
10337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10339 if (r
->monitor_name
) {
10340 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10341 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10342 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
10343 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
10344 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
10345 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
));
10347 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
10348 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
10349 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10351 if (r
->default_datatype
) {
10352 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10353 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
10355 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
10356 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
10357 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
));
10359 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
10360 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
10361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10363 if (r
->dependent_files
) {
10364 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10365 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10366 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
10367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10369 if (r
->previous_names
) {
10370 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10371 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
10372 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
10373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
10375 if (r
->manufacturer_name
) {
10376 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10377 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
10378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
10379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
10380 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
10381 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
));
10383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
10384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
10385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
10387 if (r
->manufacturer_url
) {
10388 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10389 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
10390 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
10391 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
10392 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
10393 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
));
10395 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
10396 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
10397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
10399 if (r
->hardware_id
) {
10400 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10401 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
10402 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
10403 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
10404 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
10405 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
));
10407 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
10408 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
10409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
10412 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10413 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
10414 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
10415 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
10416 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
10417 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
));
10419 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
10420 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
10421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
10423 if (r
->print_processor
) {
10424 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10425 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
10426 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
10427 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
10428 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
10429 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
));
10431 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
10432 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
10433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
10435 if (r
->vendor_setup
) {
10436 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10437 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
10438 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
10439 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
10440 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
10441 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
));
10443 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
10444 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
10445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
10447 if (r
->color_profiles
) {
10448 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10449 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
10450 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
10451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
10454 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10455 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
10456 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
10457 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
10458 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
10459 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
));
10461 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
10462 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
10463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
10465 if (r
->core_driver_dependencies
) {
10466 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10467 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
10468 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
10469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
10472 return NDR_ERR_SUCCESS
;
10475 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
10477 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
10479 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10480 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10482 if (r
->driver_name
) {
10483 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10486 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10488 if (r
->architecture
) {
10489 ndr_print_string(ndr
, "architecture", r
->architecture
);
10492 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10494 if (r
->driver_path
) {
10495 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10498 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10500 if (r
->data_file
) {
10501 ndr_print_string(ndr
, "data_file", r
->data_file
);
10504 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10506 if (r
->config_file
) {
10507 ndr_print_string(ndr
, "config_file", r
->config_file
);
10510 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10512 if (r
->help_file
) {
10513 ndr_print_string(ndr
, "help_file", r
->help_file
);
10516 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10518 if (r
->monitor_name
) {
10519 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10522 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10524 if (r
->default_datatype
) {
10525 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10528 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
);
10529 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10531 if (r
->dependent_files
) {
10532 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10535 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
);
10536 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10538 if (r
->previous_names
) {
10539 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10542 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10543 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10544 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10546 if (r
->manufacturer_name
) {
10547 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10550 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10552 if (r
->manufacturer_url
) {
10553 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10556 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10558 if (r
->hardware_id
) {
10559 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10562 ndr_print_ptr(ndr
, "provider", r
->provider
);
10565 ndr_print_string(ndr
, "provider", r
->provider
);
10568 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10570 if (r
->print_processor
) {
10571 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10574 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10576 if (r
->vendor_setup
) {
10577 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10580 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
);
10581 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10583 if (r
->color_profiles
) {
10584 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10587 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10590 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10593 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10594 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
);
10595 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10597 if (r
->core_driver_dependencies
) {
10598 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10601 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10602 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10606 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10608 if (ndr_flags
& NDR_SCALARS
) {
10609 int level
= ndr_push_get_switch_value(ndr
, r
);
10610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10611 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10630 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10634 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10638 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10641 if (ndr_flags
& NDR_BUFFERS
) {
10642 int level
= ndr_push_get_switch_value(ndr
, r
);
10646 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10652 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10658 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10664 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10670 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10676 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10681 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10684 return NDR_ERR_SUCCESS
;
10687 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10691 TALLOC_CTX
*_mem_save_info1_0
;
10692 TALLOC_CTX
*_mem_save_info2_0
;
10693 TALLOC_CTX
*_mem_save_info3_0
;
10694 TALLOC_CTX
*_mem_save_info4_0
;
10695 TALLOC_CTX
*_mem_save_info6_0
;
10696 TALLOC_CTX
*_mem_save_info8_0
;
10697 level
= ndr_pull_get_switch_value(ndr
, r
);
10698 if (ndr_flags
& NDR_SCALARS
) {
10699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10700 if (_level
!= level
) {
10701 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10703 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10706 uint32_t _ptr_info1
;
10707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10709 NDR_PULL_ALLOC(ndr
, r
->info1
);
10716 uint32_t _ptr_info2
;
10717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10719 NDR_PULL_ALLOC(ndr
, r
->info2
);
10726 uint32_t _ptr_info3
;
10727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10729 NDR_PULL_ALLOC(ndr
, r
->info3
);
10736 uint32_t _ptr_info4
;
10737 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10739 NDR_PULL_ALLOC(ndr
, r
->info4
);
10746 uint32_t _ptr_info6
;
10747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10749 NDR_PULL_ALLOC(ndr
, r
->info6
);
10756 uint32_t _ptr_info8
;
10757 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10759 NDR_PULL_ALLOC(ndr
, r
->info8
);
10766 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10769 if (ndr_flags
& NDR_BUFFERS
) {
10773 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10774 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10775 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10776 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10782 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10783 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10784 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10791 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10792 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10793 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10794 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10800 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10801 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10802 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10809 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10810 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10811 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10818 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10819 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10820 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10826 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10829 return NDR_ERR_SUCCESS
;
10832 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10835 level
= ndr_print_get_switch_value(ndr
, r
);
10836 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10839 ndr_print_ptr(ndr
, "info1", r
->info1
);
10842 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10848 ndr_print_ptr(ndr
, "info2", r
->info2
);
10851 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10857 ndr_print_ptr(ndr
, "info3", r
->info3
);
10860 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10866 ndr_print_ptr(ndr
, "info4", r
->info4
);
10869 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10875 ndr_print_ptr(ndr
, "info6", r
->info6
);
10878 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10884 ndr_print_ptr(ndr
, "info8", r
->info8
);
10887 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10893 ndr_print_bad_level(ndr
, name
, level
);
10897 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10899 if (ndr_flags
& NDR_SCALARS
) {
10900 NDR_CHECK(ndr_push_align(ndr
, 5));
10901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10902 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10903 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10904 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10906 if (ndr_flags
& NDR_BUFFERS
) {
10907 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10909 return NDR_ERR_SUCCESS
;
10912 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10914 if (ndr_flags
& NDR_SCALARS
) {
10915 NDR_CHECK(ndr_pull_align(ndr
, 5));
10916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10917 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10918 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10919 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10921 if (ndr_flags
& NDR_BUFFERS
) {
10922 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10924 return NDR_ERR_SUCCESS
;
10927 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10929 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10931 ndr_print_uint32(ndr
, "level", r
->level
);
10932 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10933 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10937 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10939 if (ndr_flags
& NDR_SCALARS
) {
10940 NDR_CHECK(ndr_push_align(ndr
, 5));
10942 uint32_t _flags_save_string
= ndr
->flags
;
10943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10944 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10945 ndr
->flags
= _flags_save_string
;
10947 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10949 if (ndr_flags
& NDR_BUFFERS
) {
10951 uint32_t _flags_save_string
= ndr
->flags
;
10952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10953 if (r
->driver_name
) {
10954 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10955 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10958 ndr
->flags
= _flags_save_string
;
10961 return NDR_ERR_SUCCESS
;
10964 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10966 uint32_t _ptr_driver_name
;
10967 TALLOC_CTX
*_mem_save_driver_name_0
;
10968 if (ndr_flags
& NDR_SCALARS
) {
10969 NDR_CHECK(ndr_pull_align(ndr
, 5));
10971 uint32_t _flags_save_string
= ndr
->flags
;
10972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10974 if (_ptr_driver_name
) {
10975 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10976 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10978 r
->driver_name
= NULL
;
10980 ndr
->flags
= _flags_save_string
;
10982 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10984 if (ndr_flags
& NDR_BUFFERS
) {
10986 uint32_t _flags_save_string
= ndr
->flags
;
10987 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10988 if (r
->driver_name
) {
10989 uint32_t _relative_save_offset
;
10990 _relative_save_offset
= ndr
->offset
;
10991 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10992 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10993 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10994 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10996 if (ndr
->offset
> ndr
->relative_highest_offset
) {
10997 ndr
->relative_highest_offset
= ndr
->offset
;
10999 ndr
->offset
= _relative_save_offset
;
11001 ndr
->flags
= _flags_save_string
;
11004 return NDR_ERR_SUCCESS
;
11007 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
11009 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
11011 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11013 if (r
->driver_name
) {
11014 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11020 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11022 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
11025 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
11027 if (ndr_flags
& NDR_SCALARS
) {
11028 NDR_CHECK(ndr_push_align(ndr
, 5));
11029 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11031 uint32_t _flags_save_string
= ndr
->flags
;
11032 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11033 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11034 ndr
->flags
= _flags_save_string
;
11037 uint32_t _flags_save_string
= ndr
->flags
;
11038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11039 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11040 ndr
->flags
= _flags_save_string
;
11043 uint32_t _flags_save_string
= ndr
->flags
;
11044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11045 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11046 ndr
->flags
= _flags_save_string
;
11049 uint32_t _flags_save_string
= ndr
->flags
;
11050 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11051 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11052 ndr
->flags
= _flags_save_string
;
11055 uint32_t _flags_save_string
= ndr
->flags
;
11056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11057 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11058 ndr
->flags
= _flags_save_string
;
11060 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11062 if (ndr_flags
& NDR_BUFFERS
) {
11064 uint32_t _flags_save_string
= ndr
->flags
;
11065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11066 if (r
->driver_name
) {
11067 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11068 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11069 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11071 ndr
->flags
= _flags_save_string
;
11074 uint32_t _flags_save_string
= ndr
->flags
;
11075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11076 if (r
->architecture
) {
11077 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11078 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11079 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11081 ndr
->flags
= _flags_save_string
;
11084 uint32_t _flags_save_string
= ndr
->flags
;
11085 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11086 if (r
->driver_path
) {
11087 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11088 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11089 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11091 ndr
->flags
= _flags_save_string
;
11094 uint32_t _flags_save_string
= ndr
->flags
;
11095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11096 if (r
->data_file
) {
11097 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11098 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11099 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11101 ndr
->flags
= _flags_save_string
;
11104 uint32_t _flags_save_string
= ndr
->flags
;
11105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11106 if (r
->config_file
) {
11107 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11108 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11109 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11111 ndr
->flags
= _flags_save_string
;
11114 return NDR_ERR_SUCCESS
;
11117 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
11119 uint32_t _ptr_driver_name
;
11120 TALLOC_CTX
*_mem_save_driver_name_0
;
11121 uint32_t _ptr_architecture
;
11122 TALLOC_CTX
*_mem_save_architecture_0
;
11123 uint32_t _ptr_driver_path
;
11124 TALLOC_CTX
*_mem_save_driver_path_0
;
11125 uint32_t _ptr_data_file
;
11126 TALLOC_CTX
*_mem_save_data_file_0
;
11127 uint32_t _ptr_config_file
;
11128 TALLOC_CTX
*_mem_save_config_file_0
;
11129 if (ndr_flags
& NDR_SCALARS
) {
11130 NDR_CHECK(ndr_pull_align(ndr
, 5));
11131 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11133 uint32_t _flags_save_string
= ndr
->flags
;
11134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11136 if (_ptr_driver_name
) {
11137 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11138 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11140 r
->driver_name
= NULL
;
11142 ndr
->flags
= _flags_save_string
;
11145 uint32_t _flags_save_string
= ndr
->flags
;
11146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11148 if (_ptr_architecture
) {
11149 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11150 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11152 r
->architecture
= NULL
;
11154 ndr
->flags
= _flags_save_string
;
11157 uint32_t _flags_save_string
= ndr
->flags
;
11158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11160 if (_ptr_driver_path
) {
11161 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11162 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11164 r
->driver_path
= NULL
;
11166 ndr
->flags
= _flags_save_string
;
11169 uint32_t _flags_save_string
= ndr
->flags
;
11170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11172 if (_ptr_data_file
) {
11173 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11174 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11176 r
->data_file
= NULL
;
11178 ndr
->flags
= _flags_save_string
;
11181 uint32_t _flags_save_string
= ndr
->flags
;
11182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11184 if (_ptr_config_file
) {
11185 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11186 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11188 r
->config_file
= NULL
;
11190 ndr
->flags
= _flags_save_string
;
11192 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11194 if (ndr_flags
& NDR_BUFFERS
) {
11196 uint32_t _flags_save_string
= ndr
->flags
;
11197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11198 if (r
->driver_name
) {
11199 uint32_t _relative_save_offset
;
11200 _relative_save_offset
= ndr
->offset
;
11201 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11202 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11203 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11204 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11206 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11207 ndr
->relative_highest_offset
= ndr
->offset
;
11209 ndr
->offset
= _relative_save_offset
;
11211 ndr
->flags
= _flags_save_string
;
11214 uint32_t _flags_save_string
= ndr
->flags
;
11215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11216 if (r
->architecture
) {
11217 uint32_t _relative_save_offset
;
11218 _relative_save_offset
= ndr
->offset
;
11219 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11220 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11221 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11222 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11223 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11224 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11225 ndr
->relative_highest_offset
= ndr
->offset
;
11227 ndr
->offset
= _relative_save_offset
;
11229 ndr
->flags
= _flags_save_string
;
11232 uint32_t _flags_save_string
= ndr
->flags
;
11233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11234 if (r
->driver_path
) {
11235 uint32_t _relative_save_offset
;
11236 _relative_save_offset
= ndr
->offset
;
11237 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11238 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11239 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11240 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11242 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11243 ndr
->relative_highest_offset
= ndr
->offset
;
11245 ndr
->offset
= _relative_save_offset
;
11247 ndr
->flags
= _flags_save_string
;
11250 uint32_t _flags_save_string
= ndr
->flags
;
11251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11252 if (r
->data_file
) {
11253 uint32_t _relative_save_offset
;
11254 _relative_save_offset
= ndr
->offset
;
11255 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11256 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11257 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11258 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11259 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11260 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11261 ndr
->relative_highest_offset
= ndr
->offset
;
11263 ndr
->offset
= _relative_save_offset
;
11265 ndr
->flags
= _flags_save_string
;
11268 uint32_t _flags_save_string
= ndr
->flags
;
11269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11270 if (r
->config_file
) {
11271 uint32_t _relative_save_offset
;
11272 _relative_save_offset
= ndr
->offset
;
11273 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11274 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11275 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11276 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11278 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11279 ndr
->relative_highest_offset
= ndr
->offset
;
11281 ndr
->offset
= _relative_save_offset
;
11283 ndr
->flags
= _flags_save_string
;
11286 return NDR_ERR_SUCCESS
;
11289 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
11291 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
11293 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11294 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11296 if (r
->driver_name
) {
11297 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11300 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11302 if (r
->architecture
) {
11303 ndr_print_string(ndr
, "architecture", r
->architecture
);
11306 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11308 if (r
->driver_path
) {
11309 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11312 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11314 if (r
->data_file
) {
11315 ndr_print_string(ndr
, "data_file", r
->data_file
);
11318 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11320 if (r
->config_file
) {
11321 ndr_print_string(ndr
, "config_file", r
->config_file
);
11327 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11329 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
11332 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
11334 if (ndr_flags
& NDR_SCALARS
) {
11335 NDR_CHECK(ndr_push_align(ndr
, 5));
11336 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11338 uint32_t _flags_save_string
= ndr
->flags
;
11339 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11340 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11341 ndr
->flags
= _flags_save_string
;
11344 uint32_t _flags_save_string
= ndr
->flags
;
11345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11346 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11347 ndr
->flags
= _flags_save_string
;
11350 uint32_t _flags_save_string
= ndr
->flags
;
11351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11352 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11353 ndr
->flags
= _flags_save_string
;
11356 uint32_t _flags_save_string
= ndr
->flags
;
11357 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11358 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11359 ndr
->flags
= _flags_save_string
;
11362 uint32_t _flags_save_string
= ndr
->flags
;
11363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11364 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11365 ndr
->flags
= _flags_save_string
;
11368 uint32_t _flags_save_string
= ndr
->flags
;
11369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11370 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11371 ndr
->flags
= _flags_save_string
;
11374 uint32_t _flags_save_string_array
= ndr
->flags
;
11375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11376 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11377 ndr
->flags
= _flags_save_string_array
;
11380 uint32_t _flags_save_string
= ndr
->flags
;
11381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11382 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11383 ndr
->flags
= _flags_save_string
;
11386 uint32_t _flags_save_string
= ndr
->flags
;
11387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11388 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11389 ndr
->flags
= _flags_save_string
;
11391 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11393 if (ndr_flags
& NDR_BUFFERS
) {
11395 uint32_t _flags_save_string
= ndr
->flags
;
11396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11397 if (r
->driver_name
) {
11398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11399 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11402 ndr
->flags
= _flags_save_string
;
11405 uint32_t _flags_save_string
= ndr
->flags
;
11406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11407 if (r
->architecture
) {
11408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11409 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11412 ndr
->flags
= _flags_save_string
;
11415 uint32_t _flags_save_string
= ndr
->flags
;
11416 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11417 if (r
->driver_path
) {
11418 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11419 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11420 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11422 ndr
->flags
= _flags_save_string
;
11425 uint32_t _flags_save_string
= ndr
->flags
;
11426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11427 if (r
->data_file
) {
11428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11429 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11432 ndr
->flags
= _flags_save_string
;
11435 uint32_t _flags_save_string
= ndr
->flags
;
11436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11437 if (r
->config_file
) {
11438 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11439 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11440 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11442 ndr
->flags
= _flags_save_string
;
11445 uint32_t _flags_save_string
= ndr
->flags
;
11446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11447 if (r
->help_file
) {
11448 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11449 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11450 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11452 ndr
->flags
= _flags_save_string
;
11455 uint32_t _flags_save_string_array
= ndr
->flags
;
11456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11457 if (r
->dependent_files
) {
11458 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11459 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11460 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11462 ndr
->flags
= _flags_save_string_array
;
11465 uint32_t _flags_save_string
= ndr
->flags
;
11466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11467 if (r
->monitor_name
) {
11468 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11469 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11470 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11472 ndr
->flags
= _flags_save_string
;
11475 uint32_t _flags_save_string
= ndr
->flags
;
11476 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11477 if (r
->default_datatype
) {
11478 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11479 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11480 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
11482 ndr
->flags
= _flags_save_string
;
11485 return NDR_ERR_SUCCESS
;
11488 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
11490 uint32_t _ptr_driver_name
;
11491 TALLOC_CTX
*_mem_save_driver_name_0
;
11492 uint32_t _ptr_architecture
;
11493 TALLOC_CTX
*_mem_save_architecture_0
;
11494 uint32_t _ptr_driver_path
;
11495 TALLOC_CTX
*_mem_save_driver_path_0
;
11496 uint32_t _ptr_data_file
;
11497 TALLOC_CTX
*_mem_save_data_file_0
;
11498 uint32_t _ptr_config_file
;
11499 TALLOC_CTX
*_mem_save_config_file_0
;
11500 uint32_t _ptr_help_file
;
11501 TALLOC_CTX
*_mem_save_help_file_0
;
11502 uint32_t _ptr_dependent_files
;
11503 TALLOC_CTX
*_mem_save_dependent_files_0
;
11504 uint32_t _ptr_monitor_name
;
11505 TALLOC_CTX
*_mem_save_monitor_name_0
;
11506 uint32_t _ptr_default_datatype
;
11507 TALLOC_CTX
*_mem_save_default_datatype_0
;
11508 if (ndr_flags
& NDR_SCALARS
) {
11509 NDR_CHECK(ndr_pull_align(ndr
, 5));
11510 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11512 uint32_t _flags_save_string
= ndr
->flags
;
11513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11515 if (_ptr_driver_name
) {
11516 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11517 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11519 r
->driver_name
= NULL
;
11521 ndr
->flags
= _flags_save_string
;
11524 uint32_t _flags_save_string
= ndr
->flags
;
11525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11527 if (_ptr_architecture
) {
11528 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11529 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11531 r
->architecture
= NULL
;
11533 ndr
->flags
= _flags_save_string
;
11536 uint32_t _flags_save_string
= ndr
->flags
;
11537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11539 if (_ptr_driver_path
) {
11540 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11541 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11543 r
->driver_path
= NULL
;
11545 ndr
->flags
= _flags_save_string
;
11548 uint32_t _flags_save_string
= ndr
->flags
;
11549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11551 if (_ptr_data_file
) {
11552 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11553 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11555 r
->data_file
= NULL
;
11557 ndr
->flags
= _flags_save_string
;
11560 uint32_t _flags_save_string
= ndr
->flags
;
11561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11563 if (_ptr_config_file
) {
11564 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11565 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11567 r
->config_file
= NULL
;
11569 ndr
->flags
= _flags_save_string
;
11572 uint32_t _flags_save_string
= ndr
->flags
;
11573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11575 if (_ptr_help_file
) {
11576 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11577 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11579 r
->help_file
= NULL
;
11581 ndr
->flags
= _flags_save_string
;
11584 uint32_t _flags_save_string_array
= ndr
->flags
;
11585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11587 if (_ptr_dependent_files
) {
11588 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11589 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11591 r
->dependent_files
= NULL
;
11593 ndr
->flags
= _flags_save_string_array
;
11596 uint32_t _flags_save_string
= ndr
->flags
;
11597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11598 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11599 if (_ptr_monitor_name
) {
11600 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11601 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11603 r
->monitor_name
= NULL
;
11605 ndr
->flags
= _flags_save_string
;
11608 uint32_t _flags_save_string
= ndr
->flags
;
11609 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11611 if (_ptr_default_datatype
) {
11612 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11613 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11615 r
->default_datatype
= NULL
;
11617 ndr
->flags
= _flags_save_string
;
11619 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11621 if (ndr_flags
& NDR_BUFFERS
) {
11623 uint32_t _flags_save_string
= ndr
->flags
;
11624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11625 if (r
->driver_name
) {
11626 uint32_t _relative_save_offset
;
11627 _relative_save_offset
= ndr
->offset
;
11628 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11629 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11630 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11631 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11633 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11634 ndr
->relative_highest_offset
= ndr
->offset
;
11636 ndr
->offset
= _relative_save_offset
;
11638 ndr
->flags
= _flags_save_string
;
11641 uint32_t _flags_save_string
= ndr
->flags
;
11642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11643 if (r
->architecture
) {
11644 uint32_t _relative_save_offset
;
11645 _relative_save_offset
= ndr
->offset
;
11646 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11647 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11648 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11649 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11651 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11652 ndr
->relative_highest_offset
= ndr
->offset
;
11654 ndr
->offset
= _relative_save_offset
;
11656 ndr
->flags
= _flags_save_string
;
11659 uint32_t _flags_save_string
= ndr
->flags
;
11660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11661 if (r
->driver_path
) {
11662 uint32_t _relative_save_offset
;
11663 _relative_save_offset
= ndr
->offset
;
11664 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11665 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11666 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11667 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11669 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11670 ndr
->relative_highest_offset
= ndr
->offset
;
11672 ndr
->offset
= _relative_save_offset
;
11674 ndr
->flags
= _flags_save_string
;
11677 uint32_t _flags_save_string
= ndr
->flags
;
11678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11679 if (r
->data_file
) {
11680 uint32_t _relative_save_offset
;
11681 _relative_save_offset
= ndr
->offset
;
11682 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11683 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11684 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11685 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11687 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11688 ndr
->relative_highest_offset
= ndr
->offset
;
11690 ndr
->offset
= _relative_save_offset
;
11692 ndr
->flags
= _flags_save_string
;
11695 uint32_t _flags_save_string
= ndr
->flags
;
11696 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11697 if (r
->config_file
) {
11698 uint32_t _relative_save_offset
;
11699 _relative_save_offset
= ndr
->offset
;
11700 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11701 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11702 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11703 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11705 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11706 ndr
->relative_highest_offset
= ndr
->offset
;
11708 ndr
->offset
= _relative_save_offset
;
11710 ndr
->flags
= _flags_save_string
;
11713 uint32_t _flags_save_string
= ndr
->flags
;
11714 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11715 if (r
->help_file
) {
11716 uint32_t _relative_save_offset
;
11717 _relative_save_offset
= ndr
->offset
;
11718 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11719 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11720 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11721 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11723 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11724 ndr
->relative_highest_offset
= ndr
->offset
;
11726 ndr
->offset
= _relative_save_offset
;
11728 ndr
->flags
= _flags_save_string
;
11731 uint32_t _flags_save_string_array
= ndr
->flags
;
11732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11733 if (r
->dependent_files
) {
11734 uint32_t _relative_save_offset
;
11735 _relative_save_offset
= ndr
->offset
;
11736 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11737 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11738 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11739 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11741 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11742 ndr
->relative_highest_offset
= ndr
->offset
;
11744 ndr
->offset
= _relative_save_offset
;
11746 ndr
->flags
= _flags_save_string_array
;
11749 uint32_t _flags_save_string
= ndr
->flags
;
11750 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11751 if (r
->monitor_name
) {
11752 uint32_t _relative_save_offset
;
11753 _relative_save_offset
= ndr
->offset
;
11754 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11755 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11756 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11757 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11759 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11760 ndr
->relative_highest_offset
= ndr
->offset
;
11762 ndr
->offset
= _relative_save_offset
;
11764 ndr
->flags
= _flags_save_string
;
11767 uint32_t _flags_save_string
= ndr
->flags
;
11768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11769 if (r
->default_datatype
) {
11770 uint32_t _relative_save_offset
;
11771 _relative_save_offset
= ndr
->offset
;
11772 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11773 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11774 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11775 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11776 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11777 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11778 ndr
->relative_highest_offset
= ndr
->offset
;
11780 ndr
->offset
= _relative_save_offset
;
11782 ndr
->flags
= _flags_save_string
;
11785 return NDR_ERR_SUCCESS
;
11788 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11790 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11792 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11793 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11795 if (r
->driver_name
) {
11796 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11799 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11801 if (r
->architecture
) {
11802 ndr_print_string(ndr
, "architecture", r
->architecture
);
11805 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11807 if (r
->driver_path
) {
11808 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11811 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11813 if (r
->data_file
) {
11814 ndr_print_string(ndr
, "data_file", r
->data_file
);
11817 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11819 if (r
->config_file
) {
11820 ndr_print_string(ndr
, "config_file", r
->config_file
);
11823 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11825 if (r
->help_file
) {
11826 ndr_print_string(ndr
, "help_file", r
->help_file
);
11829 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11831 if (r
->dependent_files
) {
11832 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11835 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11837 if (r
->monitor_name
) {
11838 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11841 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11843 if (r
->default_datatype
) {
11844 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11850 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11852 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11855 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11857 if (ndr_flags
& NDR_SCALARS
) {
11858 NDR_CHECK(ndr_push_align(ndr
, 5));
11859 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11861 uint32_t _flags_save_string
= ndr
->flags
;
11862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11863 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11864 ndr
->flags
= _flags_save_string
;
11867 uint32_t _flags_save_string
= ndr
->flags
;
11868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11869 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11870 ndr
->flags
= _flags_save_string
;
11873 uint32_t _flags_save_string
= ndr
->flags
;
11874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11875 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11876 ndr
->flags
= _flags_save_string
;
11879 uint32_t _flags_save_string
= ndr
->flags
;
11880 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11881 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11882 ndr
->flags
= _flags_save_string
;
11885 uint32_t _flags_save_string
= ndr
->flags
;
11886 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11887 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11888 ndr
->flags
= _flags_save_string
;
11891 uint32_t _flags_save_string
= ndr
->flags
;
11892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11893 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11894 ndr
->flags
= _flags_save_string
;
11897 uint32_t _flags_save_string_array
= ndr
->flags
;
11898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11899 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11900 ndr
->flags
= _flags_save_string_array
;
11903 uint32_t _flags_save_string
= ndr
->flags
;
11904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11905 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11906 ndr
->flags
= _flags_save_string
;
11909 uint32_t _flags_save_string
= ndr
->flags
;
11910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11911 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11912 ndr
->flags
= _flags_save_string
;
11915 uint32_t _flags_save_string_array
= ndr
->flags
;
11916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11917 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11918 ndr
->flags
= _flags_save_string_array
;
11920 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11922 if (ndr_flags
& NDR_BUFFERS
) {
11924 uint32_t _flags_save_string
= ndr
->flags
;
11925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11926 if (r
->driver_name
) {
11927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11928 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11931 ndr
->flags
= _flags_save_string
;
11934 uint32_t _flags_save_string
= ndr
->flags
;
11935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11936 if (r
->architecture
) {
11937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11938 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11941 ndr
->flags
= _flags_save_string
;
11944 uint32_t _flags_save_string
= ndr
->flags
;
11945 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11946 if (r
->driver_path
) {
11947 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11948 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11951 ndr
->flags
= _flags_save_string
;
11954 uint32_t _flags_save_string
= ndr
->flags
;
11955 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11956 if (r
->data_file
) {
11957 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11958 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11959 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11961 ndr
->flags
= _flags_save_string
;
11964 uint32_t _flags_save_string
= ndr
->flags
;
11965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11966 if (r
->config_file
) {
11967 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11968 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11969 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11971 ndr
->flags
= _flags_save_string
;
11974 uint32_t _flags_save_string
= ndr
->flags
;
11975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11976 if (r
->help_file
) {
11977 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11978 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11979 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11981 ndr
->flags
= _flags_save_string
;
11984 uint32_t _flags_save_string_array
= ndr
->flags
;
11985 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11986 if (r
->dependent_files
) {
11987 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11988 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11989 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11991 ndr
->flags
= _flags_save_string_array
;
11994 uint32_t _flags_save_string
= ndr
->flags
;
11995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11996 if (r
->monitor_name
) {
11997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11998 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12001 ndr
->flags
= _flags_save_string
;
12004 uint32_t _flags_save_string
= ndr
->flags
;
12005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12006 if (r
->default_datatype
) {
12007 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12008 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12009 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12011 ndr
->flags
= _flags_save_string
;
12014 uint32_t _flags_save_string_array
= ndr
->flags
;
12015 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12016 if (r
->previous_names
) {
12017 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12018 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12019 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12021 ndr
->flags
= _flags_save_string_array
;
12024 return NDR_ERR_SUCCESS
;
12027 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
12029 uint32_t _ptr_driver_name
;
12030 TALLOC_CTX
*_mem_save_driver_name_0
;
12031 uint32_t _ptr_architecture
;
12032 TALLOC_CTX
*_mem_save_architecture_0
;
12033 uint32_t _ptr_driver_path
;
12034 TALLOC_CTX
*_mem_save_driver_path_0
;
12035 uint32_t _ptr_data_file
;
12036 TALLOC_CTX
*_mem_save_data_file_0
;
12037 uint32_t _ptr_config_file
;
12038 TALLOC_CTX
*_mem_save_config_file_0
;
12039 uint32_t _ptr_help_file
;
12040 TALLOC_CTX
*_mem_save_help_file_0
;
12041 uint32_t _ptr_dependent_files
;
12042 TALLOC_CTX
*_mem_save_dependent_files_0
;
12043 uint32_t _ptr_monitor_name
;
12044 TALLOC_CTX
*_mem_save_monitor_name_0
;
12045 uint32_t _ptr_default_datatype
;
12046 TALLOC_CTX
*_mem_save_default_datatype_0
;
12047 uint32_t _ptr_previous_names
;
12048 TALLOC_CTX
*_mem_save_previous_names_0
;
12049 if (ndr_flags
& NDR_SCALARS
) {
12050 NDR_CHECK(ndr_pull_align(ndr
, 5));
12051 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12053 uint32_t _flags_save_string
= ndr
->flags
;
12054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12056 if (_ptr_driver_name
) {
12057 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12058 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12060 r
->driver_name
= NULL
;
12062 ndr
->flags
= _flags_save_string
;
12065 uint32_t _flags_save_string
= ndr
->flags
;
12066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12068 if (_ptr_architecture
) {
12069 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12070 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12072 r
->architecture
= NULL
;
12074 ndr
->flags
= _flags_save_string
;
12077 uint32_t _flags_save_string
= ndr
->flags
;
12078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12079 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12080 if (_ptr_driver_path
) {
12081 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12082 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12084 r
->driver_path
= NULL
;
12086 ndr
->flags
= _flags_save_string
;
12089 uint32_t _flags_save_string
= ndr
->flags
;
12090 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12092 if (_ptr_data_file
) {
12093 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12094 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12096 r
->data_file
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12104 if (_ptr_config_file
) {
12105 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12106 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12108 r
->config_file
= NULL
;
12110 ndr
->flags
= _flags_save_string
;
12113 uint32_t _flags_save_string
= ndr
->flags
;
12114 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12115 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12116 if (_ptr_help_file
) {
12117 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12118 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12120 r
->help_file
= NULL
;
12122 ndr
->flags
= _flags_save_string
;
12125 uint32_t _flags_save_string_array
= ndr
->flags
;
12126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12128 if (_ptr_dependent_files
) {
12129 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12130 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12132 r
->dependent_files
= NULL
;
12134 ndr
->flags
= _flags_save_string_array
;
12137 uint32_t _flags_save_string
= ndr
->flags
;
12138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12139 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12140 if (_ptr_monitor_name
) {
12141 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12142 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12144 r
->monitor_name
= NULL
;
12146 ndr
->flags
= _flags_save_string
;
12149 uint32_t _flags_save_string
= ndr
->flags
;
12150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12152 if (_ptr_default_datatype
) {
12153 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12154 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12156 r
->default_datatype
= NULL
;
12158 ndr
->flags
= _flags_save_string
;
12161 uint32_t _flags_save_string_array
= ndr
->flags
;
12162 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12164 if (_ptr_previous_names
) {
12165 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12166 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12168 r
->previous_names
= NULL
;
12170 ndr
->flags
= _flags_save_string_array
;
12172 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12174 if (ndr_flags
& NDR_BUFFERS
) {
12176 uint32_t _flags_save_string
= ndr
->flags
;
12177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12178 if (r
->driver_name
) {
12179 uint32_t _relative_save_offset
;
12180 _relative_save_offset
= ndr
->offset
;
12181 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12182 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12183 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12184 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12186 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12187 ndr
->relative_highest_offset
= ndr
->offset
;
12189 ndr
->offset
= _relative_save_offset
;
12191 ndr
->flags
= _flags_save_string
;
12194 uint32_t _flags_save_string
= ndr
->flags
;
12195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12196 if (r
->architecture
) {
12197 uint32_t _relative_save_offset
;
12198 _relative_save_offset
= ndr
->offset
;
12199 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12200 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12201 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12202 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12204 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12205 ndr
->relative_highest_offset
= ndr
->offset
;
12207 ndr
->offset
= _relative_save_offset
;
12209 ndr
->flags
= _flags_save_string
;
12212 uint32_t _flags_save_string
= ndr
->flags
;
12213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12214 if (r
->driver_path
) {
12215 uint32_t _relative_save_offset
;
12216 _relative_save_offset
= ndr
->offset
;
12217 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12218 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12219 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12220 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12222 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12223 ndr
->relative_highest_offset
= ndr
->offset
;
12225 ndr
->offset
= _relative_save_offset
;
12227 ndr
->flags
= _flags_save_string
;
12230 uint32_t _flags_save_string
= ndr
->flags
;
12231 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12232 if (r
->data_file
) {
12233 uint32_t _relative_save_offset
;
12234 _relative_save_offset
= ndr
->offset
;
12235 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12236 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12237 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12238 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12240 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12241 ndr
->relative_highest_offset
= ndr
->offset
;
12243 ndr
->offset
= _relative_save_offset
;
12245 ndr
->flags
= _flags_save_string
;
12248 uint32_t _flags_save_string
= ndr
->flags
;
12249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12250 if (r
->config_file
) {
12251 uint32_t _relative_save_offset
;
12252 _relative_save_offset
= ndr
->offset
;
12253 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12254 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12255 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12256 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12257 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12258 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12259 ndr
->relative_highest_offset
= ndr
->offset
;
12261 ndr
->offset
= _relative_save_offset
;
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 if (r
->help_file
) {
12269 uint32_t _relative_save_offset
;
12270 _relative_save_offset
= ndr
->offset
;
12271 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12272 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12273 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12274 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12276 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12277 ndr
->relative_highest_offset
= ndr
->offset
;
12279 ndr
->offset
= _relative_save_offset
;
12281 ndr
->flags
= _flags_save_string
;
12284 uint32_t _flags_save_string_array
= ndr
->flags
;
12285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12286 if (r
->dependent_files
) {
12287 uint32_t _relative_save_offset
;
12288 _relative_save_offset
= ndr
->offset
;
12289 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12290 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12291 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12292 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12294 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12295 ndr
->relative_highest_offset
= ndr
->offset
;
12297 ndr
->offset
= _relative_save_offset
;
12299 ndr
->flags
= _flags_save_string_array
;
12302 uint32_t _flags_save_string
= ndr
->flags
;
12303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12304 if (r
->monitor_name
) {
12305 uint32_t _relative_save_offset
;
12306 _relative_save_offset
= ndr
->offset
;
12307 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12308 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12309 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12310 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12312 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12313 ndr
->relative_highest_offset
= ndr
->offset
;
12315 ndr
->offset
= _relative_save_offset
;
12317 ndr
->flags
= _flags_save_string
;
12320 uint32_t _flags_save_string
= ndr
->flags
;
12321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12322 if (r
->default_datatype
) {
12323 uint32_t _relative_save_offset
;
12324 _relative_save_offset
= ndr
->offset
;
12325 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12326 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12327 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12328 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12330 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12331 ndr
->relative_highest_offset
= ndr
->offset
;
12333 ndr
->offset
= _relative_save_offset
;
12335 ndr
->flags
= _flags_save_string
;
12338 uint32_t _flags_save_string_array
= ndr
->flags
;
12339 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12340 if (r
->previous_names
) {
12341 uint32_t _relative_save_offset
;
12342 _relative_save_offset
= ndr
->offset
;
12343 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12344 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12345 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12346 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12348 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12349 ndr
->relative_highest_offset
= ndr
->offset
;
12351 ndr
->offset
= _relative_save_offset
;
12353 ndr
->flags
= _flags_save_string_array
;
12356 return NDR_ERR_SUCCESS
;
12359 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
12361 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
12363 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12364 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12366 if (r
->driver_name
) {
12367 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12370 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12372 if (r
->architecture
) {
12373 ndr_print_string(ndr
, "architecture", r
->architecture
);
12376 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12378 if (r
->driver_path
) {
12379 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12382 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12384 if (r
->data_file
) {
12385 ndr_print_string(ndr
, "data_file", r
->data_file
);
12388 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12390 if (r
->config_file
) {
12391 ndr_print_string(ndr
, "config_file", r
->config_file
);
12394 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12396 if (r
->help_file
) {
12397 ndr_print_string(ndr
, "help_file", r
->help_file
);
12400 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12402 if (r
->dependent_files
) {
12403 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12406 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12408 if (r
->monitor_name
) {
12409 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12412 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12414 if (r
->default_datatype
) {
12415 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12418 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12420 if (r
->previous_names
) {
12421 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12427 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12429 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
12432 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
12434 if (ndr_flags
& NDR_SCALARS
) {
12435 NDR_CHECK(ndr_push_align(ndr
, 5));
12436 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12438 uint32_t _flags_save_string
= ndr
->flags
;
12439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12440 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12441 ndr
->flags
= _flags_save_string
;
12444 uint32_t _flags_save_string
= ndr
->flags
;
12445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12446 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12447 ndr
->flags
= _flags_save_string
;
12450 uint32_t _flags_save_string
= ndr
->flags
;
12451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12452 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12453 ndr
->flags
= _flags_save_string
;
12456 uint32_t _flags_save_string
= ndr
->flags
;
12457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12458 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12459 ndr
->flags
= _flags_save_string
;
12462 uint32_t _flags_save_string
= ndr
->flags
;
12463 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12464 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12465 ndr
->flags
= _flags_save_string
;
12467 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
12468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
12469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
12470 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
12472 if (ndr_flags
& NDR_BUFFERS
) {
12474 uint32_t _flags_save_string
= ndr
->flags
;
12475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12476 if (r
->driver_name
) {
12477 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12478 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12479 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12481 ndr
->flags
= _flags_save_string
;
12484 uint32_t _flags_save_string
= ndr
->flags
;
12485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12486 if (r
->architecture
) {
12487 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12488 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12489 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12491 ndr
->flags
= _flags_save_string
;
12494 uint32_t _flags_save_string
= ndr
->flags
;
12495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12496 if (r
->driver_path
) {
12497 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12498 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12499 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12501 ndr
->flags
= _flags_save_string
;
12504 uint32_t _flags_save_string
= ndr
->flags
;
12505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12506 if (r
->data_file
) {
12507 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12508 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12509 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12511 ndr
->flags
= _flags_save_string
;
12514 uint32_t _flags_save_string
= ndr
->flags
;
12515 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12516 if (r
->config_file
) {
12517 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12518 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12519 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12521 ndr
->flags
= _flags_save_string
;
12524 return NDR_ERR_SUCCESS
;
12527 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
12529 uint32_t _ptr_driver_name
;
12530 TALLOC_CTX
*_mem_save_driver_name_0
;
12531 uint32_t _ptr_architecture
;
12532 TALLOC_CTX
*_mem_save_architecture_0
;
12533 uint32_t _ptr_driver_path
;
12534 TALLOC_CTX
*_mem_save_driver_path_0
;
12535 uint32_t _ptr_data_file
;
12536 TALLOC_CTX
*_mem_save_data_file_0
;
12537 uint32_t _ptr_config_file
;
12538 TALLOC_CTX
*_mem_save_config_file_0
;
12539 if (ndr_flags
& NDR_SCALARS
) {
12540 NDR_CHECK(ndr_pull_align(ndr
, 5));
12541 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12543 uint32_t _flags_save_string
= ndr
->flags
;
12544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12546 if (_ptr_driver_name
) {
12547 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12548 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12550 r
->driver_name
= NULL
;
12552 ndr
->flags
= _flags_save_string
;
12555 uint32_t _flags_save_string
= ndr
->flags
;
12556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12558 if (_ptr_architecture
) {
12559 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12560 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12562 r
->architecture
= NULL
;
12564 ndr
->flags
= _flags_save_string
;
12567 uint32_t _flags_save_string
= ndr
->flags
;
12568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12570 if (_ptr_driver_path
) {
12571 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12572 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12574 r
->driver_path
= NULL
;
12576 ndr
->flags
= _flags_save_string
;
12579 uint32_t _flags_save_string
= ndr
->flags
;
12580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12582 if (_ptr_data_file
) {
12583 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12584 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12586 r
->data_file
= NULL
;
12588 ndr
->flags
= _flags_save_string
;
12591 uint32_t _flags_save_string
= ndr
->flags
;
12592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12594 if (_ptr_config_file
) {
12595 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12596 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12598 r
->config_file
= NULL
;
12600 ndr
->flags
= _flags_save_string
;
12602 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
12603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
12604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
12605 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12607 if (ndr_flags
& NDR_BUFFERS
) {
12609 uint32_t _flags_save_string
= ndr
->flags
;
12610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12611 if (r
->driver_name
) {
12612 uint32_t _relative_save_offset
;
12613 _relative_save_offset
= ndr
->offset
;
12614 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12615 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12616 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12617 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12619 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12620 ndr
->relative_highest_offset
= ndr
->offset
;
12622 ndr
->offset
= _relative_save_offset
;
12624 ndr
->flags
= _flags_save_string
;
12627 uint32_t _flags_save_string
= ndr
->flags
;
12628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12629 if (r
->architecture
) {
12630 uint32_t _relative_save_offset
;
12631 _relative_save_offset
= ndr
->offset
;
12632 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12633 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12634 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12635 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12637 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12638 ndr
->relative_highest_offset
= ndr
->offset
;
12640 ndr
->offset
= _relative_save_offset
;
12642 ndr
->flags
= _flags_save_string
;
12645 uint32_t _flags_save_string
= ndr
->flags
;
12646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12647 if (r
->driver_path
) {
12648 uint32_t _relative_save_offset
;
12649 _relative_save_offset
= ndr
->offset
;
12650 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12651 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12652 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12653 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12655 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12656 ndr
->relative_highest_offset
= ndr
->offset
;
12658 ndr
->offset
= _relative_save_offset
;
12660 ndr
->flags
= _flags_save_string
;
12663 uint32_t _flags_save_string
= ndr
->flags
;
12664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12665 if (r
->data_file
) {
12666 uint32_t _relative_save_offset
;
12667 _relative_save_offset
= ndr
->offset
;
12668 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12669 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12670 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12671 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12673 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12674 ndr
->relative_highest_offset
= ndr
->offset
;
12676 ndr
->offset
= _relative_save_offset
;
12678 ndr
->flags
= _flags_save_string
;
12681 uint32_t _flags_save_string
= ndr
->flags
;
12682 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12683 if (r
->config_file
) {
12684 uint32_t _relative_save_offset
;
12685 _relative_save_offset
= ndr
->offset
;
12686 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12687 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12688 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12689 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12691 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12692 ndr
->relative_highest_offset
= ndr
->offset
;
12694 ndr
->offset
= _relative_save_offset
;
12696 ndr
->flags
= _flags_save_string
;
12699 return NDR_ERR_SUCCESS
;
12702 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12704 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12706 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12707 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12709 if (r
->driver_name
) {
12710 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12713 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12715 if (r
->architecture
) {
12716 ndr_print_string(ndr
, "architecture", r
->architecture
);
12719 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12721 if (r
->driver_path
) {
12722 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12725 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12727 if (r
->data_file
) {
12728 ndr_print_string(ndr
, "data_file", r
->data_file
);
12731 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12733 if (r
->config_file
) {
12734 ndr_print_string(ndr
, "config_file", r
->config_file
);
12737 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12738 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12739 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12743 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12745 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12748 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12750 if (ndr_flags
& NDR_SCALARS
) {
12751 NDR_CHECK(ndr_push_align(ndr
, 8));
12752 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12754 uint32_t _flags_save_string
= ndr
->flags
;
12755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12756 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12757 ndr
->flags
= _flags_save_string
;
12760 uint32_t _flags_save_string
= ndr
->flags
;
12761 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12762 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12763 ndr
->flags
= _flags_save_string
;
12766 uint32_t _flags_save_string
= ndr
->flags
;
12767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12768 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12769 ndr
->flags
= _flags_save_string
;
12772 uint32_t _flags_save_string
= ndr
->flags
;
12773 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12774 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12775 ndr
->flags
= _flags_save_string
;
12778 uint32_t _flags_save_string
= ndr
->flags
;
12779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12780 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12781 ndr
->flags
= _flags_save_string
;
12784 uint32_t _flags_save_string
= ndr
->flags
;
12785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12786 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12787 ndr
->flags
= _flags_save_string
;
12790 uint32_t _flags_save_string_array
= ndr
->flags
;
12791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12792 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12793 ndr
->flags
= _flags_save_string_array
;
12796 uint32_t _flags_save_string
= ndr
->flags
;
12797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12798 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12799 ndr
->flags
= _flags_save_string
;
12802 uint32_t _flags_save_string
= ndr
->flags
;
12803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12804 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12805 ndr
->flags
= _flags_save_string
;
12808 uint32_t _flags_save_string_array
= ndr
->flags
;
12809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12810 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12811 ndr
->flags
= _flags_save_string_array
;
12813 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12814 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12816 uint32_t _flags_save_string
= ndr
->flags
;
12817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12818 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12819 ndr
->flags
= _flags_save_string
;
12822 uint32_t _flags_save_string
= ndr
->flags
;
12823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12824 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12825 ndr
->flags
= _flags_save_string
;
12828 uint32_t _flags_save_string
= ndr
->flags
;
12829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12830 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12831 ndr
->flags
= _flags_save_string
;
12834 uint32_t _flags_save_string
= ndr
->flags
;
12835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12836 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12837 ndr
->flags
= _flags_save_string
;
12839 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12841 if (ndr_flags
& NDR_BUFFERS
) {
12843 uint32_t _flags_save_string
= ndr
->flags
;
12844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12845 if (r
->driver_name
) {
12846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12847 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12850 ndr
->flags
= _flags_save_string
;
12853 uint32_t _flags_save_string
= ndr
->flags
;
12854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12855 if (r
->architecture
) {
12856 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12857 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12860 ndr
->flags
= _flags_save_string
;
12863 uint32_t _flags_save_string
= ndr
->flags
;
12864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12865 if (r
->driver_path
) {
12866 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12867 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12868 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
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 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12877 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12878 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12880 ndr
->flags
= _flags_save_string
;
12883 uint32_t _flags_save_string
= ndr
->flags
;
12884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12885 if (r
->config_file
) {
12886 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12887 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12888 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12890 ndr
->flags
= _flags_save_string
;
12893 uint32_t _flags_save_string
= ndr
->flags
;
12894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12895 if (r
->help_file
) {
12896 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
12897 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12898 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
12900 ndr
->flags
= _flags_save_string
;
12903 uint32_t _flags_save_string_array
= ndr
->flags
;
12904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12905 if (r
->dependent_files
) {
12906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
12907 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
12910 ndr
->flags
= _flags_save_string_array
;
12913 uint32_t _flags_save_string
= ndr
->flags
;
12914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12915 if (r
->monitor_name
) {
12916 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
12917 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12918 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12920 ndr
->flags
= _flags_save_string
;
12923 uint32_t _flags_save_string
= ndr
->flags
;
12924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12925 if (r
->default_datatype
) {
12926 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12927 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12928 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12930 ndr
->flags
= _flags_save_string
;
12933 uint32_t _flags_save_string_array
= ndr
->flags
;
12934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12935 if (r
->previous_names
) {
12936 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12937 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12938 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12940 ndr
->flags
= _flags_save_string_array
;
12943 uint32_t _flags_save_string
= ndr
->flags
;
12944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12945 if (r
->manufacturer_name
) {
12946 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
12947 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12948 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
12950 ndr
->flags
= _flags_save_string
;
12953 uint32_t _flags_save_string
= ndr
->flags
;
12954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12955 if (r
->manufacturer_url
) {
12956 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
12957 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12958 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
12960 ndr
->flags
= _flags_save_string
;
12963 uint32_t _flags_save_string
= ndr
->flags
;
12964 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12965 if (r
->hardware_id
) {
12966 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
12967 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12968 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
12970 ndr
->flags
= _flags_save_string
;
12973 uint32_t _flags_save_string
= ndr
->flags
;
12974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12976 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
12977 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12978 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
12980 ndr
->flags
= _flags_save_string
;
12983 return NDR_ERR_SUCCESS
;
12986 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12988 uint32_t _ptr_driver_name
;
12989 TALLOC_CTX
*_mem_save_driver_name_0
;
12990 uint32_t _ptr_architecture
;
12991 TALLOC_CTX
*_mem_save_architecture_0
;
12992 uint32_t _ptr_driver_path
;
12993 TALLOC_CTX
*_mem_save_driver_path_0
;
12994 uint32_t _ptr_data_file
;
12995 TALLOC_CTX
*_mem_save_data_file_0
;
12996 uint32_t _ptr_config_file
;
12997 TALLOC_CTX
*_mem_save_config_file_0
;
12998 uint32_t _ptr_help_file
;
12999 TALLOC_CTX
*_mem_save_help_file_0
;
13000 uint32_t _ptr_dependent_files
;
13001 TALLOC_CTX
*_mem_save_dependent_files_0
;
13002 uint32_t _ptr_monitor_name
;
13003 TALLOC_CTX
*_mem_save_monitor_name_0
;
13004 uint32_t _ptr_default_datatype
;
13005 TALLOC_CTX
*_mem_save_default_datatype_0
;
13006 uint32_t _ptr_previous_names
;
13007 TALLOC_CTX
*_mem_save_previous_names_0
;
13008 uint32_t _ptr_manufacturer_name
;
13009 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13010 uint32_t _ptr_manufacturer_url
;
13011 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13012 uint32_t _ptr_hardware_id
;
13013 TALLOC_CTX
*_mem_save_hardware_id_0
;
13014 uint32_t _ptr_provider
;
13015 TALLOC_CTX
*_mem_save_provider_0
;
13016 if (ndr_flags
& NDR_SCALARS
) {
13017 NDR_CHECK(ndr_pull_align(ndr
, 8));
13018 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13020 uint32_t _flags_save_string
= ndr
->flags
;
13021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13023 if (_ptr_driver_name
) {
13024 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13025 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13027 r
->driver_name
= NULL
;
13029 ndr
->flags
= _flags_save_string
;
13032 uint32_t _flags_save_string
= ndr
->flags
;
13033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13035 if (_ptr_architecture
) {
13036 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13037 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13039 r
->architecture
= NULL
;
13041 ndr
->flags
= _flags_save_string
;
13044 uint32_t _flags_save_string
= ndr
->flags
;
13045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13046 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13047 if (_ptr_driver_path
) {
13048 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13049 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13051 r
->driver_path
= NULL
;
13053 ndr
->flags
= _flags_save_string
;
13056 uint32_t _flags_save_string
= ndr
->flags
;
13057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13059 if (_ptr_data_file
) {
13060 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13061 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13063 r
->data_file
= NULL
;
13065 ndr
->flags
= _flags_save_string
;
13068 uint32_t _flags_save_string
= ndr
->flags
;
13069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13070 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13071 if (_ptr_config_file
) {
13072 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13073 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13075 r
->config_file
= NULL
;
13077 ndr
->flags
= _flags_save_string
;
13080 uint32_t _flags_save_string
= ndr
->flags
;
13081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13083 if (_ptr_help_file
) {
13084 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13085 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13087 r
->help_file
= NULL
;
13089 ndr
->flags
= _flags_save_string
;
13092 uint32_t _flags_save_string_array
= ndr
->flags
;
13093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13095 if (_ptr_dependent_files
) {
13096 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13097 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13099 r
->dependent_files
= NULL
;
13101 ndr
->flags
= _flags_save_string_array
;
13104 uint32_t _flags_save_string
= ndr
->flags
;
13105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13107 if (_ptr_monitor_name
) {
13108 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13109 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13111 r
->monitor_name
= NULL
;
13113 ndr
->flags
= _flags_save_string
;
13116 uint32_t _flags_save_string
= ndr
->flags
;
13117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13119 if (_ptr_default_datatype
) {
13120 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13121 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13123 r
->default_datatype
= NULL
;
13125 ndr
->flags
= _flags_save_string
;
13128 uint32_t _flags_save_string_array
= ndr
->flags
;
13129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13131 if (_ptr_previous_names
) {
13132 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13133 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13135 r
->previous_names
= NULL
;
13137 ndr
->flags
= _flags_save_string_array
;
13139 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13140 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13142 uint32_t _flags_save_string
= ndr
->flags
;
13143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13144 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13145 if (_ptr_manufacturer_name
) {
13146 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13147 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13149 r
->manufacturer_name
= NULL
;
13151 ndr
->flags
= _flags_save_string
;
13154 uint32_t _flags_save_string
= ndr
->flags
;
13155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13156 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13157 if (_ptr_manufacturer_url
) {
13158 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13159 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13161 r
->manufacturer_url
= NULL
;
13163 ndr
->flags
= _flags_save_string
;
13166 uint32_t _flags_save_string
= ndr
->flags
;
13167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13168 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13169 if (_ptr_hardware_id
) {
13170 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13171 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13173 r
->hardware_id
= NULL
;
13175 ndr
->flags
= _flags_save_string
;
13178 uint32_t _flags_save_string
= ndr
->flags
;
13179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13180 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13181 if (_ptr_provider
) {
13182 NDR_PULL_ALLOC(ndr
, r
->provider
);
13183 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13185 r
->provider
= NULL
;
13187 ndr
->flags
= _flags_save_string
;
13189 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13191 if (ndr_flags
& NDR_BUFFERS
) {
13193 uint32_t _flags_save_string
= ndr
->flags
;
13194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13195 if (r
->driver_name
) {
13196 uint32_t _relative_save_offset
;
13197 _relative_save_offset
= ndr
->offset
;
13198 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13199 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13200 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13201 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13203 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13204 ndr
->relative_highest_offset
= ndr
->offset
;
13206 ndr
->offset
= _relative_save_offset
;
13208 ndr
->flags
= _flags_save_string
;
13211 uint32_t _flags_save_string
= ndr
->flags
;
13212 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13213 if (r
->architecture
) {
13214 uint32_t _relative_save_offset
;
13215 _relative_save_offset
= ndr
->offset
;
13216 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13217 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13218 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13219 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13221 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13222 ndr
->relative_highest_offset
= ndr
->offset
;
13224 ndr
->offset
= _relative_save_offset
;
13226 ndr
->flags
= _flags_save_string
;
13229 uint32_t _flags_save_string
= ndr
->flags
;
13230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13231 if (r
->driver_path
) {
13232 uint32_t _relative_save_offset
;
13233 _relative_save_offset
= ndr
->offset
;
13234 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13235 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13236 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13237 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13239 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13240 ndr
->relative_highest_offset
= ndr
->offset
;
13242 ndr
->offset
= _relative_save_offset
;
13244 ndr
->flags
= _flags_save_string
;
13247 uint32_t _flags_save_string
= ndr
->flags
;
13248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13249 if (r
->data_file
) {
13250 uint32_t _relative_save_offset
;
13251 _relative_save_offset
= ndr
->offset
;
13252 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13253 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13254 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13255 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13257 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13258 ndr
->relative_highest_offset
= ndr
->offset
;
13260 ndr
->offset
= _relative_save_offset
;
13262 ndr
->flags
= _flags_save_string
;
13265 uint32_t _flags_save_string
= ndr
->flags
;
13266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13267 if (r
->config_file
) {
13268 uint32_t _relative_save_offset
;
13269 _relative_save_offset
= ndr
->offset
;
13270 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13271 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13272 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13273 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13275 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13276 ndr
->relative_highest_offset
= ndr
->offset
;
13278 ndr
->offset
= _relative_save_offset
;
13280 ndr
->flags
= _flags_save_string
;
13283 uint32_t _flags_save_string
= ndr
->flags
;
13284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13285 if (r
->help_file
) {
13286 uint32_t _relative_save_offset
;
13287 _relative_save_offset
= ndr
->offset
;
13288 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13289 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13290 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13291 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13293 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13294 ndr
->relative_highest_offset
= ndr
->offset
;
13296 ndr
->offset
= _relative_save_offset
;
13298 ndr
->flags
= _flags_save_string
;
13301 uint32_t _flags_save_string_array
= ndr
->flags
;
13302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13303 if (r
->dependent_files
) {
13304 uint32_t _relative_save_offset
;
13305 _relative_save_offset
= ndr
->offset
;
13306 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13307 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13308 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13309 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13311 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13312 ndr
->relative_highest_offset
= ndr
->offset
;
13314 ndr
->offset
= _relative_save_offset
;
13316 ndr
->flags
= _flags_save_string_array
;
13319 uint32_t _flags_save_string
= ndr
->flags
;
13320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13321 if (r
->monitor_name
) {
13322 uint32_t _relative_save_offset
;
13323 _relative_save_offset
= ndr
->offset
;
13324 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13325 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13326 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13327 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13329 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13330 ndr
->relative_highest_offset
= ndr
->offset
;
13332 ndr
->offset
= _relative_save_offset
;
13334 ndr
->flags
= _flags_save_string
;
13337 uint32_t _flags_save_string
= ndr
->flags
;
13338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13339 if (r
->default_datatype
) {
13340 uint32_t _relative_save_offset
;
13341 _relative_save_offset
= ndr
->offset
;
13342 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13343 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13344 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13347 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13348 ndr
->relative_highest_offset
= ndr
->offset
;
13350 ndr
->offset
= _relative_save_offset
;
13352 ndr
->flags
= _flags_save_string
;
13355 uint32_t _flags_save_string_array
= ndr
->flags
;
13356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13357 if (r
->previous_names
) {
13358 uint32_t _relative_save_offset
;
13359 _relative_save_offset
= ndr
->offset
;
13360 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13361 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13362 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13363 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13365 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13366 ndr
->relative_highest_offset
= ndr
->offset
;
13368 ndr
->offset
= _relative_save_offset
;
13370 ndr
->flags
= _flags_save_string_array
;
13373 uint32_t _flags_save_string
= ndr
->flags
;
13374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13375 if (r
->manufacturer_name
) {
13376 uint32_t _relative_save_offset
;
13377 _relative_save_offset
= ndr
->offset
;
13378 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13379 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13380 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13381 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13383 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13384 ndr
->relative_highest_offset
= ndr
->offset
;
13386 ndr
->offset
= _relative_save_offset
;
13388 ndr
->flags
= _flags_save_string
;
13391 uint32_t _flags_save_string
= ndr
->flags
;
13392 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13393 if (r
->manufacturer_url
) {
13394 uint32_t _relative_save_offset
;
13395 _relative_save_offset
= ndr
->offset
;
13396 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13397 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13398 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13399 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13401 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13402 ndr
->relative_highest_offset
= ndr
->offset
;
13404 ndr
->offset
= _relative_save_offset
;
13406 ndr
->flags
= _flags_save_string
;
13409 uint32_t _flags_save_string
= ndr
->flags
;
13410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13411 if (r
->hardware_id
) {
13412 uint32_t _relative_save_offset
;
13413 _relative_save_offset
= ndr
->offset
;
13414 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13415 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13416 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13417 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13419 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13420 ndr
->relative_highest_offset
= ndr
->offset
;
13422 ndr
->offset
= _relative_save_offset
;
13424 ndr
->flags
= _flags_save_string
;
13427 uint32_t _flags_save_string
= ndr
->flags
;
13428 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13430 uint32_t _relative_save_offset
;
13431 _relative_save_offset
= ndr
->offset
;
13432 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13433 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13434 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13435 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13436 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13437 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13438 ndr
->relative_highest_offset
= ndr
->offset
;
13440 ndr
->offset
= _relative_save_offset
;
13442 ndr
->flags
= _flags_save_string
;
13445 return NDR_ERR_SUCCESS
;
13448 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
13450 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
13452 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13453 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13455 if (r
->driver_name
) {
13456 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13459 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13461 if (r
->architecture
) {
13462 ndr_print_string(ndr
, "architecture", r
->architecture
);
13465 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13467 if (r
->driver_path
) {
13468 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13471 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13473 if (r
->data_file
) {
13474 ndr_print_string(ndr
, "data_file", r
->data_file
);
13477 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13479 if (r
->config_file
) {
13480 ndr_print_string(ndr
, "config_file", r
->config_file
);
13483 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13485 if (r
->help_file
) {
13486 ndr_print_string(ndr
, "help_file", r
->help_file
);
13489 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13491 if (r
->dependent_files
) {
13492 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13495 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13497 if (r
->monitor_name
) {
13498 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13501 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13503 if (r
->default_datatype
) {
13504 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13507 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13509 if (r
->previous_names
) {
13510 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13513 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13514 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13515 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13517 if (r
->manufacturer_name
) {
13518 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13521 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13523 if (r
->manufacturer_url
) {
13524 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13527 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13529 if (r
->hardware_id
) {
13530 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13533 ndr_print_ptr(ndr
, "provider", r
->provider
);
13536 ndr_print_string(ndr
, "provider", r
->provider
);
13542 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13544 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
13547 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo7
*r
)
13549 if (ndr_flags
& NDR_SCALARS
) {
13550 NDR_CHECK(ndr_push_align(ndr
, 5));
13551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
13552 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13554 uint32_t _flags_save_string
= ndr
->flags
;
13555 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13556 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13557 ndr
->flags
= _flags_save_string
;
13560 uint32_t _flags_save_string
= ndr
->flags
;
13561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13562 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_name
));
13563 ndr
->flags
= _flags_save_string
;
13566 uint32_t _flags_save_string
= ndr
->flags
;
13567 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13568 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->install_source_root
));
13569 ndr
->flags
= _flags_save_string
;
13571 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
13573 if (ndr_flags
& NDR_BUFFERS
) {
13575 uint32_t _flags_save_string
= ndr
->flags
;
13576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13577 if (r
->driver_name
) {
13578 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13579 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13580 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13582 ndr
->flags
= _flags_save_string
;
13585 uint32_t _flags_save_string
= ndr
->flags
;
13586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13588 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_name
));
13589 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_name
));
13590 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_name
));
13592 ndr
->flags
= _flags_save_string
;
13595 uint32_t _flags_save_string
= ndr
->flags
;
13596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13597 if (r
->install_source_root
) {
13598 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->install_source_root
));
13599 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->install_source_root
));
13600 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->install_source_root
));
13602 ndr
->flags
= _flags_save_string
;
13605 return NDR_ERR_SUCCESS
;
13608 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo7
*r
)
13610 uint32_t _ptr_driver_name
;
13611 TALLOC_CTX
*_mem_save_driver_name_0
;
13612 uint32_t _ptr_inf_name
;
13613 TALLOC_CTX
*_mem_save_inf_name_0
;
13614 uint32_t _ptr_install_source_root
;
13615 TALLOC_CTX
*_mem_save_install_source_root_0
;
13616 if (ndr_flags
& NDR_SCALARS
) {
13617 NDR_CHECK(ndr_pull_align(ndr
, 5));
13618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
13619 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13621 uint32_t _flags_save_string
= ndr
->flags
;
13622 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13624 if (_ptr_driver_name
) {
13625 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13626 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13628 r
->driver_name
= NULL
;
13630 ndr
->flags
= _flags_save_string
;
13633 uint32_t _flags_save_string
= ndr
->flags
;
13634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_name
));
13636 if (_ptr_inf_name
) {
13637 NDR_PULL_ALLOC(ndr
, r
->inf_name
);
13638 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_name
, _ptr_inf_name
));
13640 r
->inf_name
= NULL
;
13642 ndr
->flags
= _flags_save_string
;
13645 uint32_t _flags_save_string
= ndr
->flags
;
13646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_install_source_root
));
13648 if (_ptr_install_source_root
) {
13649 NDR_PULL_ALLOC(ndr
, r
->install_source_root
);
13650 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->install_source_root
, _ptr_install_source_root
));
13652 r
->install_source_root
= NULL
;
13654 ndr
->flags
= _flags_save_string
;
13656 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
13658 if (ndr_flags
& NDR_BUFFERS
) {
13660 uint32_t _flags_save_string
= ndr
->flags
;
13661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13662 if (r
->driver_name
) {
13663 uint32_t _relative_save_offset
;
13664 _relative_save_offset
= ndr
->offset
;
13665 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13666 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13667 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13668 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13670 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13671 ndr
->relative_highest_offset
= ndr
->offset
;
13673 ndr
->offset
= _relative_save_offset
;
13675 ndr
->flags
= _flags_save_string
;
13678 uint32_t _flags_save_string
= ndr
->flags
;
13679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13681 uint32_t _relative_save_offset
;
13682 _relative_save_offset
= ndr
->offset
;
13683 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_name
));
13684 _mem_save_inf_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13685 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_name
, 0);
13686 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_name
));
13687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_name_0
, 0);
13688 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13689 ndr
->relative_highest_offset
= ndr
->offset
;
13691 ndr
->offset
= _relative_save_offset
;
13693 ndr
->flags
= _flags_save_string
;
13696 uint32_t _flags_save_string
= ndr
->flags
;
13697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13698 if (r
->install_source_root
) {
13699 uint32_t _relative_save_offset
;
13700 _relative_save_offset
= ndr
->offset
;
13701 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->install_source_root
));
13702 _mem_save_install_source_root_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13703 NDR_PULL_SET_MEM_CTX(ndr
, r
->install_source_root
, 0);
13704 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->install_source_root
));
13705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_install_source_root_0
, 0);
13706 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13707 ndr
->relative_highest_offset
= ndr
->offset
;
13709 ndr
->offset
= _relative_save_offset
;
13711 ndr
->flags
= _flags_save_string
;
13714 return NDR_ERR_SUCCESS
;
13717 _PUBLIC_
void ndr_print_spoolss_DriverInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo7
*r
)
13719 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo7");
13721 ndr_print_uint32(ndr
, "size", r
->size
);
13722 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13723 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13725 if (r
->driver_name
) {
13726 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13729 ndr_print_ptr(ndr
, "inf_name", r
->inf_name
);
13732 ndr_print_string(ndr
, "inf_name", r
->inf_name
);
13735 ndr_print_ptr(ndr
, "install_source_root", r
->install_source_root
);
13737 if (r
->install_source_root
) {
13738 ndr_print_string(ndr
, "install_source_root", r
->install_source_root
);
13744 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13746 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo7
, ic
);
13749 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
13751 if (ndr_flags
& NDR_SCALARS
) {
13752 NDR_CHECK(ndr_push_align(ndr
, 8));
13753 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13755 uint32_t _flags_save_string
= ndr
->flags
;
13756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13757 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13758 ndr
->flags
= _flags_save_string
;
13761 uint32_t _flags_save_string
= ndr
->flags
;
13762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13763 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
13764 ndr
->flags
= _flags_save_string
;
13767 uint32_t _flags_save_string
= ndr
->flags
;
13768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13769 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
13770 ndr
->flags
= _flags_save_string
;
13773 uint32_t _flags_save_string
= ndr
->flags
;
13774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13775 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
13776 ndr
->flags
= _flags_save_string
;
13779 uint32_t _flags_save_string
= ndr
->flags
;
13780 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13781 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
13782 ndr
->flags
= _flags_save_string
;
13785 uint32_t _flags_save_string
= ndr
->flags
;
13786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13787 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
13788 ndr
->flags
= _flags_save_string
;
13791 uint32_t _flags_save_string_array
= ndr
->flags
;
13792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13793 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
13794 ndr
->flags
= _flags_save_string_array
;
13797 uint32_t _flags_save_string
= ndr
->flags
;
13798 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13799 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
13800 ndr
->flags
= _flags_save_string
;
13803 uint32_t _flags_save_string
= ndr
->flags
;
13804 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13805 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
13806 ndr
->flags
= _flags_save_string
;
13809 uint32_t _flags_save_string_array
= ndr
->flags
;
13810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13811 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
13812 ndr
->flags
= _flags_save_string_array
;
13814 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
13815 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
13817 uint32_t _flags_save_string
= ndr
->flags
;
13818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13819 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
13820 ndr
->flags
= _flags_save_string
;
13823 uint32_t _flags_save_string
= ndr
->flags
;
13824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13825 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
13826 ndr
->flags
= _flags_save_string
;
13829 uint32_t _flags_save_string
= ndr
->flags
;
13830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13831 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
13832 ndr
->flags
= _flags_save_string
;
13835 uint32_t _flags_save_string
= ndr
->flags
;
13836 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13837 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
13838 ndr
->flags
= _flags_save_string
;
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
));
13844 ndr
->flags
= _flags_save_string
;
13847 uint32_t _flags_save_string
= ndr
->flags
;
13848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13849 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
13850 ndr
->flags
= _flags_save_string
;
13853 uint32_t _flags_save_string_array
= ndr
->flags
;
13854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13855 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
13856 ndr
->flags
= _flags_save_string_array
;
13859 uint32_t _flags_save_string
= ndr
->flags
;
13860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13861 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
13862 ndr
->flags
= _flags_save_string
;
13864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
13866 uint32_t _flags_save_string_array
= ndr
->flags
;
13867 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13868 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
13869 ndr
->flags
= _flags_save_string_array
;
13871 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
13872 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
13873 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
13875 if (ndr_flags
& NDR_BUFFERS
) {
13877 uint32_t _flags_save_string
= ndr
->flags
;
13878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13879 if (r
->driver_name
) {
13880 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13882 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13884 ndr
->flags
= _flags_save_string
;
13887 uint32_t _flags_save_string
= ndr
->flags
;
13888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13889 if (r
->architecture
) {
13890 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
13891 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
13892 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
13894 ndr
->flags
= _flags_save_string
;
13897 uint32_t _flags_save_string
= ndr
->flags
;
13898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13899 if (r
->driver_path
) {
13900 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
13901 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
13902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
13904 ndr
->flags
= _flags_save_string
;
13907 uint32_t _flags_save_string
= ndr
->flags
;
13908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13909 if (r
->data_file
) {
13910 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
13911 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
13914 ndr
->flags
= _flags_save_string
;
13917 uint32_t _flags_save_string
= ndr
->flags
;
13918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13919 if (r
->config_file
) {
13920 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
13921 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13922 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
13924 ndr
->flags
= _flags_save_string
;
13927 uint32_t _flags_save_string
= ndr
->flags
;
13928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13929 if (r
->help_file
) {
13930 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
13931 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13932 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
13934 ndr
->flags
= _flags_save_string
;
13937 uint32_t _flags_save_string_array
= ndr
->flags
;
13938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13939 if (r
->dependent_files
) {
13940 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
13941 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13942 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
13944 ndr
->flags
= _flags_save_string_array
;
13947 uint32_t _flags_save_string
= ndr
->flags
;
13948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13949 if (r
->monitor_name
) {
13950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
13951 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
13954 ndr
->flags
= _flags_save_string
;
13957 uint32_t _flags_save_string
= ndr
->flags
;
13958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13959 if (r
->default_datatype
) {
13960 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
13961 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13962 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
13964 ndr
->flags
= _flags_save_string
;
13967 uint32_t _flags_save_string_array
= ndr
->flags
;
13968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13969 if (r
->previous_names
) {
13970 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
13971 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13972 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
13974 ndr
->flags
= _flags_save_string_array
;
13977 uint32_t _flags_save_string
= ndr
->flags
;
13978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13979 if (r
->manufacturer_name
) {
13980 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
13981 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13982 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
13984 ndr
->flags
= _flags_save_string
;
13987 uint32_t _flags_save_string
= ndr
->flags
;
13988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13989 if (r
->manufacturer_url
) {
13990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
13991 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
13994 ndr
->flags
= _flags_save_string
;
13997 uint32_t _flags_save_string
= ndr
->flags
;
13998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13999 if (r
->hardware_id
) {
14000 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
14001 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
14002 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
14004 ndr
->flags
= _flags_save_string
;
14007 uint32_t _flags_save_string
= ndr
->flags
;
14008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14010 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
14011 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
14012 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
14014 ndr
->flags
= _flags_save_string
;
14017 uint32_t _flags_save_string
= ndr
->flags
;
14018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14019 if (r
->print_processor
) {
14020 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
14021 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
14022 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
14024 ndr
->flags
= _flags_save_string
;
14027 uint32_t _flags_save_string
= ndr
->flags
;
14028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14029 if (r
->vendor_setup
) {
14030 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->vendor_setup
));
14031 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
14032 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->vendor_setup
));
14034 ndr
->flags
= _flags_save_string
;
14037 uint32_t _flags_save_string_array
= ndr
->flags
;
14038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14039 if (r
->color_profiles
) {
14040 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->color_profiles
));
14041 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
14042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->color_profiles
));
14044 ndr
->flags
= _flags_save_string_array
;
14047 uint32_t _flags_save_string
= ndr
->flags
;
14048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_path
));
14051 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
14052 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_path
));
14054 ndr
->flags
= _flags_save_string
;
14057 uint32_t _flags_save_string_array
= ndr
->flags
;
14058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14059 if (r
->core_driver_dependencies
) {
14060 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->core_driver_dependencies
));
14061 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
14062 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->core_driver_dependencies
));
14064 ndr
->flags
= _flags_save_string_array
;
14067 return NDR_ERR_SUCCESS
;
14070 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
14072 uint32_t _ptr_driver_name
;
14073 TALLOC_CTX
*_mem_save_driver_name_0
;
14074 uint32_t _ptr_architecture
;
14075 TALLOC_CTX
*_mem_save_architecture_0
;
14076 uint32_t _ptr_driver_path
;
14077 TALLOC_CTX
*_mem_save_driver_path_0
;
14078 uint32_t _ptr_data_file
;
14079 TALLOC_CTX
*_mem_save_data_file_0
;
14080 uint32_t _ptr_config_file
;
14081 TALLOC_CTX
*_mem_save_config_file_0
;
14082 uint32_t _ptr_help_file
;
14083 TALLOC_CTX
*_mem_save_help_file_0
;
14084 uint32_t _ptr_dependent_files
;
14085 TALLOC_CTX
*_mem_save_dependent_files_0
;
14086 uint32_t _ptr_monitor_name
;
14087 TALLOC_CTX
*_mem_save_monitor_name_0
;
14088 uint32_t _ptr_default_datatype
;
14089 TALLOC_CTX
*_mem_save_default_datatype_0
;
14090 uint32_t _ptr_previous_names
;
14091 TALLOC_CTX
*_mem_save_previous_names_0
;
14092 uint32_t _ptr_manufacturer_name
;
14093 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
14094 uint32_t _ptr_manufacturer_url
;
14095 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
14096 uint32_t _ptr_hardware_id
;
14097 TALLOC_CTX
*_mem_save_hardware_id_0
;
14098 uint32_t _ptr_provider
;
14099 TALLOC_CTX
*_mem_save_provider_0
;
14100 uint32_t _ptr_print_processor
;
14101 TALLOC_CTX
*_mem_save_print_processor_0
;
14102 uint32_t _ptr_vendor_setup
;
14103 TALLOC_CTX
*_mem_save_vendor_setup_0
;
14104 uint32_t _ptr_color_profiles
;
14105 TALLOC_CTX
*_mem_save_color_profiles_0
;
14106 uint32_t _ptr_inf_path
;
14107 TALLOC_CTX
*_mem_save_inf_path_0
;
14108 uint32_t _ptr_core_driver_dependencies
;
14109 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
14110 if (ndr_flags
& NDR_SCALARS
) {
14111 NDR_CHECK(ndr_pull_align(ndr
, 8));
14112 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
14114 uint32_t _flags_save_string
= ndr
->flags
;
14115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
14117 if (_ptr_driver_name
) {
14118 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
14119 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
14121 r
->driver_name
= NULL
;
14123 ndr
->flags
= _flags_save_string
;
14126 uint32_t _flags_save_string
= ndr
->flags
;
14127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
14129 if (_ptr_architecture
) {
14130 NDR_PULL_ALLOC(ndr
, r
->architecture
);
14131 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
14133 r
->architecture
= NULL
;
14135 ndr
->flags
= _flags_save_string
;
14138 uint32_t _flags_save_string
= ndr
->flags
;
14139 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14140 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
14141 if (_ptr_driver_path
) {
14142 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
14143 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
14145 r
->driver_path
= NULL
;
14147 ndr
->flags
= _flags_save_string
;
14150 uint32_t _flags_save_string
= ndr
->flags
;
14151 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14152 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
14153 if (_ptr_data_file
) {
14154 NDR_PULL_ALLOC(ndr
, r
->data_file
);
14155 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
14157 r
->data_file
= NULL
;
14159 ndr
->flags
= _flags_save_string
;
14162 uint32_t _flags_save_string
= ndr
->flags
;
14163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
14165 if (_ptr_config_file
) {
14166 NDR_PULL_ALLOC(ndr
, r
->config_file
);
14167 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
14169 r
->config_file
= NULL
;
14171 ndr
->flags
= _flags_save_string
;
14174 uint32_t _flags_save_string
= ndr
->flags
;
14175 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14176 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
14177 if (_ptr_help_file
) {
14178 NDR_PULL_ALLOC(ndr
, r
->help_file
);
14179 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
14181 r
->help_file
= NULL
;
14183 ndr
->flags
= _flags_save_string
;
14186 uint32_t _flags_save_string_array
= ndr
->flags
;
14187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14188 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
14189 if (_ptr_dependent_files
) {
14190 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
14191 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
14193 r
->dependent_files
= NULL
;
14195 ndr
->flags
= _flags_save_string_array
;
14198 uint32_t _flags_save_string
= ndr
->flags
;
14199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
14201 if (_ptr_monitor_name
) {
14202 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
14203 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
14205 r
->monitor_name
= NULL
;
14207 ndr
->flags
= _flags_save_string
;
14210 uint32_t _flags_save_string
= ndr
->flags
;
14211 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14212 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
14213 if (_ptr_default_datatype
) {
14214 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
14215 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
14217 r
->default_datatype
= NULL
;
14219 ndr
->flags
= _flags_save_string
;
14222 uint32_t _flags_save_string_array
= ndr
->flags
;
14223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
14225 if (_ptr_previous_names
) {
14226 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
14227 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
14229 r
->previous_names
= NULL
;
14231 ndr
->flags
= _flags_save_string_array
;
14233 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
14234 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
14236 uint32_t _flags_save_string
= ndr
->flags
;
14237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
14239 if (_ptr_manufacturer_name
) {
14240 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
14241 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
14243 r
->manufacturer_name
= NULL
;
14245 ndr
->flags
= _flags_save_string
;
14248 uint32_t _flags_save_string
= ndr
->flags
;
14249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14250 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
14251 if (_ptr_manufacturer_url
) {
14252 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
14253 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
14255 r
->manufacturer_url
= NULL
;
14257 ndr
->flags
= _flags_save_string
;
14260 uint32_t _flags_save_string
= ndr
->flags
;
14261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14262 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
14263 if (_ptr_hardware_id
) {
14264 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
14265 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
14267 r
->hardware_id
= NULL
;
14269 ndr
->flags
= _flags_save_string
;
14272 uint32_t _flags_save_string
= ndr
->flags
;
14273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
14275 if (_ptr_provider
) {
14276 NDR_PULL_ALLOC(ndr
, r
->provider
);
14277 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
14279 r
->provider
= NULL
;
14281 ndr
->flags
= _flags_save_string
;
14284 uint32_t _flags_save_string
= ndr
->flags
;
14285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
14287 if (_ptr_print_processor
) {
14288 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
14289 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
14291 r
->print_processor
= NULL
;
14293 ndr
->flags
= _flags_save_string
;
14296 uint32_t _flags_save_string
= ndr
->flags
;
14297 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14298 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
14299 if (_ptr_vendor_setup
) {
14300 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
14301 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
14303 r
->vendor_setup
= NULL
;
14305 ndr
->flags
= _flags_save_string
;
14308 uint32_t _flags_save_string_array
= ndr
->flags
;
14309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
14311 if (_ptr_color_profiles
) {
14312 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
14313 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
14315 r
->color_profiles
= NULL
;
14317 ndr
->flags
= _flags_save_string_array
;
14320 uint32_t _flags_save_string
= ndr
->flags
;
14321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
14323 if (_ptr_inf_path
) {
14324 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
14325 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
14327 r
->inf_path
= NULL
;
14329 ndr
->flags
= _flags_save_string
;
14331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
14333 uint32_t _flags_save_string_array
= ndr
->flags
;
14334 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
14336 if (_ptr_core_driver_dependencies
) {
14337 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
14338 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
14340 r
->core_driver_dependencies
= NULL
;
14342 ndr
->flags
= _flags_save_string_array
;
14344 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
14345 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
14346 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
14348 if (ndr_flags
& NDR_BUFFERS
) {
14350 uint32_t _flags_save_string
= ndr
->flags
;
14351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14352 if (r
->driver_name
) {
14353 uint32_t _relative_save_offset
;
14354 _relative_save_offset
= ndr
->offset
;
14355 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
14356 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14357 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
14358 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
14359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
14360 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14361 ndr
->relative_highest_offset
= ndr
->offset
;
14363 ndr
->offset
= _relative_save_offset
;
14365 ndr
->flags
= _flags_save_string
;
14368 uint32_t _flags_save_string
= ndr
->flags
;
14369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14370 if (r
->architecture
) {
14371 uint32_t _relative_save_offset
;
14372 _relative_save_offset
= ndr
->offset
;
14373 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
14374 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14375 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
14376 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
14377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
14378 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14379 ndr
->relative_highest_offset
= ndr
->offset
;
14381 ndr
->offset
= _relative_save_offset
;
14383 ndr
->flags
= _flags_save_string
;
14386 uint32_t _flags_save_string
= ndr
->flags
;
14387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14388 if (r
->driver_path
) {
14389 uint32_t _relative_save_offset
;
14390 _relative_save_offset
= ndr
->offset
;
14391 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
14392 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14393 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
14394 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
14395 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
14396 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14397 ndr
->relative_highest_offset
= ndr
->offset
;
14399 ndr
->offset
= _relative_save_offset
;
14401 ndr
->flags
= _flags_save_string
;
14404 uint32_t _flags_save_string
= ndr
->flags
;
14405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14406 if (r
->data_file
) {
14407 uint32_t _relative_save_offset
;
14408 _relative_save_offset
= ndr
->offset
;
14409 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
14410 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14411 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
14412 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
14413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
14414 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14415 ndr
->relative_highest_offset
= ndr
->offset
;
14417 ndr
->offset
= _relative_save_offset
;
14419 ndr
->flags
= _flags_save_string
;
14422 uint32_t _flags_save_string
= ndr
->flags
;
14423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14424 if (r
->config_file
) {
14425 uint32_t _relative_save_offset
;
14426 _relative_save_offset
= ndr
->offset
;
14427 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
14428 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14429 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
14430 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
14431 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
14432 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14433 ndr
->relative_highest_offset
= ndr
->offset
;
14435 ndr
->offset
= _relative_save_offset
;
14437 ndr
->flags
= _flags_save_string
;
14440 uint32_t _flags_save_string
= ndr
->flags
;
14441 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14442 if (r
->help_file
) {
14443 uint32_t _relative_save_offset
;
14444 _relative_save_offset
= ndr
->offset
;
14445 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
14446 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14447 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
14448 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
14449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
14450 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14451 ndr
->relative_highest_offset
= ndr
->offset
;
14453 ndr
->offset
= _relative_save_offset
;
14455 ndr
->flags
= _flags_save_string
;
14458 uint32_t _flags_save_string_array
= ndr
->flags
;
14459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14460 if (r
->dependent_files
) {
14461 uint32_t _relative_save_offset
;
14462 _relative_save_offset
= ndr
->offset
;
14463 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
14464 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14465 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
14466 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
14467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
14468 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14469 ndr
->relative_highest_offset
= ndr
->offset
;
14471 ndr
->offset
= _relative_save_offset
;
14473 ndr
->flags
= _flags_save_string_array
;
14476 uint32_t _flags_save_string
= ndr
->flags
;
14477 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14478 if (r
->monitor_name
) {
14479 uint32_t _relative_save_offset
;
14480 _relative_save_offset
= ndr
->offset
;
14481 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14482 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14483 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14484 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14486 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14487 ndr
->relative_highest_offset
= ndr
->offset
;
14489 ndr
->offset
= _relative_save_offset
;
14491 ndr
->flags
= _flags_save_string
;
14494 uint32_t _flags_save_string
= ndr
->flags
;
14495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14496 if (r
->default_datatype
) {
14497 uint32_t _relative_save_offset
;
14498 _relative_save_offset
= ndr
->offset
;
14499 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
14500 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14501 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
14502 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
14503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
14504 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14505 ndr
->relative_highest_offset
= ndr
->offset
;
14507 ndr
->offset
= _relative_save_offset
;
14509 ndr
->flags
= _flags_save_string
;
14512 uint32_t _flags_save_string_array
= ndr
->flags
;
14513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14514 if (r
->previous_names
) {
14515 uint32_t _relative_save_offset
;
14516 _relative_save_offset
= ndr
->offset
;
14517 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
14518 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14519 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
14520 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
14521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
14522 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14523 ndr
->relative_highest_offset
= ndr
->offset
;
14525 ndr
->offset
= _relative_save_offset
;
14527 ndr
->flags
= _flags_save_string_array
;
14530 uint32_t _flags_save_string
= ndr
->flags
;
14531 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14532 if (r
->manufacturer_name
) {
14533 uint32_t _relative_save_offset
;
14534 _relative_save_offset
= ndr
->offset
;
14535 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
14536 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14537 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
14538 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
14539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
14540 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14541 ndr
->relative_highest_offset
= ndr
->offset
;
14543 ndr
->offset
= _relative_save_offset
;
14545 ndr
->flags
= _flags_save_string
;
14548 uint32_t _flags_save_string
= ndr
->flags
;
14549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14550 if (r
->manufacturer_url
) {
14551 uint32_t _relative_save_offset
;
14552 _relative_save_offset
= ndr
->offset
;
14553 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
14554 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14555 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
14556 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
14557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
14558 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14559 ndr
->relative_highest_offset
= ndr
->offset
;
14561 ndr
->offset
= _relative_save_offset
;
14563 ndr
->flags
= _flags_save_string
;
14566 uint32_t _flags_save_string
= ndr
->flags
;
14567 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14568 if (r
->hardware_id
) {
14569 uint32_t _relative_save_offset
;
14570 _relative_save_offset
= ndr
->offset
;
14571 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
14572 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14573 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
14574 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
14575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
14576 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14577 ndr
->relative_highest_offset
= ndr
->offset
;
14579 ndr
->offset
= _relative_save_offset
;
14581 ndr
->flags
= _flags_save_string
;
14584 uint32_t _flags_save_string
= ndr
->flags
;
14585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14587 uint32_t _relative_save_offset
;
14588 _relative_save_offset
= ndr
->offset
;
14589 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
14590 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14591 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
14592 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
14593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
14594 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14595 ndr
->relative_highest_offset
= ndr
->offset
;
14597 ndr
->offset
= _relative_save_offset
;
14599 ndr
->flags
= _flags_save_string
;
14602 uint32_t _flags_save_string
= ndr
->flags
;
14603 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14604 if (r
->print_processor
) {
14605 uint32_t _relative_save_offset
;
14606 _relative_save_offset
= ndr
->offset
;
14607 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
14608 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14609 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
14610 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
14611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
14612 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14613 ndr
->relative_highest_offset
= ndr
->offset
;
14615 ndr
->offset
= _relative_save_offset
;
14617 ndr
->flags
= _flags_save_string
;
14620 uint32_t _flags_save_string
= ndr
->flags
;
14621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14622 if (r
->vendor_setup
) {
14623 uint32_t _relative_save_offset
;
14624 _relative_save_offset
= ndr
->offset
;
14625 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
14626 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14627 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
14628 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
14629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
14630 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14631 ndr
->relative_highest_offset
= ndr
->offset
;
14633 ndr
->offset
= _relative_save_offset
;
14635 ndr
->flags
= _flags_save_string
;
14638 uint32_t _flags_save_string_array
= ndr
->flags
;
14639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14640 if (r
->color_profiles
) {
14641 uint32_t _relative_save_offset
;
14642 _relative_save_offset
= ndr
->offset
;
14643 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
14644 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14645 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
14646 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
14647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
14648 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14649 ndr
->relative_highest_offset
= ndr
->offset
;
14651 ndr
->offset
= _relative_save_offset
;
14653 ndr
->flags
= _flags_save_string_array
;
14656 uint32_t _flags_save_string
= ndr
->flags
;
14657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14659 uint32_t _relative_save_offset
;
14660 _relative_save_offset
= ndr
->offset
;
14661 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
14662 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14663 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
14664 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
14665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
14666 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14667 ndr
->relative_highest_offset
= ndr
->offset
;
14669 ndr
->offset
= _relative_save_offset
;
14671 ndr
->flags
= _flags_save_string
;
14674 uint32_t _flags_save_string_array
= ndr
->flags
;
14675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14676 if (r
->core_driver_dependencies
) {
14677 uint32_t _relative_save_offset
;
14678 _relative_save_offset
= ndr
->offset
;
14679 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
14680 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14681 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
14682 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
14683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
14684 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14685 ndr
->relative_highest_offset
= ndr
->offset
;
14687 ndr
->offset
= _relative_save_offset
;
14689 ndr
->flags
= _flags_save_string_array
;
14692 return NDR_ERR_SUCCESS
;
14695 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
14697 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
14699 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14700 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14702 if (r
->driver_name
) {
14703 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14706 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14708 if (r
->architecture
) {
14709 ndr_print_string(ndr
, "architecture", r
->architecture
);
14712 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
14714 if (r
->driver_path
) {
14715 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
14718 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
14720 if (r
->data_file
) {
14721 ndr_print_string(ndr
, "data_file", r
->data_file
);
14724 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
14726 if (r
->config_file
) {
14727 ndr_print_string(ndr
, "config_file", r
->config_file
);
14730 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
14732 if (r
->help_file
) {
14733 ndr_print_string(ndr
, "help_file", r
->help_file
);
14736 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
14738 if (r
->dependent_files
) {
14739 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
14742 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14744 if (r
->monitor_name
) {
14745 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14748 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14750 if (r
->default_datatype
) {
14751 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14754 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14756 if (r
->previous_names
) {
14757 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14760 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14761 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14762 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14764 if (r
->manufacturer_name
) {
14765 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14768 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14770 if (r
->manufacturer_url
) {
14771 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14774 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14776 if (r
->hardware_id
) {
14777 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14780 ndr_print_ptr(ndr
, "provider", r
->provider
);
14783 ndr_print_string(ndr
, "provider", r
->provider
);
14786 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
14788 if (r
->print_processor
) {
14789 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
14792 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
14794 if (r
->vendor_setup
) {
14795 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
14798 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
14800 if (r
->color_profiles
) {
14801 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
14804 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
14807 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
14810 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
14811 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14813 if (r
->core_driver_dependencies
) {
14814 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14817 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
14818 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
14822 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14824 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
14827 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
14829 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
14830 return NDR_ERR_SUCCESS
;
14833 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
14836 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
14838 return NDR_ERR_SUCCESS
;
14841 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
14843 const char *val
= NULL
;
14846 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14847 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14848 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14849 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14850 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14852 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14855 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
14857 if (ndr_flags
& NDR_SCALARS
) {
14858 NDR_CHECK(ndr_push_align(ndr
, 5));
14860 uint32_t _flags_save_string
= ndr
->flags
;
14861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14862 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
14863 ndr
->flags
= _flags_save_string
;
14865 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
14866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
14867 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14869 if (ndr_flags
& NDR_BUFFERS
) {
14871 uint32_t _flags_save_string
= ndr
->flags
;
14872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14873 if (r
->file_name
) {
14874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->file_name
));
14875 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
14876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->file_name
));
14878 ndr
->flags
= _flags_save_string
;
14881 return NDR_ERR_SUCCESS
;
14884 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
14886 uint32_t _ptr_file_name
;
14887 TALLOC_CTX
*_mem_save_file_name_0
;
14888 if (ndr_flags
& NDR_SCALARS
) {
14889 NDR_CHECK(ndr_pull_align(ndr
, 5));
14891 uint32_t _flags_save_string
= ndr
->flags
;
14892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14893 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
14894 if (_ptr_file_name
) {
14895 NDR_PULL_ALLOC(ndr
, r
->file_name
);
14896 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
14898 r
->file_name
= NULL
;
14900 ndr
->flags
= _flags_save_string
;
14902 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
14903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
14904 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14906 if (ndr_flags
& NDR_BUFFERS
) {
14908 uint32_t _flags_save_string
= ndr
->flags
;
14909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14910 if (r
->file_name
) {
14911 uint32_t _relative_save_offset
;
14912 _relative_save_offset
= ndr
->offset
;
14913 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
14914 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14915 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
14916 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
14917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
14918 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14919 ndr
->relative_highest_offset
= ndr
->offset
;
14921 ndr
->offset
= _relative_save_offset
;
14923 ndr
->flags
= _flags_save_string
;
14926 return NDR_ERR_SUCCESS
;
14929 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
14931 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
14933 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
14935 if (r
->file_name
) {
14936 ndr_print_string(ndr
, "file_name", r
->file_name
);
14939 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
14940 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
14944 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
14946 uint32_t cntr_file_info_1
;
14947 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
14949 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14950 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14952 if (r
->driver_name
) {
14953 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14956 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14958 if (r
->architecture
) {
14959 ndr_print_string(ndr
, "architecture", r
->architecture
);
14962 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
14964 if (r
->file_info
) {
14965 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
14967 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
14969 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
14970 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
14977 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
14978 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14980 if (r
->monitor_name
) {
14981 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14984 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14986 if (r
->default_datatype
) {
14987 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14990 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14992 if (r
->previous_names
) {
14993 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14996 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14997 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14998 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
15000 if (r
->manufacturer_name
) {
15001 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
15004 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
15006 if (r
->manufacturer_url
) {
15007 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
15010 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
15012 if (r
->hardware_id
) {
15013 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
15016 ndr_print_ptr(ndr
, "provider", r
->provider
);
15019 ndr_print_string(ndr
, "provider", r
->provider
);
15025 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15027 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
15030 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
15032 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15034 uint32_t _flags_save_UNION
= ndr
->flags
;
15035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15036 if (ndr_flags
& NDR_SCALARS
) {
15037 int level
= ndr_push_get_switch_value(ndr
, r
);
15038 NDR_CHECK(ndr_push_union_align(ndr
, 8));
15041 NDR_CHECK(ndr_push_align(ndr
, 5));
15042 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15043 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15047 NDR_CHECK(ndr_push_align(ndr
, 5));
15048 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15049 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15053 NDR_CHECK(ndr_push_align(ndr
, 5));
15054 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15055 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
15059 NDR_CHECK(ndr_push_align(ndr
, 5));
15060 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15061 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
15065 NDR_CHECK(ndr_push_align(ndr
, 5));
15066 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15067 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
15071 NDR_CHECK(ndr_push_align(ndr
, 8));
15072 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15073 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
15077 NDR_CHECK(ndr_push_align(ndr
, 5));
15078 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15079 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
15083 NDR_CHECK(ndr_push_align(ndr
, 8));
15084 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15085 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
15089 NDR_CHECK(ndr_push_align(ndr
, 8));
15090 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15091 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
15099 if (ndr_flags
& NDR_BUFFERS
) {
15100 int level
= ndr_push_get_switch_value(ndr
, r
);
15101 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15104 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15108 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15112 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
15116 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
15120 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
15124 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
15128 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
15132 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
15136 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
15144 ndr
->flags
= _flags_save_UNION
;
15146 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15147 return NDR_ERR_SUCCESS
;
15150 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
15152 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15155 uint32_t _flags_save_UNION
= ndr
->flags
;
15156 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15157 level
= ndr_pull_get_switch_value(ndr
, r
);
15158 if (ndr_flags
& NDR_SCALARS
) {
15159 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
15162 NDR_CHECK(ndr_pull_align(ndr
, 5));
15163 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15164 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15168 NDR_CHECK(ndr_pull_align(ndr
, 5));
15169 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15170 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15174 NDR_CHECK(ndr_pull_align(ndr
, 5));
15175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15176 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
15180 NDR_CHECK(ndr_pull_align(ndr
, 5));
15181 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15182 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
15186 NDR_CHECK(ndr_pull_align(ndr
, 5));
15187 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15188 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
15192 NDR_CHECK(ndr_pull_align(ndr
, 8));
15193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15194 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
15198 NDR_CHECK(ndr_pull_align(ndr
, 5));
15199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15200 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
15204 NDR_CHECK(ndr_pull_align(ndr
, 8));
15205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15206 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
15210 NDR_CHECK(ndr_pull_align(ndr
, 8));
15211 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15212 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
15220 if (ndr_flags
& NDR_BUFFERS
) {
15221 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15224 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15228 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15232 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
15236 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
15240 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
15244 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
15248 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
15252 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
15256 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
15264 ndr
->flags
= _flags_save_UNION
;
15266 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15267 return NDR_ERR_SUCCESS
;
15270 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
15274 uint32_t _flags_save_UNION
= ndr
->flags
;
15275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15276 level
= ndr_print_get_switch_value(ndr
, r
);
15277 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
15280 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
15284 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
15288 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
15292 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
15296 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
15300 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
15304 ndr_print_spoolss_DriverInfo7(ndr
, "info7", &r
->info7
);
15308 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
15312 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
15319 ndr
->flags
= _flags_save_UNION
;
15323 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15325 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15326 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
15329 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
15331 if (ndr_flags
& NDR_SCALARS
) {
15332 NDR_CHECK(ndr_push_align(ndr
, 4));
15334 uint32_t _flags_save_string
= ndr
->flags
;
15335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15336 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15337 ndr
->flags
= _flags_save_string
;
15339 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15341 if (ndr_flags
& NDR_BUFFERS
) {
15343 return NDR_ERR_SUCCESS
;
15346 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
15348 if (ndr_flags
& NDR_SCALARS
) {
15349 NDR_CHECK(ndr_pull_align(ndr
, 4));
15351 uint32_t _flags_save_string
= ndr
->flags
;
15352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15353 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15354 ndr
->flags
= _flags_save_string
;
15356 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15358 if (ndr_flags
& NDR_BUFFERS
) {
15360 return NDR_ERR_SUCCESS
;
15363 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
15365 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
15367 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15371 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15373 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
15376 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
15378 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15380 uint32_t _flags_save_UNION
= ndr
->flags
;
15381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15382 if (ndr_flags
& NDR_SCALARS
) {
15383 int level
= ndr_push_get_switch_value(ndr
, r
);
15384 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15387 NDR_CHECK(ndr_push_align(ndr
, 4));
15388 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15389 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15393 NDR_CHECK(ndr_push_align(ndr
, 4));
15394 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15395 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15400 if (ndr_flags
& NDR_BUFFERS
) {
15401 int level
= ndr_push_get_switch_value(ndr
, r
);
15402 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15412 ndr
->flags
= _flags_save_UNION
;
15414 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15415 return NDR_ERR_SUCCESS
;
15418 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
15420 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15423 uint32_t _flags_save_UNION
= ndr
->flags
;
15424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15425 level
= ndr_pull_get_switch_value(ndr
, r
);
15426 if (ndr_flags
& NDR_SCALARS
) {
15427 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15430 NDR_CHECK(ndr_pull_align(ndr
, 4));
15431 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15432 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15436 NDR_CHECK(ndr_pull_align(ndr
, 4));
15437 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15438 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15443 if (ndr_flags
& NDR_BUFFERS
) {
15444 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15454 ndr
->flags
= _flags_save_UNION
;
15456 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15457 return NDR_ERR_SUCCESS
;
15460 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
15464 uint32_t _flags_save_UNION
= ndr
->flags
;
15465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15466 level
= ndr_print_get_switch_value(ndr
, r
);
15467 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
15470 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15474 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15478 ndr
->flags
= _flags_save_UNION
;
15482 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15484 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15485 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
15488 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
15490 if (ndr_flags
& NDR_SCALARS
) {
15491 NDR_CHECK(ndr_push_align(ndr
, 5));
15493 uint32_t _flags_save_string
= ndr
->flags
;
15494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15495 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
15496 ndr
->flags
= _flags_save_string
;
15498 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15500 if (ndr_flags
& NDR_BUFFERS
) {
15502 uint32_t _flags_save_string
= ndr
->flags
;
15503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15504 if (r
->print_processor_name
) {
15505 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor_name
));
15506 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
15507 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor_name
));
15509 ndr
->flags
= _flags_save_string
;
15512 return NDR_ERR_SUCCESS
;
15515 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
15517 uint32_t _ptr_print_processor_name
;
15518 TALLOC_CTX
*_mem_save_print_processor_name_0
;
15519 if (ndr_flags
& NDR_SCALARS
) {
15520 NDR_CHECK(ndr_pull_align(ndr
, 5));
15522 uint32_t _flags_save_string
= ndr
->flags
;
15523 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15524 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
15525 if (_ptr_print_processor_name
) {
15526 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
15527 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
15529 r
->print_processor_name
= NULL
;
15531 ndr
->flags
= _flags_save_string
;
15533 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15535 if (ndr_flags
& NDR_BUFFERS
) {
15537 uint32_t _flags_save_string
= ndr
->flags
;
15538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15539 if (r
->print_processor_name
) {
15540 uint32_t _relative_save_offset
;
15541 _relative_save_offset
= ndr
->offset
;
15542 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
15543 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15544 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
15545 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
15546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
15547 if (ndr
->offset
> ndr
->relative_highest_offset
) {
15548 ndr
->relative_highest_offset
= ndr
->offset
;
15550 ndr
->offset
= _relative_save_offset
;
15552 ndr
->flags
= _flags_save_string
;
15555 return NDR_ERR_SUCCESS
;
15558 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
15560 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
15562 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
15564 if (r
->print_processor_name
) {
15565 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
15571 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15573 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
15576 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
15578 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15580 uint32_t _flags_save_UNION
= ndr
->flags
;
15581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15582 if (ndr_flags
& NDR_SCALARS
) {
15583 int level
= ndr_push_get_switch_value(ndr
, r
);
15584 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15587 NDR_CHECK(ndr_push_align(ndr
, 5));
15588 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15589 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15597 if (ndr_flags
& NDR_BUFFERS
) {
15598 int level
= ndr_push_get_switch_value(ndr
, r
);
15599 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15602 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15610 ndr
->flags
= _flags_save_UNION
;
15612 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15613 return NDR_ERR_SUCCESS
;
15616 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
15618 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15621 uint32_t _flags_save_UNION
= ndr
->flags
;
15622 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15623 level
= ndr_pull_get_switch_value(ndr
, r
);
15624 if (ndr_flags
& NDR_SCALARS
) {
15625 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15628 NDR_CHECK(ndr_pull_align(ndr
, 5));
15629 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15630 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15638 if (ndr_flags
& NDR_BUFFERS
) {
15639 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15642 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15650 ndr
->flags
= _flags_save_UNION
;
15652 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15653 return NDR_ERR_SUCCESS
;
15656 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
15660 uint32_t _flags_save_UNION
= ndr
->flags
;
15661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15662 level
= ndr_print_get_switch_value(ndr
, r
);
15663 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
15666 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
15673 ndr
->flags
= _flags_save_UNION
;
15677 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15679 if (ndr_flags
& NDR_SCALARS
) {
15680 NDR_CHECK(ndr_push_align(ndr
, 4));
15682 uint32_t _flags_save_string
= ndr
->flags
;
15683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15684 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15685 ndr
->flags
= _flags_save_string
;
15687 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15689 if (ndr_flags
& NDR_BUFFERS
) {
15691 return NDR_ERR_SUCCESS
;
15694 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15696 if (ndr_flags
& NDR_SCALARS
) {
15697 NDR_CHECK(ndr_pull_align(ndr
, 4));
15699 uint32_t _flags_save_string
= ndr
->flags
;
15700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15701 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15702 ndr
->flags
= _flags_save_string
;
15704 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15706 if (ndr_flags
& NDR_BUFFERS
) {
15708 return NDR_ERR_SUCCESS
;
15711 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15713 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
15715 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15719 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15721 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
15724 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15726 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15728 uint32_t _flags_save_UNION
= ndr
->flags
;
15729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15730 if (ndr_flags
& NDR_SCALARS
) {
15731 int level
= ndr_push_get_switch_value(ndr
, r
);
15732 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15735 NDR_CHECK(ndr_push_align(ndr
, 4));
15736 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15737 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15741 NDR_CHECK(ndr_push_align(ndr
, 4));
15742 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15743 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15748 if (ndr_flags
& NDR_BUFFERS
) {
15749 int level
= ndr_push_get_switch_value(ndr
, r
);
15750 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15760 ndr
->flags
= _flags_save_UNION
;
15762 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15763 return NDR_ERR_SUCCESS
;
15766 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
15768 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15771 uint32_t _flags_save_UNION
= ndr
->flags
;
15772 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15773 level
= ndr_pull_get_switch_value(ndr
, r
);
15774 if (ndr_flags
& NDR_SCALARS
) {
15775 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15778 NDR_CHECK(ndr_pull_align(ndr
, 4));
15779 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15780 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15784 NDR_CHECK(ndr_pull_align(ndr
, 4));
15785 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15786 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15791 if (ndr_flags
& NDR_BUFFERS
) {
15792 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15802 ndr
->flags
= _flags_save_UNION
;
15804 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15805 return NDR_ERR_SUCCESS
;
15808 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15812 uint32_t _flags_save_UNION
= ndr
->flags
;
15813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15814 level
= ndr_print_get_switch_value(ndr
, r
);
15815 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
15818 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15822 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15826 ndr
->flags
= _flags_save_UNION
;
15830 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15832 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15833 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
15836 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
15838 if (ndr_flags
& NDR_SCALARS
) {
15839 NDR_CHECK(ndr_push_align(ndr
, 5));
15840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
15841 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
15842 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
15843 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15845 if (ndr_flags
& NDR_BUFFERS
) {
15846 if (r
->document_name
) {
15847 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15848 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15849 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15850 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15852 if (r
->output_file
) {
15853 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15855 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15856 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15859 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15861 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15862 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15865 return NDR_ERR_SUCCESS
;
15868 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
15870 uint32_t _ptr_document_name
;
15871 TALLOC_CTX
*_mem_save_document_name_0
;
15872 uint32_t _ptr_output_file
;
15873 TALLOC_CTX
*_mem_save_output_file_0
;
15874 uint32_t _ptr_datatype
;
15875 TALLOC_CTX
*_mem_save_datatype_0
;
15876 if (ndr_flags
& NDR_SCALARS
) {
15877 NDR_CHECK(ndr_pull_align(ndr
, 5));
15878 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
15879 if (_ptr_document_name
) {
15880 NDR_PULL_ALLOC(ndr
, r
->document_name
);
15882 r
->document_name
= NULL
;
15884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
15885 if (_ptr_output_file
) {
15886 NDR_PULL_ALLOC(ndr
, r
->output_file
);
15888 r
->output_file
= NULL
;
15890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
15891 if (_ptr_datatype
) {
15892 NDR_PULL_ALLOC(ndr
, r
->datatype
);
15894 r
->datatype
= NULL
;
15896 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15898 if (ndr_flags
& NDR_BUFFERS
) {
15899 if (r
->document_name
) {
15900 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15901 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
15902 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
15903 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
15904 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
15905 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
));
15907 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
15908 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
15909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
15911 if (r
->output_file
) {
15912 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15913 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
15914 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
15915 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
15916 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
15917 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
));
15919 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
15920 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
15921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
15924 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15925 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
15926 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
15927 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
15928 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
15929 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
));
15931 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
15932 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
15933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
15936 return NDR_ERR_SUCCESS
;
15939 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
15941 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
15943 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
15945 if (r
->document_name
) {
15946 ndr_print_string(ndr
, "document_name", r
->document_name
);
15949 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
15951 if (r
->output_file
) {
15952 ndr_print_string(ndr
, "output_file", r
->output_file
);
15955 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
15958 ndr_print_string(ndr
, "datatype", r
->datatype
);
15964 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
15966 if (ndr_flags
& NDR_SCALARS
) {
15967 int level
= ndr_push_get_switch_value(ndr
, r
);
15968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15969 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15986 if (ndr_flags
& NDR_BUFFERS
) {
15987 int level
= ndr_push_get_switch_value(ndr
, r
);
15991 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16006 return NDR_ERR_SUCCESS
;
16009 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
16013 TALLOC_CTX
*_mem_save_info1_0
;
16014 level
= ndr_pull_get_switch_value(ndr
, r
);
16015 if (ndr_flags
& NDR_SCALARS
) {
16016 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16017 if (_level
!= level
) {
16018 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
16020 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16023 uint32_t _ptr_info1
;
16024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16026 NDR_PULL_ALLOC(ndr
, r
->info1
);
16043 if (ndr_flags
& NDR_BUFFERS
) {
16047 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16048 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16049 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16065 return NDR_ERR_SUCCESS
;
16068 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
16071 level
= ndr_print_get_switch_value(ndr
, r
);
16072 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
16075 ndr_print_ptr(ndr
, "info1", r
->info1
);
16078 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
16095 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
16097 if (ndr_flags
& NDR_SCALARS
) {
16098 NDR_CHECK(ndr_push_align(ndr
, 4));
16099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
16100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
16101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
16102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
16103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
16105 uint32_t _flags_save_string
= ndr
->flags
;
16106 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16108 struct ndr_push
*_ndr_extra_string
;
16109 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16110 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
16111 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16113 ndr
->flags
= _flags_save_string
;
16115 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16117 if (ndr_flags
& NDR_BUFFERS
) {
16119 return NDR_ERR_SUCCESS
;
16122 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
16124 if (ndr_flags
& NDR_SCALARS
) {
16125 NDR_CHECK(ndr_pull_align(ndr
, 4));
16126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
16127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
16128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
16129 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
16130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
16132 uint32_t _flags_save_string
= ndr
->flags
;
16133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16135 struct ndr_pull
*_ndr_extra_string
;
16136 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16137 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
16138 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16140 ndr
->flags
= _flags_save_string
;
16142 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16144 if (ndr_flags
& NDR_BUFFERS
) {
16146 return NDR_ERR_SUCCESS
;
16149 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
16151 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
16153 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
);
16154 ndr_print_uint32(ndr
, "major", r
->major
);
16155 ndr_print_uint32(ndr
, "minor", r
->minor
);
16156 ndr_print_uint32(ndr
, "build", r
->build
);
16157 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
16158 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
16162 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16164 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
16167 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
16169 if (ndr_flags
& NDR_SCALARS
) {
16170 NDR_CHECK(ndr_push_align(ndr
, 4));
16171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
16172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
16173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
16174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
16175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
16177 uint32_t _flags_save_string
= ndr
->flags
;
16178 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16180 struct ndr_push
*_ndr_extra_string
;
16181 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16182 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
16183 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16185 ndr
->flags
= _flags_save_string
;
16187 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
16188 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
16189 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
16190 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
16191 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
16192 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16194 if (ndr_flags
& NDR_BUFFERS
) {
16196 return NDR_ERR_SUCCESS
;
16199 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
16201 if (ndr_flags
& NDR_SCALARS
) {
16202 NDR_CHECK(ndr_pull_align(ndr
, 4));
16203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
16204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
16205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
16206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
16207 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
16209 uint32_t _flags_save_string
= ndr
->flags
;
16210 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16212 struct ndr_pull
*_ndr_extra_string
;
16213 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16214 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
16215 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16217 ndr
->flags
= _flags_save_string
;
16219 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
16220 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
16221 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
16222 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
16223 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
16224 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16226 if (ndr_flags
& NDR_BUFFERS
) {
16228 return NDR_ERR_SUCCESS
;
16231 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
16233 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
16235 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
);
16236 ndr_print_uint32(ndr
, "major", r
->major
);
16237 ndr_print_uint32(ndr
, "minor", r
->minor
);
16238 ndr_print_uint32(ndr
, "build", r
->build
);
16239 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
16240 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
16241 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
16242 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
16243 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
16244 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
16245 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
16249 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16251 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
16254 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
16256 if (ndr_flags
& NDR_SCALARS
) {
16257 int level
= ndr_push_get_switch_value(ndr
, r
);
16258 NDR_CHECK(ndr_push_union_align(ndr
, 4));
16265 uint32_t _flags_save_string
= ndr
->flags
;
16266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16267 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
16268 ndr
->flags
= _flags_save_string
;
16274 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16276 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
16277 ndr
->flags
= _flags_save_DATA_BLOB
;
16282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
16285 case REG_MULTI_SZ
: {
16287 uint32_t _flags_save_string_array
= ndr
->flags
;
16288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16289 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
16290 ndr
->flags
= _flags_save_string_array
;
16296 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16297 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16298 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
16299 ndr
->flags
= _flags_save_DATA_BLOB
;
16305 if (ndr_flags
& NDR_BUFFERS
) {
16306 int level
= ndr_push_get_switch_value(ndr
, r
);
16328 return NDR_ERR_SUCCESS
;
16331 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
16334 level
= ndr_pull_get_switch_value(ndr
, r
);
16335 if (ndr_flags
& NDR_SCALARS
) {
16336 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
16343 uint32_t _flags_save_string
= ndr
->flags
;
16344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
16346 ndr
->flags
= _flags_save_string
;
16352 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16354 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
16355 ndr
->flags
= _flags_save_DATA_BLOB
;
16360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
16363 case REG_MULTI_SZ
: {
16365 uint32_t _flags_save_string_array
= ndr
->flags
;
16366 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16367 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
16368 ndr
->flags
= _flags_save_string_array
;
16374 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16376 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
16377 ndr
->flags
= _flags_save_DATA_BLOB
;
16383 if (ndr_flags
& NDR_BUFFERS
) {
16405 return NDR_ERR_SUCCESS
;
16408 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
16411 level
= ndr_print_get_switch_value(ndr
, r
);
16412 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
16418 ndr_print_string(ndr
, "string", r
->string
);
16422 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
16426 ndr_print_uint32(ndr
, "value", r
->value
);
16430 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
16434 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
16440 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
16442 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16443 return NDR_ERR_SUCCESS
;
16446 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
16449 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16451 return NDR_ERR_SUCCESS
;
16454 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
16456 const char *val
= NULL
;
16459 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
16460 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
16461 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
16463 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16466 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
16468 if (ndr_flags
& NDR_SCALARS
) {
16469 NDR_CHECK(ndr_push_align(ndr
, 4));
16470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
16471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
16472 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16474 if (ndr_flags
& NDR_BUFFERS
) {
16476 return NDR_ERR_SUCCESS
;
16479 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
16481 if (ndr_flags
& NDR_SCALARS
) {
16482 NDR_CHECK(ndr_pull_align(ndr
, 4));
16483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
16484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
16485 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16487 if (ndr_flags
& NDR_BUFFERS
) {
16489 return NDR_ERR_SUCCESS
;
16492 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
16494 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
16496 ndr_print_uint32(ndr
, "width", r
->width
);
16497 ndr_print_uint32(ndr
, "height", r
->height
);
16501 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
16503 if (ndr_flags
& NDR_SCALARS
) {
16504 NDR_CHECK(ndr_push_align(ndr
, 4));
16505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
16506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
16507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
16508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
16509 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16511 if (ndr_flags
& NDR_BUFFERS
) {
16513 return NDR_ERR_SUCCESS
;
16516 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
16518 if (ndr_flags
& NDR_SCALARS
) {
16519 NDR_CHECK(ndr_pull_align(ndr
, 4));
16520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
16521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
16522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
16523 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
16524 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16526 if (ndr_flags
& NDR_BUFFERS
) {
16528 return NDR_ERR_SUCCESS
;
16531 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
16533 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
16535 ndr_print_uint32(ndr
, "left", r
->left
);
16536 ndr_print_uint32(ndr
, "top", r
->top
);
16537 ndr_print_uint32(ndr
, "right", r
->right
);
16538 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
16542 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
16544 if (ndr_flags
& NDR_SCALARS
) {
16545 NDR_CHECK(ndr_push_align(ndr
, 5));
16546 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16548 uint32_t _flags_save_string
= ndr
->flags
;
16549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16550 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16551 ndr
->flags
= _flags_save_string
;
16553 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16554 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16555 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16557 if (ndr_flags
& NDR_BUFFERS
) {
16559 uint32_t _flags_save_string
= ndr
->flags
;
16560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16561 if (r
->form_name
) {
16562 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16563 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16564 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16566 ndr
->flags
= _flags_save_string
;
16569 return NDR_ERR_SUCCESS
;
16572 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
16574 uint32_t _ptr_form_name
;
16575 TALLOC_CTX
*_mem_save_form_name_0
;
16576 if (ndr_flags
& NDR_SCALARS
) {
16577 NDR_CHECK(ndr_pull_align(ndr
, 5));
16578 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16580 uint32_t _flags_save_string
= ndr
->flags
;
16581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16582 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16583 if (_ptr_form_name
) {
16584 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16585 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16587 r
->form_name
= NULL
;
16589 ndr
->flags
= _flags_save_string
;
16591 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16592 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16593 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16595 if (ndr_flags
& NDR_BUFFERS
) {
16597 uint32_t _flags_save_string
= ndr
->flags
;
16598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16599 if (r
->form_name
) {
16600 uint32_t _relative_save_offset
;
16601 _relative_save_offset
= ndr
->offset
;
16602 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16603 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16604 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16605 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16607 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16608 ndr
->relative_highest_offset
= ndr
->offset
;
16610 ndr
->offset
= _relative_save_offset
;
16612 ndr
->flags
= _flags_save_string
;
16615 return NDR_ERR_SUCCESS
;
16618 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
16620 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
16622 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16623 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16625 if (r
->form_name
) {
16626 ndr_print_string(ndr
, "form_name", r
->form_name
);
16629 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16630 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16634 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16636 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
16639 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16642 return NDR_ERR_SUCCESS
;
16645 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16648 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16650 return NDR_ERR_SUCCESS
;
16653 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16655 ndr_print_uint32(ndr
, name
, r
);
16657 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
16658 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
16659 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
16663 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
16665 if (ndr_flags
& NDR_SCALARS
) {
16666 NDR_CHECK(ndr_push_align(ndr
, 5));
16667 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16669 uint32_t _flags_save_string
= ndr
->flags
;
16670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16671 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16672 ndr
->flags
= _flags_save_string
;
16674 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16675 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16677 uint32_t _flags_save_string
= ndr
->flags
;
16678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16679 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
16680 ndr
->flags
= _flags_save_string
;
16682 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16684 uint32_t _flags_save_string
= ndr
->flags
;
16685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16686 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
16687 ndr
->flags
= _flags_save_string
;
16689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16691 uint32_t _flags_save_string
= ndr
->flags
;
16692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16693 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
16694 ndr
->flags
= _flags_save_string
;
16696 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lang_id
));
16697 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unused
));
16698 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16700 if (ndr_flags
& NDR_BUFFERS
) {
16702 uint32_t _flags_save_string
= ndr
->flags
;
16703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16704 if (r
->form_name
) {
16705 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16706 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16707 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16709 ndr
->flags
= _flags_save_string
;
16712 uint32_t _flags_save_string
= ndr
->flags
;
16713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16715 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->keyword
));
16716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
16717 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->keyword
));
16719 ndr
->flags
= _flags_save_string
;
16722 uint32_t _flags_save_string
= ndr
->flags
;
16723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16725 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->mui_dll
));
16726 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
16727 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->mui_dll
));
16729 ndr
->flags
= _flags_save_string
;
16732 uint32_t _flags_save_string
= ndr
->flags
;
16733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16734 if (r
->display_name
) {
16735 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->display_name
));
16736 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
16737 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->display_name
));
16739 ndr
->flags
= _flags_save_string
;
16742 return NDR_ERR_SUCCESS
;
16745 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
16747 uint32_t _ptr_form_name
;
16748 TALLOC_CTX
*_mem_save_form_name_0
;
16749 uint32_t _ptr_keyword
;
16750 TALLOC_CTX
*_mem_save_keyword_0
;
16751 uint32_t _ptr_mui_dll
;
16752 TALLOC_CTX
*_mem_save_mui_dll_0
;
16753 uint32_t _ptr_display_name
;
16754 TALLOC_CTX
*_mem_save_display_name_0
;
16755 if (ndr_flags
& NDR_SCALARS
) {
16756 NDR_CHECK(ndr_pull_align(ndr
, 5));
16757 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16759 uint32_t _flags_save_string
= ndr
->flags
;
16760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16762 if (_ptr_form_name
) {
16763 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16764 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16766 r
->form_name
= NULL
;
16768 ndr
->flags
= _flags_save_string
;
16770 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16771 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16773 uint32_t _flags_save_string
= ndr
->flags
;
16774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16776 if (_ptr_keyword
) {
16777 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
16782 ndr
->flags
= _flags_save_string
;
16784 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16786 uint32_t _flags_save_string
= ndr
->flags
;
16787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16789 if (_ptr_mui_dll
) {
16790 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16791 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
16795 ndr
->flags
= _flags_save_string
;
16797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16799 uint32_t _flags_save_string
= ndr
->flags
;
16800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16802 if (_ptr_display_name
) {
16803 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
16806 r
->display_name
= NULL
;
16808 ndr
->flags
= _flags_save_string
;
16810 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lang_id
));
16811 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unused
));
16812 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16814 if (ndr_flags
& NDR_BUFFERS
) {
16816 uint32_t _flags_save_string
= ndr
->flags
;
16817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16818 if (r
->form_name
) {
16819 uint32_t _relative_save_offset
;
16820 _relative_save_offset
= ndr
->offset
;
16821 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16822 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16823 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16824 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16826 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16827 ndr
->relative_highest_offset
= ndr
->offset
;
16829 ndr
->offset
= _relative_save_offset
;
16831 ndr
->flags
= _flags_save_string
;
16834 uint32_t _flags_save_string
= ndr
->flags
;
16835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16837 uint32_t _relative_save_offset
;
16838 _relative_save_offset
= ndr
->offset
;
16839 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
16840 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16841 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16842 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
16843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16844 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16845 ndr
->relative_highest_offset
= ndr
->offset
;
16847 ndr
->offset
= _relative_save_offset
;
16849 ndr
->flags
= _flags_save_string
;
16852 uint32_t _flags_save_string
= ndr
->flags
;
16853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16855 uint32_t _relative_save_offset
;
16856 _relative_save_offset
= ndr
->offset
;
16857 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
16858 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16859 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16860 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
16861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16862 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16863 ndr
->relative_highest_offset
= ndr
->offset
;
16865 ndr
->offset
= _relative_save_offset
;
16867 ndr
->flags
= _flags_save_string
;
16870 uint32_t _flags_save_string
= ndr
->flags
;
16871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16872 if (r
->display_name
) {
16873 uint32_t _relative_save_offset
;
16874 _relative_save_offset
= ndr
->offset
;
16875 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
16876 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16877 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16878 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
16879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16880 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16881 ndr
->relative_highest_offset
= ndr
->offset
;
16883 ndr
->offset
= _relative_save_offset
;
16885 ndr
->flags
= _flags_save_string
;
16888 return NDR_ERR_SUCCESS
;
16891 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
16893 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
16895 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16896 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16898 if (r
->form_name
) {
16899 ndr_print_string(ndr
, "form_name", r
->form_name
);
16902 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16903 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16904 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16907 ndr_print_string(ndr
, "keyword", r
->keyword
);
16910 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16911 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16914 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16917 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16918 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16920 if (r
->display_name
) {
16921 ndr_print_string(ndr
, "display_name", r
->display_name
);
16924 ndr_print_uint16(ndr
, "lang_id", r
->lang_id
);
16925 ndr_print_uint16(ndr
, "unused", r
->unused
);
16929 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16931 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
16934 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
16936 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16938 uint32_t _flags_save_UNION
= ndr
->flags
;
16939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16940 if (ndr_flags
& NDR_SCALARS
) {
16941 int level
= ndr_push_get_switch_value(ndr
, r
);
16942 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16945 NDR_CHECK(ndr_push_align(ndr
, 5));
16946 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16947 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16951 NDR_CHECK(ndr_push_align(ndr
, 5));
16952 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16953 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16961 if (ndr_flags
& NDR_BUFFERS
) {
16962 int level
= ndr_push_get_switch_value(ndr
, r
);
16963 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16966 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16970 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16978 ndr
->flags
= _flags_save_UNION
;
16980 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16981 return NDR_ERR_SUCCESS
;
16984 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
16986 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16989 uint32_t _flags_save_UNION
= ndr
->flags
;
16990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16991 level
= ndr_pull_get_switch_value(ndr
, r
);
16992 if (ndr_flags
& NDR_SCALARS
) {
16993 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16996 NDR_CHECK(ndr_pull_align(ndr
, 5));
16997 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16998 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17002 NDR_CHECK(ndr_pull_align(ndr
, 5));
17003 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17004 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17012 if (ndr_flags
& NDR_BUFFERS
) {
17013 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17016 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17020 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17028 ndr
->flags
= _flags_save_UNION
;
17030 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17031 return NDR_ERR_SUCCESS
;
17034 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
17038 uint32_t _flags_save_UNION
= ndr
->flags
;
17039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17040 level
= ndr_print_get_switch_value(ndr
, r
);
17041 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
17044 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
17048 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
17055 ndr
->flags
= _flags_save_UNION
;
17059 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
17061 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
17062 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
17065 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
17067 if (ndr_flags
& NDR_SCALARS
) {
17068 NDR_CHECK(ndr_push_align(ndr
, 5));
17069 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
17070 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
17071 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17072 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17073 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17075 if (ndr_flags
& NDR_BUFFERS
) {
17076 if (r
->form_name
) {
17077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17079 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17083 return NDR_ERR_SUCCESS
;
17086 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
17088 uint32_t _ptr_form_name
;
17089 TALLOC_CTX
*_mem_save_form_name_0
;
17090 if (ndr_flags
& NDR_SCALARS
) {
17091 NDR_CHECK(ndr_pull_align(ndr
, 5));
17092 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17093 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
17094 if (_ptr_form_name
) {
17095 NDR_PULL_ALLOC(ndr
, r
->form_name
);
17097 r
->form_name
= NULL
;
17099 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17100 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17101 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17103 if (ndr_flags
& NDR_BUFFERS
) {
17104 if (r
->form_name
) {
17105 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17106 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
17107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
17108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
17109 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
17110 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
));
17112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
17113 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
17114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
17117 return NDR_ERR_SUCCESS
;
17120 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
17122 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
17124 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
17125 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
17127 if (r
->form_name
) {
17128 ndr_print_string(ndr
, "form_name", r
->form_name
);
17131 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
17132 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
17136 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
17138 if (ndr_flags
& NDR_SCALARS
) {
17139 NDR_CHECK(ndr_push_align(ndr
, 5));
17140 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
17141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
17142 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17143 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17144 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
17145 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
17146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
17147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
17148 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
17149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
17150 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17152 if (ndr_flags
& NDR_BUFFERS
) {
17153 if (r
->form_name
) {
17154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17157 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
17161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
17163 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
17166 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
17167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
17169 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17171 if (r
->display_name
) {
17172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
17173 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17174 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
17175 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17178 return NDR_ERR_SUCCESS
;
17181 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
17183 uint32_t _ptr_form_name
;
17184 TALLOC_CTX
*_mem_save_form_name_0
;
17185 uint32_t _ptr_keyword
;
17186 TALLOC_CTX
*_mem_save_keyword_0
;
17187 uint32_t _ptr_mui_dll
;
17188 TALLOC_CTX
*_mem_save_mui_dll_0
;
17189 uint32_t _ptr_display_name
;
17190 TALLOC_CTX
*_mem_save_display_name_0
;
17191 if (ndr_flags
& NDR_SCALARS
) {
17192 NDR_CHECK(ndr_pull_align(ndr
, 5));
17193 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17194 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
17195 if (_ptr_form_name
) {
17196 NDR_PULL_ALLOC(ndr
, r
->form_name
);
17198 r
->form_name
= NULL
;
17200 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17201 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
17203 if (_ptr_keyword
) {
17204 NDR_PULL_ALLOC(ndr
, r
->keyword
);
17208 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
17209 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
17210 if (_ptr_mui_dll
) {
17211 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
17215 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
17216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
17217 if (_ptr_display_name
) {
17218 NDR_PULL_ALLOC(ndr
, r
->display_name
);
17220 r
->display_name
= NULL
;
17222 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
17223 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17225 if (ndr_flags
& NDR_BUFFERS
) {
17226 if (r
->form_name
) {
17227 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17228 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
17229 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
17230 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
17231 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
17232 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
));
17234 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
17235 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
17236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
17239 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17240 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
17241 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
17242 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
17243 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
17244 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
));
17246 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
17247 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
17248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
17251 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17252 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
17253 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
17254 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
17255 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
17256 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
));
17258 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
17259 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
17260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
17262 if (r
->display_name
) {
17263 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17264 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
17265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
17266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
17267 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
17268 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
));
17270 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
17271 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
17272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
17275 return NDR_ERR_SUCCESS
;
17278 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
17280 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
17282 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
17283 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
17285 if (r
->form_name
) {
17286 ndr_print_string(ndr
, "form_name", r
->form_name
);
17289 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
17290 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
17291 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
17294 ndr_print_string(ndr
, "keyword", r
->keyword
);
17297 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
17298 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
17301 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
17304 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
17305 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
17307 if (r
->display_name
) {
17308 ndr_print_string(ndr
, "display_name", r
->display_name
);
17311 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
17315 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
17317 if (ndr_flags
& NDR_SCALARS
) {
17318 int level
= ndr_push_get_switch_value(ndr
, r
);
17319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17320 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17323 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
17327 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
17331 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17334 if (ndr_flags
& NDR_BUFFERS
) {
17335 int level
= ndr_push_get_switch_value(ndr
, r
);
17339 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17345 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17350 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17353 return NDR_ERR_SUCCESS
;
17356 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
17360 TALLOC_CTX
*_mem_save_info1_0
;
17361 TALLOC_CTX
*_mem_save_info2_0
;
17362 level
= ndr_pull_get_switch_value(ndr
, r
);
17363 if (ndr_flags
& NDR_SCALARS
) {
17364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17365 if (_level
!= level
) {
17366 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
17368 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17371 uint32_t _ptr_info1
;
17372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
17374 NDR_PULL_ALLOC(ndr
, r
->info1
);
17381 uint32_t _ptr_info2
;
17382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
17384 NDR_PULL_ALLOC(ndr
, r
->info2
);
17391 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17394 if (ndr_flags
& NDR_BUFFERS
) {
17398 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17399 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
17400 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
17407 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17408 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
17409 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
17415 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17418 return NDR_ERR_SUCCESS
;
17421 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
17424 level
= ndr_print_get_switch_value(ndr
, r
);
17425 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
17428 ndr_print_ptr(ndr
, "info1", r
->info1
);
17431 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
17437 ndr_print_ptr(ndr
, "info2", r
->info2
);
17440 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
17446 ndr_print_bad_level(ndr
, name
, level
);
17450 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
17452 if (ndr_flags
& NDR_SCALARS
) {
17453 NDR_CHECK(ndr_push_align(ndr
, 5));
17455 uint32_t _flags_save_string
= ndr
->flags
;
17456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17457 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17458 ndr
->flags
= _flags_save_string
;
17460 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17462 if (ndr_flags
& NDR_BUFFERS
) {
17464 uint32_t _flags_save_string
= ndr
->flags
;
17465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17466 if (r
->port_name
) {
17467 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17468 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17469 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17471 ndr
->flags
= _flags_save_string
;
17474 return NDR_ERR_SUCCESS
;
17477 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
17479 uint32_t _ptr_port_name
;
17480 TALLOC_CTX
*_mem_save_port_name_0
;
17481 if (ndr_flags
& NDR_SCALARS
) {
17482 NDR_CHECK(ndr_pull_align(ndr
, 5));
17484 uint32_t _flags_save_string
= ndr
->flags
;
17485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17487 if (_ptr_port_name
) {
17488 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17489 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17491 r
->port_name
= NULL
;
17493 ndr
->flags
= _flags_save_string
;
17495 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17497 if (ndr_flags
& NDR_BUFFERS
) {
17499 uint32_t _flags_save_string
= ndr
->flags
;
17500 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17501 if (r
->port_name
) {
17502 uint32_t _relative_save_offset
;
17503 _relative_save_offset
= ndr
->offset
;
17504 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17505 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17506 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17507 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17509 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17510 ndr
->relative_highest_offset
= ndr
->offset
;
17512 ndr
->offset
= _relative_save_offset
;
17514 ndr
->flags
= _flags_save_string
;
17517 return NDR_ERR_SUCCESS
;
17520 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
17522 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
17524 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17526 if (r
->port_name
) {
17527 ndr_print_string(ndr
, "port_name", r
->port_name
);
17533 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17535 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
17538 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17541 return NDR_ERR_SUCCESS
;
17544 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17547 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17549 return NDR_ERR_SUCCESS
;
17552 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17554 ndr_print_uint32(ndr
, name
, r
);
17556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
17557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
17558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
17559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
17563 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
17565 if (ndr_flags
& NDR_SCALARS
) {
17566 NDR_CHECK(ndr_push_align(ndr
, 5));
17568 uint32_t _flags_save_string
= ndr
->flags
;
17569 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17570 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17571 ndr
->flags
= _flags_save_string
;
17574 uint32_t _flags_save_string
= ndr
->flags
;
17575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17576 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17577 ndr
->flags
= _flags_save_string
;
17580 uint32_t _flags_save_string
= ndr
->flags
;
17581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17582 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
17583 ndr
->flags
= _flags_save_string
;
17585 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
17586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
17587 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17589 if (ndr_flags
& NDR_BUFFERS
) {
17591 uint32_t _flags_save_string
= ndr
->flags
;
17592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17593 if (r
->port_name
) {
17594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17595 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17598 ndr
->flags
= _flags_save_string
;
17601 uint32_t _flags_save_string
= ndr
->flags
;
17602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17603 if (r
->monitor_name
) {
17604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17605 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17608 ndr
->flags
= _flags_save_string
;
17611 uint32_t _flags_save_string
= ndr
->flags
;
17612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17613 if (r
->description
) {
17614 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
17615 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
17616 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
17618 ndr
->flags
= _flags_save_string
;
17621 return NDR_ERR_SUCCESS
;
17624 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
17626 uint32_t _ptr_port_name
;
17627 TALLOC_CTX
*_mem_save_port_name_0
;
17628 uint32_t _ptr_monitor_name
;
17629 TALLOC_CTX
*_mem_save_monitor_name_0
;
17630 uint32_t _ptr_description
;
17631 TALLOC_CTX
*_mem_save_description_0
;
17632 if (ndr_flags
& NDR_SCALARS
) {
17633 NDR_CHECK(ndr_pull_align(ndr
, 5));
17635 uint32_t _flags_save_string
= ndr
->flags
;
17636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17637 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17638 if (_ptr_port_name
) {
17639 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17640 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17642 r
->port_name
= NULL
;
17644 ndr
->flags
= _flags_save_string
;
17647 uint32_t _flags_save_string
= ndr
->flags
;
17648 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17650 if (_ptr_monitor_name
) {
17651 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17652 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17654 r
->monitor_name
= NULL
;
17656 ndr
->flags
= _flags_save_string
;
17659 uint32_t _flags_save_string
= ndr
->flags
;
17660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17661 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
17662 if (_ptr_description
) {
17663 NDR_PULL_ALLOC(ndr
, r
->description
);
17664 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
17666 r
->description
= NULL
;
17668 ndr
->flags
= _flags_save_string
;
17670 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
17671 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
17672 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17674 if (ndr_flags
& NDR_BUFFERS
) {
17676 uint32_t _flags_save_string
= ndr
->flags
;
17677 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17678 if (r
->port_name
) {
17679 uint32_t _relative_save_offset
;
17680 _relative_save_offset
= ndr
->offset
;
17681 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17682 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17683 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17684 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17686 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17687 ndr
->relative_highest_offset
= ndr
->offset
;
17689 ndr
->offset
= _relative_save_offset
;
17691 ndr
->flags
= _flags_save_string
;
17694 uint32_t _flags_save_string
= ndr
->flags
;
17695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17696 if (r
->monitor_name
) {
17697 uint32_t _relative_save_offset
;
17698 _relative_save_offset
= ndr
->offset
;
17699 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17700 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17701 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17702 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17704 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17705 ndr
->relative_highest_offset
= ndr
->offset
;
17707 ndr
->offset
= _relative_save_offset
;
17709 ndr
->flags
= _flags_save_string
;
17712 uint32_t _flags_save_string
= ndr
->flags
;
17713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17714 if (r
->description
) {
17715 uint32_t _relative_save_offset
;
17716 _relative_save_offset
= ndr
->offset
;
17717 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
17718 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17719 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
17720 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
17721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
17722 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17723 ndr
->relative_highest_offset
= ndr
->offset
;
17725 ndr
->offset
= _relative_save_offset
;
17727 ndr
->flags
= _flags_save_string
;
17730 return NDR_ERR_SUCCESS
;
17733 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
17735 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
17737 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17739 if (r
->port_name
) {
17740 ndr_print_string(ndr
, "port_name", r
->port_name
);
17743 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17745 if (r
->monitor_name
) {
17746 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17749 ndr_print_ptr(ndr
, "description", r
->description
);
17751 if (r
->description
) {
17752 ndr_print_string(ndr
, "description", r
->description
);
17755 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
17756 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
17760 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17762 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
17765 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
17767 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17768 return NDR_ERR_SUCCESS
;
17771 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
17774 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17776 return NDR_ERR_SUCCESS
;
17779 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
17781 const char *val
= NULL
;
17784 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
17785 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
17786 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
17787 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
17788 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17789 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
17790 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
17791 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
17792 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
17793 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
17794 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
17795 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
17796 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
17798 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17801 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
17803 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17804 return NDR_ERR_SUCCESS
;
17807 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
17810 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17812 return NDR_ERR_SUCCESS
;
17815 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
17817 const char *val
= NULL
;
17820 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
17821 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
17822 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
17824 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17827 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
17829 if (ndr_flags
& NDR_SCALARS
) {
17830 NDR_CHECK(ndr_push_align(ndr
, 5));
17831 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
17833 uint32_t _flags_save_string
= ndr
->flags
;
17834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17835 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
17836 ndr
->flags
= _flags_save_string
;
17838 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
17839 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17841 if (ndr_flags
& NDR_BUFFERS
) {
17843 uint32_t _flags_save_string
= ndr
->flags
;
17844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17845 if (r
->status_string
) {
17846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->status_string
));
17847 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
17848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->status_string
));
17850 ndr
->flags
= _flags_save_string
;
17853 return NDR_ERR_SUCCESS
;
17856 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
17858 uint32_t _ptr_status_string
;
17859 TALLOC_CTX
*_mem_save_status_string_0
;
17860 if (ndr_flags
& NDR_SCALARS
) {
17861 NDR_CHECK(ndr_pull_align(ndr
, 5));
17862 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
17864 uint32_t _flags_save_string
= ndr
->flags
;
17865 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17866 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
17867 if (_ptr_status_string
) {
17868 NDR_PULL_ALLOC(ndr
, r
->status_string
);
17869 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
17871 r
->status_string
= NULL
;
17873 ndr
->flags
= _flags_save_string
;
17875 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
17876 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17878 if (ndr_flags
& NDR_BUFFERS
) {
17880 uint32_t _flags_save_string
= ndr
->flags
;
17881 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17882 if (r
->status_string
) {
17883 uint32_t _relative_save_offset
;
17884 _relative_save_offset
= ndr
->offset
;
17885 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
17886 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17887 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
17888 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
17889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
17890 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17891 ndr
->relative_highest_offset
= ndr
->offset
;
17893 ndr
->offset
= _relative_save_offset
;
17895 ndr
->flags
= _flags_save_string
;
17898 return NDR_ERR_SUCCESS
;
17901 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
17903 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
17905 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
17906 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
17908 if (r
->status_string
) {
17909 ndr_print_string(ndr
, "status_string", r
->status_string
);
17912 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
17916 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17918 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
17921 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
17923 if (ndr_flags
& NDR_SCALARS
) {
17924 NDR_CHECK(ndr_push_align(ndr
, 5));
17926 uint32_t _flags_save_string
= ndr
->flags
;
17927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17928 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17929 ndr
->flags
= _flags_save_string
;
17931 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
17932 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17934 if (ndr_flags
& NDR_BUFFERS
) {
17936 uint32_t _flags_save_string
= ndr
->flags
;
17937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17938 if (r
->port_name
) {
17939 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17940 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17943 ndr
->flags
= _flags_save_string
;
17946 return NDR_ERR_SUCCESS
;
17949 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
17951 uint32_t _ptr_port_name
;
17952 TALLOC_CTX
*_mem_save_port_name_0
;
17953 if (ndr_flags
& NDR_SCALARS
) {
17954 NDR_CHECK(ndr_pull_align(ndr
, 5));
17956 uint32_t _flags_save_string
= ndr
->flags
;
17957 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17958 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17959 if (_ptr_port_name
) {
17960 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17961 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17963 r
->port_name
= NULL
;
17965 ndr
->flags
= _flags_save_string
;
17967 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
17968 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17970 if (ndr_flags
& NDR_BUFFERS
) {
17972 uint32_t _flags_save_string
= ndr
->flags
;
17973 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17974 if (r
->port_name
) {
17975 uint32_t _relative_save_offset
;
17976 _relative_save_offset
= ndr
->offset
;
17977 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17978 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17979 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17980 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17982 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17983 ndr
->relative_highest_offset
= ndr
->offset
;
17985 ndr
->offset
= _relative_save_offset
;
17987 ndr
->flags
= _flags_save_string
;
17990 return NDR_ERR_SUCCESS
;
17993 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
17995 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
17997 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17999 if (r
->port_name
) {
18000 ndr_print_string(ndr
, "port_name", r
->port_name
);
18003 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
18007 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18009 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
18012 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
18014 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18016 uint32_t _flags_save_UNION
= ndr
->flags
;
18017 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18018 if (ndr_flags
& NDR_SCALARS
) {
18019 int level
= ndr_push_get_switch_value(ndr
, r
);
18020 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18023 NDR_CHECK(ndr_push_align(ndr
, 5));
18024 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18025 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18029 NDR_CHECK(ndr_push_align(ndr
, 5));
18030 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18031 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18035 NDR_CHECK(ndr_push_align(ndr
, 5));
18036 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18037 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
18041 NDR_CHECK(ndr_push_align(ndr
, 5));
18042 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18043 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
18051 if (ndr_flags
& NDR_BUFFERS
) {
18052 int level
= ndr_push_get_switch_value(ndr
, r
);
18053 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18056 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18060 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18064 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
18068 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
18076 ndr
->flags
= _flags_save_UNION
;
18078 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18079 return NDR_ERR_SUCCESS
;
18082 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
18084 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18087 uint32_t _flags_save_UNION
= ndr
->flags
;
18088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18089 level
= ndr_pull_get_switch_value(ndr
, r
);
18090 if (ndr_flags
& NDR_SCALARS
) {
18091 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18094 NDR_CHECK(ndr_pull_align(ndr
, 5));
18095 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18096 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18100 NDR_CHECK(ndr_pull_align(ndr
, 5));
18101 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18102 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18106 NDR_CHECK(ndr_pull_align(ndr
, 5));
18107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18108 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
18112 NDR_CHECK(ndr_pull_align(ndr
, 5));
18113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18114 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
18122 if (ndr_flags
& NDR_BUFFERS
) {
18123 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18126 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18130 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18134 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
18138 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
18146 ndr
->flags
= _flags_save_UNION
;
18148 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18149 return NDR_ERR_SUCCESS
;
18152 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
18156 uint32_t _flags_save_UNION
= ndr
->flags
;
18157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18158 level
= ndr_print_get_switch_value(ndr
, r
);
18159 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
18162 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
18166 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
18170 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
18174 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
18181 ndr
->flags
= _flags_save_UNION
;
18185 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
18187 if (ndr_flags
& NDR_SCALARS
) {
18188 NDR_CHECK(ndr_push_align(ndr
, 5));
18190 uint32_t _flags_save_string
= ndr
->flags
;
18191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
18193 ndr
->flags
= _flags_save_string
;
18195 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18197 if (ndr_flags
& NDR_BUFFERS
) {
18199 uint32_t _flags_save_string
= ndr
->flags
;
18200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18201 if (r
->monitor_name
) {
18202 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
18203 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
18204 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
18206 ndr
->flags
= _flags_save_string
;
18209 return NDR_ERR_SUCCESS
;
18212 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
18214 uint32_t _ptr_monitor_name
;
18215 TALLOC_CTX
*_mem_save_monitor_name_0
;
18216 if (ndr_flags
& NDR_SCALARS
) {
18217 NDR_CHECK(ndr_pull_align(ndr
, 5));
18219 uint32_t _flags_save_string
= ndr
->flags
;
18220 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
18222 if (_ptr_monitor_name
) {
18223 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
18224 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
18226 r
->monitor_name
= NULL
;
18228 ndr
->flags
= _flags_save_string
;
18230 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18232 if (ndr_flags
& NDR_BUFFERS
) {
18234 uint32_t _flags_save_string
= ndr
->flags
;
18235 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18236 if (r
->monitor_name
) {
18237 uint32_t _relative_save_offset
;
18238 _relative_save_offset
= ndr
->offset
;
18239 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
18240 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18241 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
18242 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
18243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
18244 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18245 ndr
->relative_highest_offset
= ndr
->offset
;
18247 ndr
->offset
= _relative_save_offset
;
18249 ndr
->flags
= _flags_save_string
;
18252 return NDR_ERR_SUCCESS
;
18255 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
18257 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
18259 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
18261 if (r
->monitor_name
) {
18262 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
18268 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18270 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
18273 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
18275 if (ndr_flags
& NDR_SCALARS
) {
18276 NDR_CHECK(ndr_push_align(ndr
, 5));
18278 uint32_t _flags_save_string
= ndr
->flags
;
18279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18280 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
18281 ndr
->flags
= _flags_save_string
;
18284 uint32_t _flags_save_string
= ndr
->flags
;
18285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18286 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
18287 ndr
->flags
= _flags_save_string
;
18290 uint32_t _flags_save_string
= ndr
->flags
;
18291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18292 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
18293 ndr
->flags
= _flags_save_string
;
18295 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18297 if (ndr_flags
& NDR_BUFFERS
) {
18299 uint32_t _flags_save_string
= ndr
->flags
;
18300 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18301 if (r
->monitor_name
) {
18302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
18303 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
18304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
18306 ndr
->flags
= _flags_save_string
;
18309 uint32_t _flags_save_string
= ndr
->flags
;
18310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18311 if (r
->environment
) {
18312 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->environment
));
18313 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
18314 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->environment
));
18316 ndr
->flags
= _flags_save_string
;
18319 uint32_t _flags_save_string
= ndr
->flags
;
18320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18322 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dll_name
));
18323 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18324 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dll_name
));
18326 ndr
->flags
= _flags_save_string
;
18329 return NDR_ERR_SUCCESS
;
18332 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
18334 uint32_t _ptr_monitor_name
;
18335 TALLOC_CTX
*_mem_save_monitor_name_0
;
18336 uint32_t _ptr_environment
;
18337 TALLOC_CTX
*_mem_save_environment_0
;
18338 uint32_t _ptr_dll_name
;
18339 TALLOC_CTX
*_mem_save_dll_name_0
;
18340 if (ndr_flags
& NDR_SCALARS
) {
18341 NDR_CHECK(ndr_pull_align(ndr
, 5));
18343 uint32_t _flags_save_string
= ndr
->flags
;
18344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
18346 if (_ptr_monitor_name
) {
18347 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
18348 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
18350 r
->monitor_name
= NULL
;
18352 ndr
->flags
= _flags_save_string
;
18355 uint32_t _flags_save_string
= ndr
->flags
;
18356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18358 if (_ptr_environment
) {
18359 NDR_PULL_ALLOC(ndr
, r
->environment
);
18360 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
18362 r
->environment
= NULL
;
18364 ndr
->flags
= _flags_save_string
;
18367 uint32_t _flags_save_string
= ndr
->flags
;
18368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
18370 if (_ptr_dll_name
) {
18371 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
18372 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
18374 r
->dll_name
= NULL
;
18376 ndr
->flags
= _flags_save_string
;
18378 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18380 if (ndr_flags
& NDR_BUFFERS
) {
18382 uint32_t _flags_save_string
= ndr
->flags
;
18383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18384 if (r
->monitor_name
) {
18385 uint32_t _relative_save_offset
;
18386 _relative_save_offset
= ndr
->offset
;
18387 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
18388 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18389 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
18390 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
18391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
18392 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18393 ndr
->relative_highest_offset
= ndr
->offset
;
18395 ndr
->offset
= _relative_save_offset
;
18397 ndr
->flags
= _flags_save_string
;
18400 uint32_t _flags_save_string
= ndr
->flags
;
18401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18402 if (r
->environment
) {
18403 uint32_t _relative_save_offset
;
18404 _relative_save_offset
= ndr
->offset
;
18405 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
18406 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18407 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
18408 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
18409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18410 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18411 ndr
->relative_highest_offset
= ndr
->offset
;
18413 ndr
->offset
= _relative_save_offset
;
18415 ndr
->flags
= _flags_save_string
;
18418 uint32_t _flags_save_string
= ndr
->flags
;
18419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18421 uint32_t _relative_save_offset
;
18422 _relative_save_offset
= ndr
->offset
;
18423 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
18424 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18425 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
18426 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
18428 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18429 ndr
->relative_highest_offset
= ndr
->offset
;
18431 ndr
->offset
= _relative_save_offset
;
18433 ndr
->flags
= _flags_save_string
;
18436 return NDR_ERR_SUCCESS
;
18439 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
18441 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
18443 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
18445 if (r
->monitor_name
) {
18446 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
18449 ndr_print_ptr(ndr
, "environment", r
->environment
);
18451 if (r
->environment
) {
18452 ndr_print_string(ndr
, "environment", r
->environment
);
18455 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
18458 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18464 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18466 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
18469 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
18471 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18473 uint32_t _flags_save_UNION
= ndr
->flags
;
18474 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18475 if (ndr_flags
& NDR_SCALARS
) {
18476 int level
= ndr_push_get_switch_value(ndr
, r
);
18477 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18480 NDR_CHECK(ndr_push_align(ndr
, 5));
18481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18482 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18486 NDR_CHECK(ndr_push_align(ndr
, 5));
18487 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18488 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18496 if (ndr_flags
& NDR_BUFFERS
) {
18497 int level
= ndr_push_get_switch_value(ndr
, r
);
18498 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18501 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18505 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18513 ndr
->flags
= _flags_save_UNION
;
18515 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18516 return NDR_ERR_SUCCESS
;
18519 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
18521 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18524 uint32_t _flags_save_UNION
= ndr
->flags
;
18525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18526 level
= ndr_pull_get_switch_value(ndr
, r
);
18527 if (ndr_flags
& NDR_SCALARS
) {
18528 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18531 NDR_CHECK(ndr_pull_align(ndr
, 5));
18532 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18533 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18537 NDR_CHECK(ndr_pull_align(ndr
, 5));
18538 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18539 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18547 if (ndr_flags
& NDR_BUFFERS
) {
18548 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18551 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18555 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18563 ndr
->flags
= _flags_save_UNION
;
18565 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18566 return NDR_ERR_SUCCESS
;
18569 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
18573 uint32_t _flags_save_UNION
= ndr
->flags
;
18574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18575 level
= ndr_print_get_switch_value(ndr
, r
);
18576 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
18579 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
18583 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
18590 ndr
->flags
= _flags_save_UNION
;
18594 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18596 if (ndr_flags
& NDR_SCALARS
) {
18597 NDR_CHECK(ndr_push_align(ndr
, 5));
18599 uint32_t _flags_save_string
= ndr
->flags
;
18600 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18601 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
18602 ndr
->flags
= _flags_save_string
;
18604 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18606 if (ndr_flags
& NDR_BUFFERS
) {
18608 uint32_t _flags_save_string
= ndr
->flags
;
18609 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18610 if (r
->name_array
) {
18611 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name_array
));
18612 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
18613 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name_array
));
18615 ndr
->flags
= _flags_save_string
;
18618 return NDR_ERR_SUCCESS
;
18621 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
18623 uint32_t _ptr_name_array
;
18624 TALLOC_CTX
*_mem_save_name_array_0
;
18625 if (ndr_flags
& NDR_SCALARS
) {
18626 NDR_CHECK(ndr_pull_align(ndr
, 5));
18628 uint32_t _flags_save_string
= ndr
->flags
;
18629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
18631 if (_ptr_name_array
) {
18632 NDR_PULL_ALLOC(ndr
, r
->name_array
);
18633 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
18635 r
->name_array
= NULL
;
18637 ndr
->flags
= _flags_save_string
;
18639 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18641 if (ndr_flags
& NDR_BUFFERS
) {
18643 uint32_t _flags_save_string
= ndr
->flags
;
18644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18645 if (r
->name_array
) {
18646 uint32_t _relative_save_offset
;
18647 _relative_save_offset
= ndr
->offset
;
18648 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
18649 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18650 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
18651 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
18652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
18653 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18654 ndr
->relative_highest_offset
= ndr
->offset
;
18656 ndr
->offset
= _relative_save_offset
;
18658 ndr
->flags
= _flags_save_string
;
18661 return NDR_ERR_SUCCESS
;
18664 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18666 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
18668 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
18670 if (r
->name_array
) {
18671 ndr_print_string(ndr
, "name_array", r
->name_array
);
18677 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18679 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
18682 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
18684 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18686 uint32_t _flags_save_UNION
= ndr
->flags
;
18687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18688 if (ndr_flags
& NDR_SCALARS
) {
18689 int level
= ndr_push_get_switch_value(ndr
, r
);
18690 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18693 NDR_CHECK(ndr_push_align(ndr
, 5));
18694 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18695 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18703 if (ndr_flags
& NDR_BUFFERS
) {
18704 int level
= ndr_push_get_switch_value(ndr
, r
);
18705 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18708 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18716 ndr
->flags
= _flags_save_UNION
;
18718 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18719 return NDR_ERR_SUCCESS
;
18722 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
18724 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18727 uint32_t _flags_save_UNION
= ndr
->flags
;
18728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18729 level
= ndr_pull_get_switch_value(ndr
, r
);
18730 if (ndr_flags
& NDR_SCALARS
) {
18731 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18734 NDR_CHECK(ndr_pull_align(ndr
, 5));
18735 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18736 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18744 if (ndr_flags
& NDR_BUFFERS
) {
18745 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18748 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18756 ndr
->flags
= _flags_save_UNION
;
18758 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18759 return NDR_ERR_SUCCESS
;
18762 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
18766 uint32_t _flags_save_UNION
= ndr
->flags
;
18767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18768 level
= ndr_print_get_switch_value(ndr
, r
);
18769 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
18772 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
18779 ndr
->flags
= _flags_save_UNION
;
18783 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18786 return NDR_ERR_SUCCESS
;
18789 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18794 return NDR_ERR_SUCCESS
;
18797 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18799 ndr_print_uint32(ndr
, name
, r
);
18801 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
18802 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
18803 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
18804 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
18805 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
18806 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
18807 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
18808 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
18809 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
18810 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
18811 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
18812 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
18813 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
18814 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
18815 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
18816 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
18817 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
18818 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
18819 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
18820 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
18821 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
18825 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
18827 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18828 return NDR_ERR_SUCCESS
;
18831 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
18834 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18836 return NDR_ERR_SUCCESS
;
18839 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
18841 const char *val
= NULL
;
18844 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18845 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18846 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18847 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
18848 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18849 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
18850 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18851 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18852 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18853 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
18854 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
18855 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18856 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18857 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18858 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
18859 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
18860 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18861 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
18862 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18863 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
18864 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18865 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18866 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18867 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18869 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18872 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
18874 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18875 return NDR_ERR_SUCCESS
;
18878 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
18881 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18883 return NDR_ERR_SUCCESS
;
18886 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
18888 const char *val
= NULL
;
18891 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18892 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18893 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18894 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18895 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18896 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18897 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18898 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18899 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18900 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18901 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18902 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18903 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18904 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18905 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18906 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18907 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18908 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18909 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
18910 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18911 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18912 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18913 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18914 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18915 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18916 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18917 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18918 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18920 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18923 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
18925 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18926 return NDR_ERR_SUCCESS
;
18929 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
18932 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18934 return NDR_ERR_SUCCESS
;
18937 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
18939 const char *val
= NULL
;
18942 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
18943 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
18945 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18948 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
18950 if (ndr_flags
& NDR_SCALARS
) {
18951 int level
= ndr_push_get_switch_value(ndr
, r
);
18952 NDR_CHECK(ndr_push_union_align(ndr
, 2));
18954 case PRINTER_NOTIFY_TYPE
: {
18955 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18958 case JOB_NOTIFY_TYPE
: {
18959 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18963 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18968 if (ndr_flags
& NDR_BUFFERS
) {
18969 int level
= ndr_push_get_switch_value(ndr
, r
);
18971 case PRINTER_NOTIFY_TYPE
:
18974 case JOB_NOTIFY_TYPE
:
18982 return NDR_ERR_SUCCESS
;
18985 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
18988 level
= ndr_pull_get_switch_value(ndr
, r
);
18989 if (ndr_flags
& NDR_SCALARS
) {
18990 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
18992 case PRINTER_NOTIFY_TYPE
: {
18993 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18996 case JOB_NOTIFY_TYPE
: {
18997 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
19001 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
19006 if (ndr_flags
& NDR_BUFFERS
) {
19008 case PRINTER_NOTIFY_TYPE
:
19011 case JOB_NOTIFY_TYPE
:
19019 return NDR_ERR_SUCCESS
;
19022 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
19024 uint32_t cntr_fields_1
;
19025 if (ndr_flags
& NDR_SCALARS
) {
19026 NDR_CHECK(ndr_push_align(ndr
, 5));
19027 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
19028 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
19029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
19030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
19031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
19033 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19035 if (ndr_flags
& NDR_BUFFERS
) {
19037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19038 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
19039 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
19040 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
19044 return NDR_ERR_SUCCESS
;
19047 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
19049 uint32_t _ptr_fields
;
19050 uint32_t cntr_fields_1
;
19051 TALLOC_CTX
*_mem_save_fields_0
;
19052 TALLOC_CTX
*_mem_save_fields_1
;
19053 if (ndr_flags
& NDR_SCALARS
) {
19054 NDR_CHECK(ndr_pull_align(ndr
, 5));
19055 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
19056 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
19057 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
19058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
19059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
19062 NDR_PULL_ALLOC(ndr
, r
->fields
);
19066 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19068 if (ndr_flags
& NDR_BUFFERS
) {
19070 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19071 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
19072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
19073 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
19074 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
19075 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
19076 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
19077 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
19078 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
19080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
19081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
19084 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
19087 return NDR_ERR_SUCCESS
;
19090 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
19092 uint32_t cntr_fields_1
;
19093 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
19095 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
19096 ndr_print_uint16(ndr
, "u1", r
->u1
);
19097 ndr_print_uint32(ndr
, "u2", r
->u2
);
19098 ndr_print_uint32(ndr
, "u3", r
->u3
);
19099 ndr_print_uint32(ndr
, "count", r
->count
);
19100 ndr_print_ptr(ndr
, "fields", r
->fields
);
19103 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
19105 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
19107 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
19108 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
19109 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
19119 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19122 return NDR_ERR_SUCCESS
;
19125 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19130 return NDR_ERR_SUCCESS
;
19133 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19135 ndr_print_uint32(ndr
, name
, r
);
19137 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
19141 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
19143 uint32_t cntr_types_1
;
19144 if (ndr_flags
& NDR_SCALARS
) {
19145 NDR_CHECK(ndr_push_align(ndr
, 5));
19146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
19147 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
19148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19149 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
19150 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19152 if (ndr_flags
& NDR_BUFFERS
) {
19154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19155 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19156 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
19158 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19159 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
19163 return NDR_ERR_SUCCESS
;
19166 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
19168 uint32_t _ptr_types
;
19169 uint32_t cntr_types_1
;
19170 TALLOC_CTX
*_mem_save_types_0
;
19171 TALLOC_CTX
*_mem_save_types_1
;
19172 if (ndr_flags
& NDR_SCALARS
) {
19173 NDR_CHECK(ndr_pull_align(ndr
, 5));
19174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19175 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
19176 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
19179 NDR_PULL_ALLOC(ndr
, r
->types
);
19183 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19185 if (ndr_flags
& NDR_BUFFERS
) {
19187 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19188 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
19189 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
19190 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
19191 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
19192 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
19193 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19194 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
19196 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19197 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
19199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
19200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
19203 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
19206 return NDR_ERR_SUCCESS
;
19209 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
19211 uint32_t cntr_types_1
;
19212 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
19214 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
19215 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
19216 ndr_print_uint32(ndr
, "count", r
->count
);
19217 ndr_print_ptr(ndr
, "types", r
->types
);
19220 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
19222 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
19224 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
19225 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
19235 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
19237 if (ndr_flags
& NDR_SCALARS
) {
19238 NDR_CHECK(ndr_push_align(ndr
, 5));
19239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19240 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
19241 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19243 if (ndr_flags
& NDR_BUFFERS
) {
19245 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
19246 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
19249 return NDR_ERR_SUCCESS
;
19252 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
19254 uint32_t _ptr_string
;
19255 TALLOC_CTX
*_mem_save_string_0
;
19256 if (ndr_flags
& NDR_SCALARS
) {
19257 NDR_CHECK(ndr_pull_align(ndr
, 5));
19258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19259 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
19261 NDR_PULL_ALLOC(ndr
, r
->string
);
19265 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19267 if (ndr_flags
& NDR_BUFFERS
) {
19269 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19270 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
19271 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
19272 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
19273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
19276 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
19279 return NDR_ERR_SUCCESS
;
19282 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
19284 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
19286 ndr_print_uint32(ndr
, "size", r
->size
);
19287 ndr_print_ptr(ndr
, "string", r
->string
);
19290 ndr_print_string(ndr
, "string", r
->string
);
19296 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
19298 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
19299 return NDR_ERR_SUCCESS
;
19302 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
19305 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
19307 return NDR_ERR_SUCCESS
;
19310 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
19312 const char *val
= NULL
;
19315 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
19316 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
19317 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
19318 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
19319 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19321 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19324 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
19326 if (ndr_flags
& NDR_SCALARS
) {
19327 int level
= ndr_push_get_switch_value(ndr
, r
);
19328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19329 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19332 uint32_t cntr_integer_0
;
19333 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
19334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
19339 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19343 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19347 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19351 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19355 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19358 if (ndr_flags
& NDR_BUFFERS
) {
19359 int level
= ndr_push_get_switch_value(ndr
, r
);
19365 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19369 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19373 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19377 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19381 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19384 return NDR_ERR_SUCCESS
;
19387 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
19391 level
= ndr_pull_get_switch_value(ndr
, r
);
19392 if (ndr_flags
& NDR_SCALARS
) {
19393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19394 if (_level
!= level
) {
19395 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19397 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19400 uint32_t cntr_integer_0
;
19401 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
19402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
19407 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19411 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19415 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19419 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19423 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19426 if (ndr_flags
& NDR_BUFFERS
) {
19432 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19436 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19440 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19444 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19448 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19451 return NDR_ERR_SUCCESS
;
19454 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
19457 uint32_t cntr_integer_0
;
19458 level
= ndr_print_get_switch_value(ndr
, r
);
19459 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
19462 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
19464 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
19466 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
19467 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
19475 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
19479 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
19483 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
19487 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
19491 ndr_print_bad_level(ndr
, name
, level
);
19495 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
19497 if (ndr_flags
& NDR_SCALARS
) {
19498 NDR_CHECK(ndr_push_align(ndr
, 5));
19499 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
19500 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
19501 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19502 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
19503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
19504 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19505 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19506 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19508 if (ndr_flags
& NDR_BUFFERS
) {
19509 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19511 return NDR_ERR_SUCCESS
;
19514 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
19516 if (ndr_flags
& NDR_SCALARS
) {
19517 NDR_CHECK(ndr_pull_align(ndr
, 5));
19518 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
19519 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
19520 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19521 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
19522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
19523 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19524 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19525 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19527 if (ndr_flags
& NDR_BUFFERS
) {
19528 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19530 return NDR_ERR_SUCCESS
;
19533 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
19535 ndr_print_struct(ndr
, name
, "spoolss_Notify");
19537 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
19538 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
19539 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
19540 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
19541 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
19542 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
19543 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
19547 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
19549 uint32_t cntr_notifies_0
;
19550 if (ndr_flags
& NDR_SCALARS
) {
19551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19552 NDR_CHECK(ndr_push_align(ndr
, 5));
19553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
19554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19556 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19557 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19559 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19561 if (ndr_flags
& NDR_BUFFERS
) {
19562 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19563 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19566 return NDR_ERR_SUCCESS
;
19569 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
19571 uint32_t cntr_notifies_0
;
19572 TALLOC_CTX
*_mem_save_notifies_0
;
19573 if (ndr_flags
& NDR_SCALARS
) {
19574 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
19575 NDR_CHECK(ndr_pull_align(ndr
, 5));
19576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19577 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19579 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
19580 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19581 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19582 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19583 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19587 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
19589 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19591 if (ndr_flags
& NDR_BUFFERS
) {
19592 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19593 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19594 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19595 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19599 return NDR_ERR_SUCCESS
;
19602 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
19604 uint32_t cntr_notifies_0
;
19605 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
19607 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
19608 ndr_print_uint32(ndr
, "flags", r
->flags
);
19609 ndr_print_uint32(ndr
, "count", r
->count
);
19610 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
19612 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
19614 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
19615 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
19623 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
19625 if (ndr_flags
& NDR_SCALARS
) {
19626 int level
= ndr_push_get_switch_value(ndr
, r
);
19627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19628 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
19635 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19638 if (ndr_flags
& NDR_BUFFERS
) {
19639 int level
= ndr_push_get_switch_value(ndr
, r
);
19643 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19648 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19651 return NDR_ERR_SUCCESS
;
19654 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
19658 TALLOC_CTX
*_mem_save_info0_0
;
19659 level
= ndr_pull_get_switch_value(ndr
, r
);
19660 if (ndr_flags
& NDR_SCALARS
) {
19661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19662 if (_level
!= level
) {
19663 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19665 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19668 uint32_t _ptr_info0
;
19669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
19671 NDR_PULL_ALLOC(ndr
, r
->info0
);
19678 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19681 if (ndr_flags
& NDR_BUFFERS
) {
19685 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19686 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
19687 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
19693 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19696 return NDR_ERR_SUCCESS
;
19699 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
19702 level
= ndr_print_get_switch_value(ndr
, r
);
19703 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
19706 ndr_print_ptr(ndr
, "info0", r
->info0
);
19709 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
19715 ndr_print_bad_level(ndr
, name
, level
);
19719 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19722 return NDR_ERR_SUCCESS
;
19725 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19730 return NDR_ERR_SUCCESS
;
19733 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19735 ndr_print_uint32(ndr
, name
, r
);
19737 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
19738 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
19739 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
19743 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
19745 if (ndr_flags
& NDR_SCALARS
) {
19746 NDR_CHECK(ndr_push_align(ndr
, 5));
19747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19751 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19752 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19753 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19754 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19756 if (ndr_flags
& NDR_BUFFERS
) {
19758 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19759 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19760 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19761 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19764 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19765 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19766 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19767 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19770 return NDR_ERR_SUCCESS
;
19773 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
19775 uint32_t _ptr_client
;
19776 TALLOC_CTX
*_mem_save_client_0
;
19777 uint32_t _ptr_user
;
19778 TALLOC_CTX
*_mem_save_user_0
;
19779 if (ndr_flags
& NDR_SCALARS
) {
19780 NDR_CHECK(ndr_pull_align(ndr
, 5));
19781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19784 NDR_PULL_ALLOC(ndr
, r
->client
);
19788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19790 NDR_PULL_ALLOC(ndr
, r
->user
);
19794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19795 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19796 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19797 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19798 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19800 if (ndr_flags
& NDR_BUFFERS
) {
19802 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19803 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19804 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19805 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19806 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
19807 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
));
19809 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
19810 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
19811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19814 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19815 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19818 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
19819 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
));
19821 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
19822 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
19823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19826 return NDR_ERR_SUCCESS
;
19829 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
19831 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
19833 ndr_print_uint32(ndr
, "size", r
->size
);
19834 ndr_print_ptr(ndr
, "client", r
->client
);
19837 ndr_print_string(ndr
, "client", r
->client
);
19840 ndr_print_ptr(ndr
, "user", r
->user
);
19843 ndr_print_string(ndr
, "user", r
->user
);
19846 ndr_print_uint32(ndr
, "build", r
->build
);
19847 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19848 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19849 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19853 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
19855 if (ndr_flags
& NDR_SCALARS
) {
19856 NDR_CHECK(ndr_push_align(ndr
, 4));
19857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
19858 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19860 if (ndr_flags
& NDR_BUFFERS
) {
19862 return NDR_ERR_SUCCESS
;
19865 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
19867 if (ndr_flags
& NDR_SCALARS
) {
19868 NDR_CHECK(ndr_pull_align(ndr
, 4));
19869 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
19870 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19872 if (ndr_flags
& NDR_BUFFERS
) {
19874 return NDR_ERR_SUCCESS
;
19877 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
19879 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
19881 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
19885 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
19887 if (ndr_flags
& NDR_SCALARS
) {
19888 NDR_CHECK(ndr_push_align(ndr
, 5));
19889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
19892 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19893 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19895 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19896 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19897 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19898 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
19899 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19901 if (ndr_flags
& NDR_BUFFERS
) {
19903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19904 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19905 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19909 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19910 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19911 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19912 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19915 return NDR_ERR_SUCCESS
;
19918 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
19920 uint32_t _ptr_client
;
19921 TALLOC_CTX
*_mem_save_client_0
;
19922 uint32_t _ptr_user
;
19923 TALLOC_CTX
*_mem_save_user_0
;
19924 if (ndr_flags
& NDR_SCALARS
) {
19925 NDR_CHECK(ndr_pull_align(ndr
, 5));
19926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19927 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
19929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19931 NDR_PULL_ALLOC(ndr
, r
->client
);
19935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19937 NDR_PULL_ALLOC(ndr
, r
->user
);
19941 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19942 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19943 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19944 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19945 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
19946 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19948 if (ndr_flags
& NDR_BUFFERS
) {
19950 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19951 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19952 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19953 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19954 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
19955 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
));
19957 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
19958 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
19959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19962 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19963 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19964 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19965 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19966 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
19967 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
));
19969 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
19970 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
19971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19974 return NDR_ERR_SUCCESS
;
19977 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
19979 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
19981 ndr_print_uint32(ndr
, "size", r
->size
);
19982 ndr_print_uint32(ndr
, "flags", r
->flags
);
19983 ndr_print_uint32(ndr
, "size2", r
->size2
);
19984 ndr_print_ptr(ndr
, "client", r
->client
);
19987 ndr_print_string(ndr
, "client", r
->client
);
19990 ndr_print_ptr(ndr
, "user", r
->user
);
19993 ndr_print_string(ndr
, "user", r
->user
);
19996 ndr_print_uint32(ndr
, "build", r
->build
);
19997 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19998 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19999 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
20000 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
20004 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
20006 if (ndr_flags
& NDR_SCALARS
) {
20007 int level
= ndr_push_get_switch_value(ndr
, r
);
20008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
20009 NDR_CHECK(ndr_push_union_align(ndr
, 5));
20012 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
20016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
20020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
20024 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20027 if (ndr_flags
& NDR_BUFFERS
) {
20028 int level
= ndr_push_get_switch_value(ndr
, r
);
20032 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
20038 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
20044 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
20049 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20052 return NDR_ERR_SUCCESS
;
20055 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
20059 TALLOC_CTX
*_mem_save_level1_0
;
20060 TALLOC_CTX
*_mem_save_level2_0
;
20061 TALLOC_CTX
*_mem_save_level3_0
;
20062 level
= ndr_pull_get_switch_value(ndr
, r
);
20063 if (ndr_flags
& NDR_SCALARS
) {
20064 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
20065 if (_level
!= level
) {
20066 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
20068 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
20071 uint32_t _ptr_level1
;
20072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
20074 NDR_PULL_ALLOC(ndr
, r
->level1
);
20081 uint32_t _ptr_level2
;
20082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
20084 NDR_PULL_ALLOC(ndr
, r
->level2
);
20091 uint32_t _ptr_level3
;
20092 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
20094 NDR_PULL_ALLOC(ndr
, r
->level3
);
20101 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20104 if (ndr_flags
& NDR_BUFFERS
) {
20108 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20109 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
20110 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
20111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
20117 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20118 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
20119 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
20120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
20126 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20127 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
20128 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
20129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
20134 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20137 return NDR_ERR_SUCCESS
;
20140 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
20143 level
= ndr_print_get_switch_value(ndr
, r
);
20144 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
20147 ndr_print_ptr(ndr
, "level1", r
->level1
);
20150 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
20156 ndr_print_ptr(ndr
, "level2", r
->level2
);
20159 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
20165 ndr_print_ptr(ndr
, "level3", r
->level3
);
20168 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
20174 ndr_print_bad_level(ndr
, name
, level
);
20178 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
20180 if (ndr_flags
& NDR_SCALARS
) {
20181 NDR_CHECK(ndr_push_align(ndr
, 5));
20182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
20183 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
20184 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
20185 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
20187 if (ndr_flags
& NDR_BUFFERS
) {
20188 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
20190 return NDR_ERR_SUCCESS
;
20193 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
20195 if (ndr_flags
& NDR_SCALARS
) {
20196 NDR_CHECK(ndr_pull_align(ndr
, 5));
20197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
20198 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
20199 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
20200 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
20202 if (ndr_flags
& NDR_BUFFERS
) {
20203 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
20205 return NDR_ERR_SUCCESS
;
20208 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
20210 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
20212 ndr_print_uint32(ndr
, "level", r
->level
);
20213 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
20214 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
20218 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20221 return NDR_ERR_SUCCESS
;
20224 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20229 return NDR_ERR_SUCCESS
;
20232 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20234 ndr_print_uint32(ndr
, name
, r
);
20236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
20237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
20238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
20239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
20240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
20241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
20245 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
20247 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
20248 if (ndr_flags
& NDR_SCALARS
) {
20249 NDR_CHECK(ndr_push_align(ndr
, 5));
20250 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
20252 uint32_t _flags_save_string
= ndr
->flags
;
20253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20254 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
20255 ndr
->flags
= _flags_save_string
;
20257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
20258 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
20260 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
20262 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
20263 ndr
->flags
= _flags_save_DATA_BLOB
;
20265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
->length
));
20266 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
20268 if (ndr_flags
& NDR_BUFFERS
) {
20269 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
20271 uint32_t _flags_save_string
= ndr
->flags
;
20272 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20273 if (r
->value_name
) {
20274 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->value_name
));
20275 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
20276 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->value_name
));
20278 ndr
->flags
= _flags_save_string
;
20281 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
20284 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data
));
20286 struct ndr_push
*_ndr_data
;
20287 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data
->length
));
20288 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data
, NDR_SCALARS
, *r
->data
));
20289 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data
->length
));
20291 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data
));
20293 ndr
->flags
= _flags_save_DATA_BLOB
;
20296 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20297 return NDR_ERR_SUCCESS
;
20300 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
20302 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
20303 uint32_t _ptr_value_name
;
20304 TALLOC_CTX
*_mem_save_value_name_0
;
20305 uint32_t _ptr_data
;
20306 TALLOC_CTX
*_mem_save_data_0
;
20307 if (ndr_flags
& NDR_SCALARS
) {
20308 NDR_CHECK(ndr_pull_align(ndr
, 5));
20309 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
20311 uint32_t _flags_save_string
= ndr
->flags
;
20312 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20313 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
20314 if (_ptr_value_name
) {
20315 NDR_PULL_ALLOC(ndr
, r
->value_name
);
20316 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
20318 r
->value_name
= NULL
;
20320 ndr
->flags
= _flags_save_string
;
20322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
20323 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
20325 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
20327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
20329 NDR_PULL_ALLOC(ndr
, r
->data
);
20330 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
20334 ndr
->flags
= _flags_save_DATA_BLOB
;
20336 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
20337 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
20339 if (ndr_flags
& NDR_BUFFERS
) {
20340 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
20342 uint32_t _flags_save_string
= ndr
->flags
;
20343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20344 if (r
->value_name
) {
20345 uint32_t _relative_save_offset
;
20346 _relative_save_offset
= ndr
->offset
;
20347 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
20348 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20349 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
20350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
20351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
20352 if (ndr
->offset
> ndr
->relative_highest_offset
) {
20353 ndr
->relative_highest_offset
= ndr
->offset
;
20355 ndr
->offset
= _relative_save_offset
;
20357 ndr
->flags
= _flags_save_string
;
20360 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
20363 uint32_t _relative_save_offset
;
20364 _relative_save_offset
= ndr
->offset
;
20365 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
20366 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20367 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
20369 struct ndr_pull
*_ndr_data
;
20370 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
20371 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data
, NDR_SCALARS
, r
->data
));
20372 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
20374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
20375 if (ndr
->offset
> ndr
->relative_highest_offset
) {
20376 ndr
->relative_highest_offset
= ndr
->offset
;
20378 ndr
->offset
= _relative_save_offset
;
20380 ndr
->flags
= _flags_save_DATA_BLOB
;
20383 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20384 return NDR_ERR_SUCCESS
;
20387 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
20389 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
20391 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
20393 if (r
->value_name
) {
20394 ndr_print_string(ndr
, "value_name", r
->value_name
);
20397 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
20398 ndr_print_winreg_Type(ndr
, "type", r
->type
);
20399 ndr_print_ptr(ndr
, "data", r
->data
);
20402 ndr_print_DATA_BLOB(ndr
, "data", *r
->data
);
20405 ndr_print_uint32(ndr
, "data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->data
->length
:r
->data_length
);
20409 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
20411 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
20414 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
20416 if (ndr_flags
& NDR_SCALARS
) {
20417 int level
= ndr_push_get_switch_value(ndr
, r
);
20418 NDR_CHECK(ndr_push_union_align(ndr
, 4));
20428 uint32_t _flags_save_string_array
= ndr
->flags
;
20429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20430 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
20431 ndr
->flags
= _flags_save_string_array
;
20437 if (ndr_flags
& NDR_BUFFERS
) {
20438 int level
= ndr_push_get_switch_value(ndr
, r
);
20451 return NDR_ERR_SUCCESS
;
20454 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
20457 level
= ndr_pull_get_switch_value(ndr
, r
);
20458 if (ndr_flags
& NDR_SCALARS
) {
20459 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
20469 uint32_t _flags_save_string_array
= ndr
->flags
;
20470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20471 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
20472 ndr
->flags
= _flags_save_string_array
;
20478 if (ndr_flags
& NDR_BUFFERS
) {
20491 return NDR_ERR_SUCCESS
;
20494 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
20497 level
= ndr_print_get_switch_value(ndr
, r
);
20498 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
20507 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
20513 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20516 return NDR_ERR_SUCCESS
;
20519 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20524 return NDR_ERR_SUCCESS
;
20527 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20529 ndr_print_uint32(ndr
, name
, r
);
20531 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
20532 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
20533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
20537 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
20539 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
20540 return NDR_ERR_SUCCESS
;
20543 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
20546 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
20548 return NDR_ERR_SUCCESS
;
20551 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
20553 const char *val
= NULL
;
20556 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
20557 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
20559 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
20562 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
20564 if (ndr_flags
& NDR_SCALARS
) {
20565 NDR_CHECK(ndr_push_align(ndr
, 4));
20566 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
20568 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20571 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
20572 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20574 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20575 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
20576 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
20577 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20581 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20583 if (ndr_flags
& NDR_BUFFERS
) {
20585 return NDR_ERR_SUCCESS
;
20588 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
20590 if (ndr_flags
& NDR_SCALARS
) {
20591 NDR_CHECK(ndr_pull_align(ndr
, 4));
20592 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20594 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20595 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20597 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
20598 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20599 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20600 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20601 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
20602 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
20603 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20607 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20609 if (ndr_flags
& NDR_BUFFERS
) {
20611 return NDR_ERR_SUCCESS
;
20614 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
20616 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
20618 ndr_print_string(ndr
, "portname", r
->portname
);
20619 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
20620 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20621 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20622 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20623 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20624 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20625 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20626 ndr_print_string(ndr
, "queue", r
->queue
);
20627 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
20628 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
20629 ndr_print_string(ndr
, "device_type", r
->device_type
);
20630 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20631 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20632 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20636 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
20638 if (ndr_flags
& NDR_SCALARS
) {
20639 NDR_CHECK(ndr_push_align(ndr
, 4));
20640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
20642 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20645 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
20646 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20648 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20649 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
20654 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20656 if (ndr_flags
& NDR_BUFFERS
) {
20658 return NDR_ERR_SUCCESS
;
20661 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
20663 if (ndr_flags
& NDR_SCALARS
) {
20664 NDR_CHECK(ndr_pull_align(ndr
, 4));
20665 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20667 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20670 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
20671 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20673 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20674 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20677 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20678 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
20679 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20681 if (ndr_flags
& NDR_BUFFERS
) {
20683 return NDR_ERR_SUCCESS
;
20686 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
20688 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
20690 ndr_print_string(ndr
, "portname", r
->portname
);
20691 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
20692 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20693 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20694 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20695 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20696 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20697 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20698 ndr_print_string(ndr
, "queue", r
->queue
);
20699 ndr_print_string(ndr
, "device_type", r
->device_type
);
20700 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20701 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20702 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20703 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
20707 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
20709 if (ndr_flags
& NDR_SCALARS
) {
20710 NDR_CHECK(ndr_push_align(ndr
, 4));
20712 uint32_t _flags_save_string
= ndr
->flags
;
20713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20714 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
20715 ndr
->flags
= _flags_save_string
;
20717 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20719 if (ndr_flags
& NDR_BUFFERS
) {
20721 return NDR_ERR_SUCCESS
;
20724 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
20726 if (ndr_flags
& NDR_SCALARS
) {
20727 NDR_CHECK(ndr_pull_align(ndr
, 4));
20729 uint32_t _flags_save_string
= ndr
->flags
;
20730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20731 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
20732 ndr
->flags
= _flags_save_string
;
20734 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20736 if (ndr_flags
& NDR_BUFFERS
) {
20738 return NDR_ERR_SUCCESS
;
20741 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
20743 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
20745 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
20749 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20752 return NDR_ERR_SUCCESS
;
20755 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20760 return NDR_ERR_SUCCESS
;
20763 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20765 ndr_print_uint32(ndr
, name
, r
);
20767 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
20768 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
20769 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
20770 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
20771 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
20772 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
20773 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
20774 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
20778 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
20780 if (ndr_flags
& NDR_SCALARS
) {
20781 NDR_CHECK(ndr_push_align(ndr
, 8));
20782 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20783 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
20784 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
20785 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
20786 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
20788 if (ndr_flags
& NDR_BUFFERS
) {
20790 return NDR_ERR_SUCCESS
;
20793 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
20795 if (ndr_flags
& NDR_SCALARS
) {
20796 NDR_CHECK(ndr_pull_align(ndr
, 8));
20797 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20798 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
20799 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
20800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
20801 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
20803 if (ndr_flags
& NDR_BUFFERS
) {
20805 return NDR_ERR_SUCCESS
;
20808 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
20810 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
20812 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
20813 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
20814 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
20815 ndr_print_string(ndr
, "formname", r
->formname
);
20819 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
20821 if (flags
& NDR_IN
) {
20822 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
20823 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20824 if (r
->in
.server
) {
20825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20826 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20827 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20828 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20831 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20832 if (r
->in
.buffer
) {
20833 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20837 if (flags
& NDR_OUT
) {
20838 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20840 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20842 if (r
->out
.needed
== NULL
) {
20843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20846 if (r
->out
.count
== NULL
) {
20847 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20850 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20852 return NDR_ERR_SUCCESS
;
20855 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
20857 uint32_t _ptr_server
;
20858 uint32_t _ptr_buffer
;
20859 uint32_t _ptr_info
;
20860 TALLOC_CTX
*_mem_save_server_0
;
20861 TALLOC_CTX
*_mem_save_buffer_0
;
20862 TALLOC_CTX
*_mem_save_info_0
;
20863 TALLOC_CTX
*_mem_save_needed_0
;
20864 TALLOC_CTX
*_mem_save_count_0
;
20865 if (flags
& NDR_IN
) {
20866 ZERO_STRUCT(r
->out
);
20868 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
20869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20871 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20873 r
->in
.server
= NULL
;
20875 if (r
->in
.server
) {
20876 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20877 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20880 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20881 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
));
20883 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20884 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20890 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20892 r
->in
.buffer
= NULL
;
20894 if (r
->in
.buffer
) {
20895 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20896 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20897 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20900 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20901 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20902 ZERO_STRUCTP(r
->out
.needed
);
20903 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20904 ZERO_STRUCTP(r
->out
.count
);
20906 if (flags
& NDR_OUT
) {
20907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20909 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20911 r
->out
.info
= NULL
;
20914 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20915 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20916 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20920 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20922 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20923 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20927 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20929 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20933 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20935 return NDR_ERR_SUCCESS
;
20938 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
20940 uint32_t cntr_info_0
;
20941 if (flags
& NDR_IN
) {
20942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20945 if (flags
& NDR_OUT
) {
20946 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20947 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20948 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20950 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20951 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20954 return NDR_ERR_SUCCESS
;
20957 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
20959 uint32_t cntr_info_0
;
20960 TALLOC_CTX
*_mem_save_info_0
;
20961 if (flags
& NDR_IN
) {
20962 ZERO_STRUCT(r
->out
);
20964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20967 if (flags
& NDR_OUT
) {
20968 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20969 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20970 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20971 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20972 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20973 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20975 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20976 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20978 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20980 return NDR_ERR_SUCCESS
;
20983 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
20985 uint32_t cntr_info_2
;
20986 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
20988 if (flags
& NDR_SET_VALUES
) {
20989 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20991 if (flags
& NDR_IN
) {
20992 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
20994 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
20995 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20997 if (r
->in
.server
) {
20998 ndr_print_string(ndr
, "server", r
->in
.server
);
21001 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21002 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21004 if (r
->in
.buffer
) {
21005 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21008 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21011 if (flags
& NDR_OUT
) {
21012 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
21014 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21016 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21018 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21020 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21022 if (*r
->out
.info
) {
21023 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21025 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21027 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21028 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21029 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21037 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21039 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21041 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21047 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
21049 if (flags
& NDR_IN
) {
21050 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
21051 if (r
->in
.printername
) {
21052 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
21053 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21054 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
21055 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21057 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
21058 if (r
->in
.datatype
) {
21059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
21060 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21061 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
21062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21064 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
21065 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
21067 if (flags
& NDR_OUT
) {
21068 if (r
->out
.handle
== NULL
) {
21069 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21071 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21072 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21074 return NDR_ERR_SUCCESS
;
21077 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
21079 uint32_t _ptr_printername
;
21080 uint32_t _ptr_datatype
;
21081 TALLOC_CTX
*_mem_save_printername_0
;
21082 TALLOC_CTX
*_mem_save_datatype_0
;
21083 TALLOC_CTX
*_mem_save_handle_0
;
21084 if (flags
& NDR_IN
) {
21085 ZERO_STRUCT(r
->out
);
21087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
21088 if (_ptr_printername
) {
21089 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
21091 r
->in
.printername
= NULL
;
21093 if (r
->in
.printername
) {
21094 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
21096 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
21097 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
21098 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
21099 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
));
21101 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
21102 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
21103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
21105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
21106 if (_ptr_datatype
) {
21107 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
21109 r
->in
.datatype
= NULL
;
21111 if (r
->in
.datatype
) {
21112 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21113 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
21114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
21115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
21116 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
21117 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
));
21119 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
21120 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
21121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
21123 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
21124 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
21125 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21126 ZERO_STRUCTP(r
->out
.handle
);
21128 if (flags
& NDR_OUT
) {
21129 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21130 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21132 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21133 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21134 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21136 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21138 return NDR_ERR_SUCCESS
;
21141 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
21143 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
21145 if (flags
& NDR_SET_VALUES
) {
21146 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21148 if (flags
& NDR_IN
) {
21149 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
21151 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
21153 if (r
->in
.printername
) {
21154 ndr_print_string(ndr
, "printername", r
->in
.printername
);
21157 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
21159 if (r
->in
.datatype
) {
21160 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
21163 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
21164 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
21167 if (flags
& NDR_OUT
) {
21168 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
21170 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21172 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21174 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21180 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
21182 if (flags
& NDR_IN
) {
21183 if (r
->in
.handle
== NULL
) {
21184 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
21188 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
21190 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
21192 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
21194 if (flags
& NDR_OUT
) {
21195 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21197 return NDR_ERR_SUCCESS
;
21200 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
21203 TALLOC_CTX
*_mem_save_handle_0
;
21204 TALLOC_CTX
*_mem_save_ctr_0
;
21205 if (flags
& NDR_IN
) {
21206 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21207 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21209 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21210 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21211 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
21214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
21216 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
21221 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21222 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
21223 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
21224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
21226 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
21228 if (flags
& NDR_OUT
) {
21229 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21231 return NDR_ERR_SUCCESS
;
21234 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
21236 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
21238 if (flags
& NDR_SET_VALUES
) {
21239 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21241 if (flags
& NDR_IN
) {
21242 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
21244 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21246 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21248 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
21249 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
21252 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
21255 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
21258 if (flags
& NDR_OUT
) {
21259 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
21261 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21267 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
21269 if (flags
& NDR_IN
) {
21270 if (r
->in
.handle
== NULL
) {
21271 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21273 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
21275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21277 if (r
->in
.buffer
) {
21278 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21282 if (flags
& NDR_OUT
) {
21283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21286 struct ndr_push
*_ndr_info
;
21287 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21288 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21289 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21290 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21293 if (r
->out
.needed
== NULL
) {
21294 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21297 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21299 return NDR_ERR_SUCCESS
;
21302 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
21304 uint32_t _ptr_buffer
;
21305 uint32_t _ptr_info
;
21306 TALLOC_CTX
*_mem_save_handle_0
;
21307 TALLOC_CTX
*_mem_save_buffer_0
;
21308 TALLOC_CTX
*_mem_save_info_0
;
21309 TALLOC_CTX
*_mem_save_needed_0
;
21310 if (flags
& NDR_IN
) {
21311 ZERO_STRUCT(r
->out
);
21313 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21314 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21316 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21317 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21318 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21320 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
21321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21324 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21326 r
->in
.buffer
= NULL
;
21328 if (r
->in
.buffer
) {
21329 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21330 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21331 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21332 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21335 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21336 ZERO_STRUCTP(r
->out
.needed
);
21338 if (flags
& NDR_OUT
) {
21339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21341 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21343 r
->out
.info
= NULL
;
21346 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21347 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21349 struct ndr_pull
*_ndr_info
;
21350 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21351 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21352 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21353 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21357 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21358 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21360 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21361 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21362 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21363 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21364 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21366 return NDR_ERR_SUCCESS
;
21369 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
21371 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
21373 if (flags
& NDR_SET_VALUES
) {
21374 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21376 if (flags
& NDR_IN
) {
21377 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
21379 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21381 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21383 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
21384 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21385 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21387 if (r
->in
.buffer
) {
21388 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21391 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21394 if (flags
& NDR_OUT
) {
21395 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
21397 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21400 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21401 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
21404 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21406 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21408 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21414 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
21416 if (flags
& NDR_IN
) {
21417 if (r
->in
.handle
== NULL
) {
21418 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21420 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
21422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
21423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21424 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21425 if (r
->in
.buffer
) {
21426 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21430 if (flags
& NDR_OUT
) {
21431 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21433 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21435 if (r
->out
.needed
== NULL
) {
21436 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21439 if (r
->out
.count
== NULL
) {
21440 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21443 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21445 return NDR_ERR_SUCCESS
;
21448 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
21450 uint32_t _ptr_buffer
;
21451 uint32_t _ptr_info
;
21452 TALLOC_CTX
*_mem_save_handle_0
;
21453 TALLOC_CTX
*_mem_save_buffer_0
;
21454 TALLOC_CTX
*_mem_save_info_0
;
21455 TALLOC_CTX
*_mem_save_needed_0
;
21456 TALLOC_CTX
*_mem_save_count_0
;
21457 if (flags
& NDR_IN
) {
21458 ZERO_STRUCT(r
->out
);
21460 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21461 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21463 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21464 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21465 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
21468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
21469 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21470 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21472 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21474 r
->in
.buffer
= NULL
;
21476 if (r
->in
.buffer
) {
21477 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21478 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21479 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21482 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21483 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21484 ZERO_STRUCTP(r
->out
.needed
);
21485 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21486 ZERO_STRUCTP(r
->out
.count
);
21488 if (flags
& NDR_OUT
) {
21489 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21491 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21493 r
->out
.info
= NULL
;
21496 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21497 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21498 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21501 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21502 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21504 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21505 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21508 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21509 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21511 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21512 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21515 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21517 return NDR_ERR_SUCCESS
;
21520 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
21522 uint32_t cntr_info_0
;
21523 if (flags
& NDR_IN
) {
21524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21527 if (flags
& NDR_OUT
) {
21528 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21529 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21530 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21532 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21533 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21536 return NDR_ERR_SUCCESS
;
21539 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
21541 uint32_t cntr_info_0
;
21542 TALLOC_CTX
*_mem_save_info_0
;
21543 if (flags
& NDR_IN
) {
21544 ZERO_STRUCT(r
->out
);
21546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21547 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21549 if (flags
& NDR_OUT
) {
21550 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21551 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21552 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21553 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21554 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21555 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21557 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21558 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21562 return NDR_ERR_SUCCESS
;
21565 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
21567 uint32_t cntr_info_2
;
21568 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
21570 if (flags
& NDR_SET_VALUES
) {
21571 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21573 if (flags
& NDR_IN
) {
21574 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
21576 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21578 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21580 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
21581 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
21582 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21583 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21585 if (r
->in
.buffer
) {
21586 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21589 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21592 if (flags
& NDR_OUT
) {
21593 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
21595 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21597 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21599 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21601 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21603 if (*r
->out
.info
) {
21604 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21606 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21608 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21609 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21610 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21618 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21620 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21622 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21628 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
21630 if (flags
& NDR_IN
) {
21631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21632 if (r
->in
.server
) {
21633 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21634 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21636 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21638 if (r
->in
.info_ctr
== NULL
) {
21639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21641 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21642 if (r
->in
.devmode_ctr
== NULL
) {
21643 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21645 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21646 if (r
->in
.secdesc_ctr
== NULL
) {
21647 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21649 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21651 if (flags
& NDR_OUT
) {
21652 if (r
->out
.handle
== NULL
) {
21653 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21655 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21656 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21658 return NDR_ERR_SUCCESS
;
21661 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
21663 uint32_t _ptr_server
;
21664 TALLOC_CTX
*_mem_save_server_0
;
21665 TALLOC_CTX
*_mem_save_info_ctr_0
;
21666 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21667 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21668 TALLOC_CTX
*_mem_save_handle_0
;
21669 if (flags
& NDR_IN
) {
21670 ZERO_STRUCT(r
->out
);
21672 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21674 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21676 r
->in
.server
= NULL
;
21678 if (r
->in
.server
) {
21679 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21681 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21682 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21683 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21684 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
));
21686 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21687 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21690 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21691 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21693 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21694 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21695 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21697 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21698 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21700 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21701 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21702 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21704 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21705 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21707 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21708 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21709 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21711 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21712 ZERO_STRUCTP(r
->out
.handle
);
21714 if (flags
& NDR_OUT
) {
21715 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21716 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21718 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21719 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21720 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21722 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21724 return NDR_ERR_SUCCESS
;
21727 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
21729 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
21731 if (flags
& NDR_SET_VALUES
) {
21732 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21734 if (flags
& NDR_IN
) {
21735 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
21737 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21739 if (r
->in
.server
) {
21740 ndr_print_string(ndr
, "server", r
->in
.server
);
21743 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21745 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21747 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21749 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21751 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21753 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21757 if (flags
& NDR_OUT
) {
21758 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
21760 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21762 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21764 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21770 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
21772 if (flags
& NDR_IN
) {
21773 if (r
->in
.handle
== NULL
) {
21774 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21776 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21778 if (flags
& NDR_OUT
) {
21779 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21781 return NDR_ERR_SUCCESS
;
21784 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
21786 TALLOC_CTX
*_mem_save_handle_0
;
21787 if (flags
& NDR_IN
) {
21788 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21789 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21791 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21792 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21793 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21794 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21796 if (flags
& NDR_OUT
) {
21797 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21799 return NDR_ERR_SUCCESS
;
21802 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
21804 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
21806 if (flags
& NDR_SET_VALUES
) {
21807 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21809 if (flags
& NDR_IN
) {
21810 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
21812 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21814 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21818 if (flags
& NDR_OUT
) {
21819 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
21821 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21827 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
21829 if (flags
& NDR_IN
) {
21830 if (r
->in
.handle
== NULL
) {
21831 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21833 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21834 if (r
->in
.info_ctr
== NULL
) {
21835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21837 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21838 if (r
->in
.devmode_ctr
== NULL
) {
21839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21842 if (r
->in
.secdesc_ctr
== NULL
) {
21843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21845 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21846 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
21848 if (flags
& NDR_OUT
) {
21849 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21851 return NDR_ERR_SUCCESS
;
21854 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
21856 TALLOC_CTX
*_mem_save_handle_0
;
21857 TALLOC_CTX
*_mem_save_info_ctr_0
;
21858 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21859 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21860 if (flags
& NDR_IN
) {
21861 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21862 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21864 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21865 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21866 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21868 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21869 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21871 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21872 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21873 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21876 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21878 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21880 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21882 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21883 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21885 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21886 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21887 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21889 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
21891 if (flags
& NDR_OUT
) {
21892 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21894 return NDR_ERR_SUCCESS
;
21897 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
21899 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
21901 if (flags
& NDR_SET_VALUES
) {
21902 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21904 if (flags
& NDR_IN
) {
21905 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
21907 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21909 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21911 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21913 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21915 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21917 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21919 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21921 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21923 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
21926 if (flags
& NDR_OUT
) {
21927 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
21929 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21935 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
21937 if (flags
& NDR_IN
) {
21938 if (r
->in
.handle
== NULL
) {
21939 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21941 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21943 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21944 if (r
->in
.buffer
) {
21945 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21949 if (flags
& NDR_OUT
) {
21950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21953 struct ndr_push
*_ndr_info
;
21954 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21955 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21956 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21957 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21960 if (r
->out
.needed
== NULL
) {
21961 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21964 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21966 return NDR_ERR_SUCCESS
;
21969 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
21971 uint32_t _ptr_buffer
;
21972 uint32_t _ptr_info
;
21973 TALLOC_CTX
*_mem_save_handle_0
;
21974 TALLOC_CTX
*_mem_save_buffer_0
;
21975 TALLOC_CTX
*_mem_save_info_0
;
21976 TALLOC_CTX
*_mem_save_needed_0
;
21977 if (flags
& NDR_IN
) {
21978 ZERO_STRUCT(r
->out
);
21980 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21981 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21983 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21984 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21985 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21988 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21990 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21992 r
->in
.buffer
= NULL
;
21994 if (r
->in
.buffer
) {
21995 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21996 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21997 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22001 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22002 ZERO_STRUCTP(r
->out
.needed
);
22004 if (flags
& NDR_OUT
) {
22005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22007 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22009 r
->out
.info
= NULL
;
22012 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22013 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22015 struct ndr_pull
*_ndr_info
;
22016 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22017 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22018 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22019 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22023 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22024 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22026 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22027 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22030 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22032 return NDR_ERR_SUCCESS
;
22035 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
22037 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
22039 if (flags
& NDR_SET_VALUES
) {
22040 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22042 if (flags
& NDR_IN
) {
22043 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
22045 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22047 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22049 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22050 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22052 if (r
->in
.buffer
) {
22053 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22056 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22059 if (flags
& NDR_OUT
) {
22060 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
22062 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22065 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22066 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
22069 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22071 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22073 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22079 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
22081 if (flags
& NDR_IN
) {
22082 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22083 if (r
->in
.servername
) {
22084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22085 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22087 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22089 if (r
->in
.info_ctr
== NULL
) {
22090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22092 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
22094 if (flags
& NDR_OUT
) {
22095 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22097 return NDR_ERR_SUCCESS
;
22100 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
22102 uint32_t _ptr_servername
;
22103 TALLOC_CTX
*_mem_save_servername_0
;
22104 TALLOC_CTX
*_mem_save_info_ctr_0
;
22105 if (flags
& NDR_IN
) {
22106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22107 if (_ptr_servername
) {
22108 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22110 r
->in
.servername
= NULL
;
22112 if (r
->in
.servername
) {
22113 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22114 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22115 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22116 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22117 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22118 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
));
22120 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22124 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22125 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
22127 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22128 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
22129 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
22130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
22132 if (flags
& NDR_OUT
) {
22133 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22135 return NDR_ERR_SUCCESS
;
22138 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
22140 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
22142 if (flags
& NDR_SET_VALUES
) {
22143 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22145 if (flags
& NDR_IN
) {
22146 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
22148 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22150 if (r
->in
.servername
) {
22151 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22154 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
22156 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
22160 if (flags
& NDR_OUT
) {
22161 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
22163 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22169 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
22171 if (flags
& NDR_IN
) {
22172 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22173 if (r
->in
.server
) {
22174 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22175 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22177 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22179 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22180 if (r
->in
.environment
) {
22181 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22182 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22183 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22184 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22187 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22188 if (r
->in
.buffer
) {
22189 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22193 if (flags
& NDR_OUT
) {
22194 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22196 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22198 if (r
->out
.needed
== NULL
) {
22199 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22202 if (r
->out
.count
== NULL
) {
22203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22206 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22208 return NDR_ERR_SUCCESS
;
22211 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
22213 uint32_t _ptr_server
;
22214 uint32_t _ptr_environment
;
22215 uint32_t _ptr_buffer
;
22216 uint32_t _ptr_info
;
22217 TALLOC_CTX
*_mem_save_server_0
;
22218 TALLOC_CTX
*_mem_save_environment_0
;
22219 TALLOC_CTX
*_mem_save_buffer_0
;
22220 TALLOC_CTX
*_mem_save_info_0
;
22221 TALLOC_CTX
*_mem_save_needed_0
;
22222 TALLOC_CTX
*_mem_save_count_0
;
22223 if (flags
& NDR_IN
) {
22224 ZERO_STRUCT(r
->out
);
22226 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22228 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22230 r
->in
.server
= NULL
;
22232 if (r
->in
.server
) {
22233 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22234 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22235 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22236 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22237 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22238 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
));
22240 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22241 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22244 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22245 if (_ptr_environment
) {
22246 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22248 r
->in
.environment
= NULL
;
22250 if (r
->in
.environment
) {
22251 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22252 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22253 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22254 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22255 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22256 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
));
22258 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22259 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22263 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22265 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22267 r
->in
.buffer
= NULL
;
22269 if (r
->in
.buffer
) {
22270 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22271 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22272 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22276 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22277 ZERO_STRUCTP(r
->out
.needed
);
22278 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22279 ZERO_STRUCTP(r
->out
.count
);
22281 if (flags
& NDR_OUT
) {
22282 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22284 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22286 r
->out
.info
= NULL
;
22289 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22290 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22291 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22295 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22297 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22298 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22301 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22302 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22304 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22305 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22307 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22308 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22310 return NDR_ERR_SUCCESS
;
22313 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
22315 uint32_t cntr_info_0
;
22316 if (flags
& NDR_IN
) {
22317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22320 if (flags
& NDR_OUT
) {
22321 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22322 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22323 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22325 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22326 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22329 return NDR_ERR_SUCCESS
;
22332 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
22334 uint32_t cntr_info_0
;
22335 TALLOC_CTX
*_mem_save_info_0
;
22336 if (flags
& NDR_IN
) {
22337 ZERO_STRUCT(r
->out
);
22339 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22340 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22342 if (flags
& NDR_OUT
) {
22343 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22344 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22345 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22346 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22347 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22348 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22350 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22351 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22355 return NDR_ERR_SUCCESS
;
22358 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
22360 uint32_t cntr_info_2
;
22361 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
22363 if (flags
& NDR_SET_VALUES
) {
22364 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22366 if (flags
& NDR_IN
) {
22367 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
22369 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22371 if (r
->in
.server
) {
22372 ndr_print_string(ndr
, "server", r
->in
.server
);
22375 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22377 if (r
->in
.environment
) {
22378 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22381 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22382 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22384 if (r
->in
.buffer
) {
22385 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22388 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22391 if (flags
& NDR_OUT
) {
22392 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
22394 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22396 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22398 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22400 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22402 if (*r
->out
.info
) {
22403 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22405 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22407 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22408 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22409 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22417 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22419 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22421 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22427 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22429 if (flags
& NDR_IN
) {
22430 if (r
->in
.handle
== NULL
) {
22431 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22433 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
22435 if (r
->in
.architecture
) {
22436 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22437 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22438 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22439 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22443 if (r
->in
.buffer
) {
22444 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22448 if (flags
& NDR_OUT
) {
22449 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22452 struct ndr_push
*_ndr_info
;
22453 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22454 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22455 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22456 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22459 if (r
->out
.needed
== NULL
) {
22460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22463 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22465 return NDR_ERR_SUCCESS
;
22468 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
22470 uint32_t _ptr_architecture
;
22471 uint32_t _ptr_buffer
;
22472 uint32_t _ptr_info
;
22473 TALLOC_CTX
*_mem_save_handle_0
;
22474 TALLOC_CTX
*_mem_save_architecture_0
;
22475 TALLOC_CTX
*_mem_save_buffer_0
;
22476 TALLOC_CTX
*_mem_save_info_0
;
22477 TALLOC_CTX
*_mem_save_needed_0
;
22478 if (flags
& NDR_IN
) {
22479 ZERO_STRUCT(r
->out
);
22481 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22482 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22484 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22485 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22486 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22488 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
22489 if (_ptr_architecture
) {
22490 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
22492 r
->in
.architecture
= NULL
;
22494 if (r
->in
.architecture
) {
22495 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22496 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
22497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22498 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22499 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22500 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
));
22502 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22503 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
22506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22509 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22511 r
->in
.buffer
= NULL
;
22513 if (r
->in
.buffer
) {
22514 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22515 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22516 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22520 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22521 ZERO_STRUCTP(r
->out
.needed
);
22523 if (flags
& NDR_OUT
) {
22524 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22526 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22528 r
->out
.info
= NULL
;
22531 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22532 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22534 struct ndr_pull
*_ndr_info
;
22535 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22536 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22537 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22538 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22542 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22543 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22545 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22546 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22547 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22549 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22551 return NDR_ERR_SUCCESS
;
22554 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22556 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
22558 if (flags
& NDR_SET_VALUES
) {
22559 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22561 if (flags
& NDR_IN
) {
22562 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
22564 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22566 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22568 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
22570 if (r
->in
.architecture
) {
22571 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22574 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22575 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22577 if (r
->in
.buffer
) {
22578 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22581 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22584 if (flags
& NDR_OUT
) {
22585 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
22587 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22590 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22591 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
22594 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22596 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22598 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22604 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22606 if (flags
& NDR_IN
) {
22607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22608 if (r
->in
.server
) {
22609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22610 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22612 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22615 if (r
->in
.environment
) {
22616 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22617 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22619 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22623 if (r
->in
.buffer
) {
22624 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22628 if (flags
& NDR_OUT
) {
22629 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22632 struct ndr_push
*_ndr_info
;
22633 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22634 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22635 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22636 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22639 if (r
->out
.needed
== NULL
) {
22640 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22643 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22645 return NDR_ERR_SUCCESS
;
22648 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
22650 uint32_t _ptr_server
;
22651 uint32_t _ptr_environment
;
22652 uint32_t _ptr_buffer
;
22653 uint32_t _ptr_info
;
22654 TALLOC_CTX
*_mem_save_server_0
;
22655 TALLOC_CTX
*_mem_save_environment_0
;
22656 TALLOC_CTX
*_mem_save_buffer_0
;
22657 TALLOC_CTX
*_mem_save_info_0
;
22658 TALLOC_CTX
*_mem_save_needed_0
;
22659 if (flags
& NDR_IN
) {
22660 ZERO_STRUCT(r
->out
);
22662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22664 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22666 r
->in
.server
= NULL
;
22668 if (r
->in
.server
) {
22669 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22670 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22671 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22672 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22673 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22674 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
));
22676 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22677 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22681 if (_ptr_environment
) {
22682 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22684 r
->in
.environment
= NULL
;
22686 if (r
->in
.environment
) {
22687 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22688 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22689 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22690 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22691 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22692 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
));
22694 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22695 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22701 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22703 r
->in
.buffer
= NULL
;
22705 if (r
->in
.buffer
) {
22706 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22707 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22708 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22711 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22712 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22713 ZERO_STRUCTP(r
->out
.needed
);
22715 if (flags
& NDR_OUT
) {
22716 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22718 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22720 r
->out
.info
= NULL
;
22723 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22724 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22726 struct ndr_pull
*_ndr_info
;
22727 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22728 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22729 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22730 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22734 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22735 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22737 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22738 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22739 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22741 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22743 return NDR_ERR_SUCCESS
;
22746 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22748 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
22750 if (flags
& NDR_SET_VALUES
) {
22751 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22753 if (flags
& NDR_IN
) {
22754 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
22756 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22758 if (r
->in
.server
) {
22759 ndr_print_string(ndr
, "server", r
->in
.server
);
22762 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22764 if (r
->in
.environment
) {
22765 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22768 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22769 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22771 if (r
->in
.buffer
) {
22772 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22775 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22778 if (flags
& NDR_OUT
) {
22779 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
22781 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22784 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22785 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
22788 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22790 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22792 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22798 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22800 if (flags
& NDR_IN
) {
22801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22802 if (r
->in
.server
) {
22803 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22804 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22805 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22806 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22808 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22809 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22810 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22811 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22812 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22813 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22814 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22815 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22817 if (flags
& NDR_OUT
) {
22818 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22820 return NDR_ERR_SUCCESS
;
22823 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
22825 uint32_t _ptr_server
;
22826 TALLOC_CTX
*_mem_save_server_0
;
22827 if (flags
& NDR_IN
) {
22828 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22830 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22832 r
->in
.server
= NULL
;
22834 if (r
->in
.server
) {
22835 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22836 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22837 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22838 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22839 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22840 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
));
22842 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22843 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22846 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22847 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22848 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22849 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
));
22851 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22852 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
22854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
22855 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
22856 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
));
22858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
22859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
22861 if (flags
& NDR_OUT
) {
22862 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22864 return NDR_ERR_SUCCESS
;
22867 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22869 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
22871 if (flags
& NDR_SET_VALUES
) {
22872 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22874 if (flags
& NDR_IN
) {
22875 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
22877 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22879 if (r
->in
.server
) {
22880 ndr_print_string(ndr
, "server", r
->in
.server
);
22883 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22884 ndr_print_string(ndr
, "driver", r
->in
.driver
);
22887 if (flags
& NDR_OUT
) {
22888 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
22890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22896 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22898 if (flags
& NDR_IN
) {
22899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22900 if (r
->in
.server
) {
22901 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22902 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22904 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22906 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22907 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22908 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22909 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22910 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22911 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22912 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22913 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
));
22914 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22915 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22916 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22917 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
));
22919 if (flags
& NDR_OUT
) {
22920 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22922 return NDR_ERR_SUCCESS
;
22925 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
22927 uint32_t _ptr_server
;
22928 TALLOC_CTX
*_mem_save_server_0
;
22929 if (flags
& NDR_IN
) {
22930 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22932 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22934 r
->in
.server
= NULL
;
22936 if (r
->in
.server
) {
22937 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22938 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22939 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22940 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22941 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22942 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
));
22944 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22945 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22948 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22949 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22950 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22951 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
));
22953 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22954 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22955 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
22956 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
22957 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
22958 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
));
22960 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
22961 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
));
22962 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
22963 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
22964 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
22965 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
));
22967 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
22968 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
));
22970 if (flags
& NDR_OUT
) {
22971 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22973 return NDR_ERR_SUCCESS
;
22976 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22978 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
22980 if (flags
& NDR_SET_VALUES
) {
22981 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22983 if (flags
& NDR_IN
) {
22984 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
22986 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22988 if (r
->in
.server
) {
22989 ndr_print_string(ndr
, "server", r
->in
.server
);
22992 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22993 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
22994 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
22997 if (flags
& NDR_OUT
) {
22998 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
23000 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23006 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
23008 if (flags
& NDR_IN
) {
23009 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23010 if (r
->in
.servername
) {
23011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
23017 if (r
->in
.environment
) {
23018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23020 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23021 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23025 if (r
->in
.buffer
) {
23026 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23030 if (flags
& NDR_OUT
) {
23031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23033 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23035 if (r
->out
.needed
== NULL
) {
23036 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23039 if (r
->out
.count
== NULL
) {
23040 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23043 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23045 return NDR_ERR_SUCCESS
;
23048 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
23050 uint32_t _ptr_servername
;
23051 uint32_t _ptr_environment
;
23052 uint32_t _ptr_buffer
;
23053 uint32_t _ptr_info
;
23054 TALLOC_CTX
*_mem_save_servername_0
;
23055 TALLOC_CTX
*_mem_save_environment_0
;
23056 TALLOC_CTX
*_mem_save_buffer_0
;
23057 TALLOC_CTX
*_mem_save_info_0
;
23058 TALLOC_CTX
*_mem_save_needed_0
;
23059 TALLOC_CTX
*_mem_save_count_0
;
23060 if (flags
& NDR_IN
) {
23061 ZERO_STRUCT(r
->out
);
23063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23064 if (_ptr_servername
) {
23065 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23067 r
->in
.servername
= NULL
;
23069 if (r
->in
.servername
) {
23070 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23071 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23073 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23074 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23075 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
));
23077 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23078 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
23082 if (_ptr_environment
) {
23083 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
23085 r
->in
.environment
= NULL
;
23087 if (r
->in
.environment
) {
23088 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
23090 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
23091 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
23092 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
23093 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
));
23095 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
23096 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
23097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
23099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23102 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23104 r
->in
.buffer
= NULL
;
23106 if (r
->in
.buffer
) {
23107 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23108 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23109 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23113 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23114 ZERO_STRUCTP(r
->out
.needed
);
23115 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23116 ZERO_STRUCTP(r
->out
.count
);
23118 if (flags
& NDR_OUT
) {
23119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23121 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23123 r
->out
.info
= NULL
;
23126 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23127 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23128 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23131 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23132 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23134 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23135 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23138 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23139 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23141 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23142 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23145 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23147 return NDR_ERR_SUCCESS
;
23150 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
23152 uint32_t cntr_info_0
;
23153 if (flags
& NDR_IN
) {
23154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23157 if (flags
& NDR_OUT
) {
23158 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23159 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23160 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23162 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23163 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23166 return NDR_ERR_SUCCESS
;
23169 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
23171 uint32_t cntr_info_0
;
23172 TALLOC_CTX
*_mem_save_info_0
;
23173 if (flags
& NDR_IN
) {
23174 ZERO_STRUCT(r
->out
);
23176 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23179 if (flags
& NDR_OUT
) {
23180 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23181 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23182 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23183 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23184 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23185 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23187 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23188 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23192 return NDR_ERR_SUCCESS
;
23195 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
23197 uint32_t cntr_info_2
;
23198 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
23200 if (flags
& NDR_SET_VALUES
) {
23201 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23203 if (flags
& NDR_IN
) {
23204 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
23206 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23208 if (r
->in
.servername
) {
23209 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23212 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23214 if (r
->in
.environment
) {
23215 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23218 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23219 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23221 if (r
->in
.buffer
) {
23222 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23225 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23228 if (flags
& NDR_OUT
) {
23229 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
23231 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23233 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23235 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23237 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23239 if (*r
->out
.info
) {
23240 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23242 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23244 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23245 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23246 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23254 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23256 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23258 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23264 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23266 if (flags
& NDR_IN
) {
23267 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
23268 if (r
->in
.server
) {
23269 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23271 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23272 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23274 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
23275 if (r
->in
.environment
) {
23276 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23277 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23278 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23279 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23283 if (r
->in
.buffer
) {
23284 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23288 if (flags
& NDR_OUT
) {
23289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23292 struct ndr_push
*_ndr_info
;
23293 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23294 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23295 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23296 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23299 if (r
->out
.needed
== NULL
) {
23300 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23303 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23305 return NDR_ERR_SUCCESS
;
23308 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
23310 uint32_t _ptr_server
;
23311 uint32_t _ptr_environment
;
23312 uint32_t _ptr_buffer
;
23313 uint32_t _ptr_info
;
23314 TALLOC_CTX
*_mem_save_server_0
;
23315 TALLOC_CTX
*_mem_save_environment_0
;
23316 TALLOC_CTX
*_mem_save_buffer_0
;
23317 TALLOC_CTX
*_mem_save_info_0
;
23318 TALLOC_CTX
*_mem_save_needed_0
;
23319 if (flags
& NDR_IN
) {
23320 ZERO_STRUCT(r
->out
);
23322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
23324 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
23326 r
->in
.server
= NULL
;
23328 if (r
->in
.server
) {
23329 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23330 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
23331 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
23332 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
23333 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
23334 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
));
23336 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
23337 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
23338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
23340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
23341 if (_ptr_environment
) {
23342 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
23344 r
->in
.environment
= NULL
;
23346 if (r
->in
.environment
) {
23347 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23348 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
23349 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
23350 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
23351 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
23352 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
));
23354 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
23355 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
23356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
23358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23359 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23361 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23363 r
->in
.buffer
= NULL
;
23365 if (r
->in
.buffer
) {
23366 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23367 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23368 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23372 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23373 ZERO_STRUCTP(r
->out
.needed
);
23375 if (flags
& NDR_OUT
) {
23376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23378 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23380 r
->out
.info
= NULL
;
23383 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23384 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23386 struct ndr_pull
*_ndr_info
;
23387 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23388 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23389 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23390 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23394 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23395 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23397 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23398 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23401 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23403 return NDR_ERR_SUCCESS
;
23406 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23408 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
23410 if (flags
& NDR_SET_VALUES
) {
23411 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23413 if (flags
& NDR_IN
) {
23414 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
23416 ndr_print_ptr(ndr
, "server", r
->in
.server
);
23418 if (r
->in
.server
) {
23419 ndr_print_string(ndr
, "server", r
->in
.server
);
23422 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23424 if (r
->in
.environment
) {
23425 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23428 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23429 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23431 if (r
->in
.buffer
) {
23432 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23435 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23438 if (flags
& NDR_OUT
) {
23439 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
23441 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23444 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23445 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
23448 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23450 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23452 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23458 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23460 if (flags
& NDR_IN
) {
23461 if (r
->in
.handle
== NULL
) {
23462 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23464 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23466 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23467 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23469 if (flags
& NDR_OUT
) {
23470 if (r
->out
.job_id
== NULL
) {
23471 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
23474 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23476 return NDR_ERR_SUCCESS
;
23479 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
23481 TALLOC_CTX
*_mem_save_handle_0
;
23482 TALLOC_CTX
*_mem_save_job_id_0
;
23483 if (flags
& NDR_IN
) {
23484 ZERO_STRUCT(r
->out
);
23486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23487 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23489 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23490 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23491 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23494 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23495 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23496 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23497 ZERO_STRUCTP(r
->out
.job_id
);
23499 if (flags
& NDR_OUT
) {
23500 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23501 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23503 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23504 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
23505 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
23506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
23507 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23509 return NDR_ERR_SUCCESS
;
23512 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23514 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
23516 if (flags
& NDR_SET_VALUES
) {
23517 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23519 if (flags
& NDR_IN
) {
23520 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
23522 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23524 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23526 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23527 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23528 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
23531 if (flags
& NDR_OUT
) {
23532 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
23534 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
23536 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
23538 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23544 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23546 if (flags
& NDR_IN
) {
23547 if (r
->in
.handle
== NULL
) {
23548 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23550 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23552 if (flags
& NDR_OUT
) {
23553 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23555 return NDR_ERR_SUCCESS
;
23558 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
23560 TALLOC_CTX
*_mem_save_handle_0
;
23561 if (flags
& NDR_IN
) {
23562 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23563 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23565 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23566 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23567 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23570 if (flags
& NDR_OUT
) {
23571 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23573 return NDR_ERR_SUCCESS
;
23576 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23578 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
23580 if (flags
& NDR_SET_VALUES
) {
23581 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23583 if (flags
& NDR_IN
) {
23584 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
23586 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23588 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23592 if (flags
& NDR_OUT
) {
23593 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
23595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23601 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
23603 if (flags
& NDR_IN
) {
23604 if (r
->in
.handle
== NULL
) {
23605 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23607 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23608 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
23611 if (flags
& NDR_OUT
) {
23612 if (r
->out
.num_written
== NULL
) {
23613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
23616 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23618 return NDR_ERR_SUCCESS
;
23621 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
23623 TALLOC_CTX
*_mem_save_handle_0
;
23624 TALLOC_CTX
*_mem_save_num_written_0
;
23625 if (flags
& NDR_IN
) {
23626 ZERO_STRUCT(r
->out
);
23628 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23629 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23631 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23632 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23633 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23635 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
23636 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
23637 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23638 ZERO_STRUCTP(r
->out
.num_written
);
23640 if (flags
& NDR_OUT
) {
23641 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23642 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23644 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23645 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
23646 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
23647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
23648 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23650 return NDR_ERR_SUCCESS
;
23653 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
23655 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
23657 if (flags
& NDR_SET_VALUES
) {
23658 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23660 if (flags
& NDR_IN
) {
23661 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
23663 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23665 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23667 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
23668 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
23671 if (flags
& NDR_OUT
) {
23672 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
23674 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
23676 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
23678 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23684 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23686 if (flags
& NDR_IN
) {
23687 if (r
->in
.handle
== NULL
) {
23688 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23690 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23692 if (flags
& NDR_OUT
) {
23693 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23695 return NDR_ERR_SUCCESS
;
23698 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
23700 TALLOC_CTX
*_mem_save_handle_0
;
23701 if (flags
& NDR_IN
) {
23702 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23703 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23705 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23706 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23707 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23710 if (flags
& NDR_OUT
) {
23711 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23713 return NDR_ERR_SUCCESS
;
23716 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23718 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
23720 if (flags
& NDR_SET_VALUES
) {
23721 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23723 if (flags
& NDR_IN
) {
23724 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
23726 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23728 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23732 if (flags
& NDR_OUT
) {
23733 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
23735 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23741 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
23743 if (flags
& NDR_IN
) {
23744 if (r
->in
.handle
== NULL
) {
23745 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23747 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23749 if (flags
& NDR_OUT
) {
23750 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23752 return NDR_ERR_SUCCESS
;
23755 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
23757 TALLOC_CTX
*_mem_save_handle_0
;
23758 if (flags
& NDR_IN
) {
23759 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23760 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23762 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23764 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23767 if (flags
& NDR_OUT
) {
23768 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23770 return NDR_ERR_SUCCESS
;
23773 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
23775 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
23777 if (flags
& NDR_SET_VALUES
) {
23778 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23780 if (flags
& NDR_IN
) {
23781 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
23783 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23785 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23789 if (flags
& NDR_OUT
) {
23790 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
23792 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23798 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
23800 if (flags
& NDR_IN
) {
23801 if (r
->in
.handle
== NULL
) {
23802 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23804 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23807 if (flags
& NDR_OUT
) {
23808 if (r
->out
.data
== NULL
) {
23809 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23811 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23812 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
23813 if (r
->out
._data_size
== NULL
) {
23814 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
23817 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23819 return NDR_ERR_SUCCESS
;
23822 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
23824 TALLOC_CTX
*_mem_save_handle_0
;
23825 TALLOC_CTX
*_mem_save__data_size_0
;
23826 if (flags
& NDR_IN
) {
23827 ZERO_STRUCT(r
->out
);
23829 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23830 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23832 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23833 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23834 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
23837 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
23838 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
23839 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23840 ZERO_STRUCTP(r
->out
._data_size
);
23842 if (flags
& NDR_OUT
) {
23843 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
23844 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23845 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
23847 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
23848 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23849 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23851 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23852 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
23853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
23854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
23855 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23857 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
23860 return NDR_ERR_SUCCESS
;
23863 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
23865 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
23867 if (flags
& NDR_SET_VALUES
) {
23868 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23870 if (flags
& NDR_IN
) {
23871 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
23873 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23875 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23877 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
23880 if (flags
& NDR_OUT
) {
23881 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
23883 ndr_print_ptr(ndr
, "data", r
->out
.data
);
23885 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
23887 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
23889 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
23891 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23897 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23899 if (flags
& NDR_IN
) {
23900 if (r
->in
.handle
== NULL
) {
23901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23903 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23905 if (flags
& NDR_OUT
) {
23906 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23908 return NDR_ERR_SUCCESS
;
23911 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
23913 TALLOC_CTX
*_mem_save_handle_0
;
23914 if (flags
& NDR_IN
) {
23915 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23916 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23918 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23919 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23920 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23923 if (flags
& NDR_OUT
) {
23924 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23926 return NDR_ERR_SUCCESS
;
23929 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23931 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
23933 if (flags
& NDR_SET_VALUES
) {
23934 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23936 if (flags
& NDR_IN
) {
23937 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
23939 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23941 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23945 if (flags
& NDR_OUT
) {
23946 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
23948 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23954 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
23956 if (flags
& NDR_IN
) {
23957 if (r
->in
.handle
== NULL
) {
23958 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23960 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23963 if (r
->in
.buffer
) {
23964 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23965 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
23967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23969 if (flags
& NDR_OUT
) {
23970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
23971 if (r
->out
.buffer
) {
23972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23973 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
23975 if (r
->out
.needed
== NULL
) {
23976 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23979 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23981 return NDR_ERR_SUCCESS
;
23984 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
23986 uint32_t _ptr_buffer
;
23987 TALLOC_CTX
*_mem_save_handle_0
;
23988 TALLOC_CTX
*_mem_save_buffer_0
;
23989 TALLOC_CTX
*_mem_save_needed_0
;
23990 if (flags
& NDR_IN
) {
23991 ZERO_STRUCT(r
->out
);
23993 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23994 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23996 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23997 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23998 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23999 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24003 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24005 r
->in
.buffer
= NULL
;
24007 if (r
->in
.buffer
) {
24008 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24009 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24010 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24011 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24012 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24016 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24017 ZERO_STRUCTP(r
->out
.needed
);
24018 if (r
->in
.buffer
) {
24019 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
24022 if (flags
& NDR_OUT
) {
24023 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24025 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
24027 r
->out
.buffer
= NULL
;
24029 if (r
->out
.buffer
) {
24030 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24031 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
24032 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
24033 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
24034 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
24035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24037 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24038 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24040 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24041 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24044 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24045 if (r
->out
.buffer
) {
24046 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
24049 return NDR_ERR_SUCCESS
;
24052 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
24054 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
24056 if (flags
& NDR_SET_VALUES
) {
24057 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24059 if (flags
& NDR_IN
) {
24060 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
24062 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24064 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24066 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24067 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24069 if (r
->in
.buffer
) {
24070 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
24073 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24076 if (flags
& NDR_OUT
) {
24077 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
24079 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
24081 if (r
->out
.buffer
) {
24082 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
24085 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24087 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24089 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24095 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
24097 if (flags
& NDR_IN
) {
24098 if (r
->in
.handle
== NULL
) {
24099 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24101 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
24104 if (flags
& NDR_OUT
) {
24105 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24107 return NDR_ERR_SUCCESS
;
24110 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
24112 TALLOC_CTX
*_mem_save_handle_0
;
24113 if (flags
& NDR_IN
) {
24114 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24115 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24117 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24118 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24119 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24121 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
24123 if (flags
& NDR_OUT
) {
24124 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24126 return NDR_ERR_SUCCESS
;
24129 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
24131 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
24133 if (flags
& NDR_SET_VALUES
) {
24134 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24136 if (flags
& NDR_IN
) {
24137 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
24139 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24141 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24143 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
24146 if (flags
& NDR_OUT
) {
24147 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
24149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24155 static enum ndr_err_code
ndr_push_spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterData
*r
)
24157 if (flags
& NDR_IN
) {
24158 if (r
->in
.handle
== NULL
) {
24159 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24161 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24163 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24164 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24165 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
));
24166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24168 if (flags
& NDR_OUT
) {
24169 if (r
->out
.type
== NULL
) {
24170 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24172 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
24173 if (r
->out
.data
== NULL
) {
24174 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
24177 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
24178 if (r
->out
.needed
== NULL
) {
24179 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24182 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24184 return NDR_ERR_SUCCESS
;
24187 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterData
*r
)
24189 TALLOC_CTX
*_mem_save_handle_0
;
24190 TALLOC_CTX
*_mem_save_type_0
;
24191 TALLOC_CTX
*_mem_save_needed_0
;
24192 if (flags
& NDR_IN
) {
24193 ZERO_STRUCT(r
->out
);
24195 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24196 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24198 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24199 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24200 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24202 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24203 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24204 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24205 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
));
24207 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24208 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
));
24209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24210 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24211 ZERO_STRUCTP(r
->out
.type
);
24212 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
24213 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
24214 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24215 ZERO_STRUCTP(r
->out
.needed
);
24217 if (flags
& NDR_OUT
) {
24218 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24219 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24221 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24222 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
24223 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
24224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
24225 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
24226 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24227 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
24229 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
24230 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24231 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24233 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24234 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24235 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24237 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24239 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
24242 return NDR_ERR_SUCCESS
;
24245 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
24247 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
24249 if (flags
& NDR_SET_VALUES
) {
24250 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24252 if (flags
& NDR_IN
) {
24253 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
24255 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24257 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24259 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24260 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24263 if (flags
& NDR_OUT
) {
24264 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
24266 ndr_print_ptr(ndr
, "type", r
->out
.type
);
24268 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
24270 ndr_print_ptr(ndr
, "data", r
->out
.data
);
24272 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
24274 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24276 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24278 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24284 static enum ndr_err_code
ndr_push_spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterData
*r
)
24286 if (flags
& NDR_IN
) {
24287 if (r
->in
.handle
== NULL
) {
24288 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24290 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24291 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24293 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24294 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
));
24295 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24296 if (r
->in
.data
== NULL
) {
24297 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
24300 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
24301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24303 if (flags
& NDR_OUT
) {
24304 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24306 return NDR_ERR_SUCCESS
;
24309 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
24311 TALLOC_CTX
*_mem_save_handle_0
;
24312 if (flags
& NDR_IN
) {
24313 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24314 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24316 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24317 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24318 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24322 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24323 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
));
24325 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24326 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
));
24327 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24328 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
24329 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24330 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
24332 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
24333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24335 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
24338 if (flags
& NDR_OUT
) {
24339 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24341 return NDR_ERR_SUCCESS
;
24344 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
24346 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
24348 if (flags
& NDR_SET_VALUES
) {
24349 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24351 if (flags
& NDR_IN
) {
24352 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
24354 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24356 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24358 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24359 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24360 ndr_print_ptr(ndr
, "data", r
->in
.data
);
24362 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
24364 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24367 if (flags
& NDR_OUT
) {
24368 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
24370 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24376 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24378 if (flags
& NDR_IN
) {
24380 if (flags
& NDR_OUT
) {
24381 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24383 return NDR_ERR_SUCCESS
;
24386 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
24388 if (flags
& NDR_IN
) {
24390 if (flags
& NDR_OUT
) {
24391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24393 return NDR_ERR_SUCCESS
;
24396 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24398 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
24400 if (flags
& NDR_SET_VALUES
) {
24401 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24403 if (flags
& NDR_IN
) {
24404 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
24408 if (flags
& NDR_OUT
) {
24409 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
24411 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24417 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
24419 if (flags
& NDR_IN
) {
24420 if (r
->in
.handle
== NULL
) {
24421 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24423 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24425 if (flags
& NDR_OUT
) {
24426 if (r
->out
.handle
== NULL
) {
24427 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24429 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24430 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24432 return NDR_ERR_SUCCESS
;
24435 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
24437 TALLOC_CTX
*_mem_save_handle_0
;
24438 if (flags
& NDR_IN
) {
24439 ZERO_STRUCT(r
->out
);
24441 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24442 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24444 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24445 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24446 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24448 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24449 *r
->out
.handle
= *r
->in
.handle
;
24451 if (flags
& NDR_OUT
) {
24452 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24453 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24455 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24456 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24457 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24459 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24461 return NDR_ERR_SUCCESS
;
24464 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
24466 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
24468 if (flags
& NDR_SET_VALUES
) {
24469 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24471 if (flags
& NDR_IN
) {
24472 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
24474 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24476 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24480 if (flags
& NDR_OUT
) {
24481 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
24483 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24485 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24487 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24493 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
24495 if (flags
& NDR_IN
) {
24496 if (r
->in
.handle
== NULL
) {
24497 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24499 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24501 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24502 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24504 if (flags
& NDR_OUT
) {
24505 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24507 return NDR_ERR_SUCCESS
;
24510 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
24512 TALLOC_CTX
*_mem_save_handle_0
;
24513 if (flags
& NDR_IN
) {
24514 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24515 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24517 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24518 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24519 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24522 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24523 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24525 if (flags
& NDR_OUT
) {
24526 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24528 return NDR_ERR_SUCCESS
;
24531 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
24533 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
24535 if (flags
& NDR_SET_VALUES
) {
24536 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24538 if (flags
& NDR_IN
) {
24539 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
24541 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24543 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24545 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24546 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24547 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24550 if (flags
& NDR_OUT
) {
24551 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
24553 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24559 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
24561 if (flags
& NDR_IN
) {
24562 if (r
->in
.handle
== NULL
) {
24563 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24565 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24567 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24568 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24569 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
));
24571 if (flags
& NDR_OUT
) {
24572 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24574 return NDR_ERR_SUCCESS
;
24577 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
24579 TALLOC_CTX
*_mem_save_handle_0
;
24580 if (flags
& NDR_IN
) {
24581 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24582 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24584 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24585 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24586 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24588 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24589 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24590 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24591 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
));
24593 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24594 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
));
24596 if (flags
& NDR_OUT
) {
24597 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24599 return NDR_ERR_SUCCESS
;
24602 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
24604 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
24606 if (flags
& NDR_SET_VALUES
) {
24607 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24609 if (flags
& NDR_IN
) {
24610 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
24612 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24614 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24616 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24619 if (flags
& NDR_OUT
) {
24620 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
24622 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24628 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
24630 if (flags
& NDR_IN
) {
24631 if (r
->in
.handle
== NULL
) {
24632 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24634 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24638 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
));
24639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24640 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24641 if (r
->in
.buffer
) {
24642 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24646 if (flags
& NDR_OUT
) {
24647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24650 struct ndr_push
*_ndr_info
;
24651 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24652 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24653 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24654 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24657 if (r
->out
.needed
== NULL
) {
24658 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24661 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24663 return NDR_ERR_SUCCESS
;
24666 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
24668 uint32_t _ptr_buffer
;
24669 uint32_t _ptr_info
;
24670 TALLOC_CTX
*_mem_save_handle_0
;
24671 TALLOC_CTX
*_mem_save_buffer_0
;
24672 TALLOC_CTX
*_mem_save_info_0
;
24673 TALLOC_CTX
*_mem_save_needed_0
;
24674 if (flags
& NDR_IN
) {
24675 ZERO_STRUCT(r
->out
);
24677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24678 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24680 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24682 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24684 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24685 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24686 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24687 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
));
24689 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24690 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
));
24691 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24692 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24694 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24696 r
->in
.buffer
= NULL
;
24698 if (r
->in
.buffer
) {
24699 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24700 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24701 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24705 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24706 ZERO_STRUCTP(r
->out
.needed
);
24708 if (flags
& NDR_OUT
) {
24709 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24711 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24713 r
->out
.info
= NULL
;
24716 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24717 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24719 struct ndr_pull
*_ndr_info
;
24720 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24721 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24722 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24723 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24727 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24728 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24730 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24731 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24734 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24736 return NDR_ERR_SUCCESS
;
24739 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
24741 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
24743 if (flags
& NDR_SET_VALUES
) {
24744 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24746 if (flags
& NDR_IN
) {
24747 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
24749 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24751 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24753 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24754 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24755 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24757 if (r
->in
.buffer
) {
24758 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24761 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24764 if (flags
& NDR_OUT
) {
24765 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
24767 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24770 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24771 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
24774 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24776 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24778 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24784 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
24786 if (flags
& NDR_IN
) {
24787 if (r
->in
.handle
== NULL
) {
24788 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24790 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24791 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24792 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24793 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24794 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
));
24795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24796 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24797 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24799 if (flags
& NDR_OUT
) {
24800 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24802 return NDR_ERR_SUCCESS
;
24805 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
24807 TALLOC_CTX
*_mem_save_handle_0
;
24808 if (flags
& NDR_IN
) {
24809 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24810 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24812 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24813 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24814 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24818 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24819 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
));
24821 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24822 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
));
24823 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24824 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24825 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24827 if (flags
& NDR_OUT
) {
24828 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24830 return NDR_ERR_SUCCESS
;
24833 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
24835 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
24837 if (flags
& NDR_SET_VALUES
) {
24838 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24840 if (flags
& NDR_IN
) {
24841 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
24843 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24845 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24847 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24848 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24849 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24850 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24853 if (flags
& NDR_OUT
) {
24854 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
24856 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24862 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
24864 if (flags
& NDR_IN
) {
24865 if (r
->in
.handle
== NULL
) {
24866 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24868 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24870 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24871 if (r
->in
.buffer
) {
24872 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24876 if (flags
& NDR_OUT
) {
24877 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24879 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24881 if (r
->out
.needed
== NULL
) {
24882 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24885 if (r
->out
.count
== NULL
) {
24886 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24889 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24891 return NDR_ERR_SUCCESS
;
24894 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
24896 uint32_t _ptr_buffer
;
24897 uint32_t _ptr_info
;
24898 TALLOC_CTX
*_mem_save_handle_0
;
24899 TALLOC_CTX
*_mem_save_buffer_0
;
24900 TALLOC_CTX
*_mem_save_info_0
;
24901 TALLOC_CTX
*_mem_save_needed_0
;
24902 TALLOC_CTX
*_mem_save_count_0
;
24903 if (flags
& NDR_IN
) {
24904 ZERO_STRUCT(r
->out
);
24906 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24907 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24909 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24910 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24911 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24916 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24918 r
->in
.buffer
= NULL
;
24920 if (r
->in
.buffer
) {
24921 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24923 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24927 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24928 ZERO_STRUCTP(r
->out
.needed
);
24929 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24930 ZERO_STRUCTP(r
->out
.count
);
24932 if (flags
& NDR_OUT
) {
24933 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24935 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24937 r
->out
.info
= NULL
;
24940 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24941 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24945 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24946 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24948 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24949 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24952 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24953 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24955 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24956 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24957 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24959 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24961 return NDR_ERR_SUCCESS
;
24964 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
24966 uint32_t cntr_info_0
;
24967 if (flags
& NDR_IN
) {
24968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24971 if (flags
& NDR_OUT
) {
24972 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24973 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24974 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24976 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24977 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24980 return NDR_ERR_SUCCESS
;
24983 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
24985 uint32_t cntr_info_0
;
24986 TALLOC_CTX
*_mem_save_info_0
;
24987 if (flags
& NDR_IN
) {
24988 ZERO_STRUCT(r
->out
);
24990 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24993 if (flags
& NDR_OUT
) {
24994 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24995 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24996 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24997 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24998 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24999 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25001 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25002 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25006 return NDR_ERR_SUCCESS
;
25009 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
25011 uint32_t cntr_info_2
;
25012 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
25014 if (flags
& NDR_SET_VALUES
) {
25015 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25017 if (flags
& NDR_IN
) {
25018 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
25020 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25022 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25024 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25025 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25027 if (r
->in
.buffer
) {
25028 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25031 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25034 if (flags
& NDR_OUT
) {
25035 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
25037 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25039 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25041 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25043 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25045 if (*r
->out
.info
) {
25046 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25048 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25050 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25051 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25052 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25060 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25062 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25064 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25070 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
25072 if (flags
& NDR_IN
) {
25073 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25074 if (r
->in
.servername
) {
25075 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25076 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25078 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25081 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25082 if (r
->in
.buffer
) {
25083 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25087 if (flags
& NDR_OUT
) {
25088 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25090 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25092 if (r
->out
.needed
== NULL
) {
25093 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25096 if (r
->out
.count
== NULL
) {
25097 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25100 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25102 return NDR_ERR_SUCCESS
;
25105 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
25107 uint32_t _ptr_servername
;
25108 uint32_t _ptr_buffer
;
25109 uint32_t _ptr_info
;
25110 TALLOC_CTX
*_mem_save_servername_0
;
25111 TALLOC_CTX
*_mem_save_buffer_0
;
25112 TALLOC_CTX
*_mem_save_info_0
;
25113 TALLOC_CTX
*_mem_save_needed_0
;
25114 TALLOC_CTX
*_mem_save_count_0
;
25115 if (flags
& NDR_IN
) {
25116 ZERO_STRUCT(r
->out
);
25118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25119 if (_ptr_servername
) {
25120 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25122 r
->in
.servername
= NULL
;
25124 if (r
->in
.servername
) {
25125 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25126 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25127 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25128 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25129 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25130 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
));
25132 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25133 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25139 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25141 r
->in
.buffer
= NULL
;
25143 if (r
->in
.buffer
) {
25144 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25145 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25146 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25150 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25151 ZERO_STRUCTP(r
->out
.needed
);
25152 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25153 ZERO_STRUCTP(r
->out
.count
);
25155 if (flags
& NDR_OUT
) {
25156 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25158 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25160 r
->out
.info
= NULL
;
25163 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25164 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25168 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25169 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25171 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25172 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25173 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25175 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25176 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25178 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25179 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25180 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25182 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25184 return NDR_ERR_SUCCESS
;
25187 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
25189 uint32_t cntr_info_0
;
25190 if (flags
& NDR_IN
) {
25191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25194 if (flags
& NDR_OUT
) {
25195 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25196 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25197 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25199 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25200 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25203 return NDR_ERR_SUCCESS
;
25206 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
25208 uint32_t cntr_info_0
;
25209 TALLOC_CTX
*_mem_save_info_0
;
25210 if (flags
& NDR_IN
) {
25211 ZERO_STRUCT(r
->out
);
25213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25214 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25216 if (flags
& NDR_OUT
) {
25217 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25218 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25219 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25220 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25221 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25222 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25224 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25225 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25229 return NDR_ERR_SUCCESS
;
25232 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
25234 uint32_t cntr_info_2
;
25235 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
25237 if (flags
& NDR_SET_VALUES
) {
25238 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25240 if (flags
& NDR_IN
) {
25241 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
25243 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25245 if (r
->in
.servername
) {
25246 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25249 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25250 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25252 if (r
->in
.buffer
) {
25253 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25256 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25259 if (flags
& NDR_OUT
) {
25260 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
25262 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25264 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25266 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25268 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25270 if (*r
->out
.info
) {
25271 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25273 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25275 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25276 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25277 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25285 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25287 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25289 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25295 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
25297 if (flags
& NDR_IN
) {
25298 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25299 if (r
->in
.servername
) {
25300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25303 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25306 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25307 if (r
->in
.buffer
) {
25308 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25312 if (flags
& NDR_OUT
) {
25313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25315 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25317 if (r
->out
.needed
== NULL
) {
25318 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25321 if (r
->out
.count
== NULL
) {
25322 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25325 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25327 return NDR_ERR_SUCCESS
;
25330 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
25332 uint32_t _ptr_servername
;
25333 uint32_t _ptr_buffer
;
25334 uint32_t _ptr_info
;
25335 TALLOC_CTX
*_mem_save_servername_0
;
25336 TALLOC_CTX
*_mem_save_buffer_0
;
25337 TALLOC_CTX
*_mem_save_info_0
;
25338 TALLOC_CTX
*_mem_save_needed_0
;
25339 TALLOC_CTX
*_mem_save_count_0
;
25340 if (flags
& NDR_IN
) {
25341 ZERO_STRUCT(r
->out
);
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25344 if (_ptr_servername
) {
25345 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25347 r
->in
.servername
= NULL
;
25349 if (r
->in
.servername
) {
25350 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25351 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25352 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25353 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25354 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25355 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
));
25357 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25358 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25364 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25366 r
->in
.buffer
= NULL
;
25368 if (r
->in
.buffer
) {
25369 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25370 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25371 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25375 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25376 ZERO_STRUCTP(r
->out
.needed
);
25377 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25378 ZERO_STRUCTP(r
->out
.count
);
25380 if (flags
& NDR_OUT
) {
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25383 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25385 r
->out
.info
= NULL
;
25388 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25389 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25394 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25396 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25397 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25400 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25401 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25403 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25404 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25407 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25409 return NDR_ERR_SUCCESS
;
25412 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
25414 uint32_t cntr_info_0
;
25415 if (flags
& NDR_IN
) {
25416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25419 if (flags
& NDR_OUT
) {
25420 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25421 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25422 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25424 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25425 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25428 return NDR_ERR_SUCCESS
;
25431 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
25433 uint32_t cntr_info_0
;
25434 TALLOC_CTX
*_mem_save_info_0
;
25435 if (flags
& NDR_IN
) {
25436 ZERO_STRUCT(r
->out
);
25438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25441 if (flags
& NDR_OUT
) {
25442 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25443 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25444 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25445 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25446 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25447 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25449 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25450 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25454 return NDR_ERR_SUCCESS
;
25457 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
25459 uint32_t cntr_info_2
;
25460 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
25462 if (flags
& NDR_SET_VALUES
) {
25463 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25465 if (flags
& NDR_IN
) {
25466 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
25468 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25470 if (r
->in
.servername
) {
25471 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25474 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25475 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25477 if (r
->in
.buffer
) {
25478 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25481 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25484 if (flags
& NDR_OUT
) {
25485 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
25487 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25489 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25491 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25493 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25495 if (*r
->out
.info
) {
25496 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25498 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25500 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25501 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25502 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25510 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25512 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25514 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25520 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
25522 if (flags
& NDR_IN
) {
25523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
25524 if (r
->in
.server_name
) {
25525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25526 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25528 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
));
25530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
25531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25532 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25534 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
));
25536 if (flags
& NDR_OUT
) {
25537 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25539 return NDR_ERR_SUCCESS
;
25542 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
25544 uint32_t _ptr_server_name
;
25545 TALLOC_CTX
*_mem_save_server_name_0
;
25546 if (flags
& NDR_IN
) {
25547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
25548 if (_ptr_server_name
) {
25549 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
25551 r
->in
.server_name
= NULL
;
25553 if (r
->in
.server_name
) {
25554 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25555 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
25556 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25557 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25558 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
25559 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
));
25561 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
25562 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
));
25563 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
25565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
25566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
25567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
25568 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
25569 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
));
25571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
25572 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
));
25574 if (flags
& NDR_OUT
) {
25575 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25577 return NDR_ERR_SUCCESS
;
25580 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
25582 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
25584 if (flags
& NDR_SET_VALUES
) {
25585 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25587 if (flags
& NDR_IN
) {
25588 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
25590 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
25592 if (r
->in
.server_name
) {
25593 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25596 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
25597 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
25600 if (flags
& NDR_OUT
) {
25601 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
25603 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25609 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
25611 if (flags
& NDR_IN
) {
25613 if (flags
& NDR_OUT
) {
25614 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25616 return NDR_ERR_SUCCESS
;
25619 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
25621 if (flags
& NDR_IN
) {
25623 if (flags
& NDR_OUT
) {
25624 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25626 return NDR_ERR_SUCCESS
;
25629 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
25631 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
25633 if (flags
& NDR_SET_VALUES
) {
25634 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25636 if (flags
& NDR_IN
) {
25637 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
25641 if (flags
& NDR_OUT
) {
25642 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
25644 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25650 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
25652 if (flags
& NDR_IN
) {
25654 if (flags
& NDR_OUT
) {
25655 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25657 return NDR_ERR_SUCCESS
;
25660 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
25662 if (flags
& NDR_IN
) {
25664 if (flags
& NDR_OUT
) {
25665 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25667 return NDR_ERR_SUCCESS
;
25670 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
25672 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
25674 if (flags
& NDR_SET_VALUES
) {
25675 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25677 if (flags
& NDR_IN
) {
25678 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
25682 if (flags
& NDR_OUT
) {
25683 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
25685 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25691 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25693 if (flags
& NDR_IN
) {
25694 if (r
->in
.handle
== NULL
) {
25695 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25697 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25698 if (r
->in
.devmode_ctr
== NULL
) {
25699 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25701 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25703 if (flags
& NDR_OUT
) {
25704 if (r
->out
.gdi_handle
== NULL
) {
25705 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25707 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25708 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25710 return NDR_ERR_SUCCESS
;
25713 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
25715 TALLOC_CTX
*_mem_save_handle_0
;
25716 TALLOC_CTX
*_mem_save_gdi_handle_0
;
25717 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25718 if (flags
& NDR_IN
) {
25719 ZERO_STRUCT(r
->out
);
25721 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25722 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25724 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25726 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25728 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25729 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25731 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25733 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25735 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25736 ZERO_STRUCTP(r
->out
.gdi_handle
);
25738 if (flags
& NDR_OUT
) {
25739 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25740 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25742 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25743 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25744 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25746 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25748 return NDR_ERR_SUCCESS
;
25751 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25753 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
25755 if (flags
& NDR_SET_VALUES
) {
25756 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25758 if (flags
& NDR_IN
) {
25759 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
25761 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25763 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25765 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25767 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25771 if (flags
& NDR_OUT
) {
25772 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
25774 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25776 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25778 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25784 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25786 if (flags
& NDR_IN
) {
25788 if (flags
& NDR_OUT
) {
25789 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25791 return NDR_ERR_SUCCESS
;
25794 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25796 if (flags
& NDR_IN
) {
25798 if (flags
& NDR_OUT
) {
25799 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25801 return NDR_ERR_SUCCESS
;
25804 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25806 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
25808 if (flags
& NDR_SET_VALUES
) {
25809 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25811 if (flags
& NDR_IN
) {
25812 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25816 if (flags
& NDR_OUT
) {
25817 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25819 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25825 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25827 if (flags
& NDR_IN
) {
25828 if (r
->in
.gdi_handle
== NULL
) {
25829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25831 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25833 if (flags
& NDR_OUT
) {
25834 if (r
->out
.gdi_handle
== NULL
) {
25835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25837 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25838 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25840 return NDR_ERR_SUCCESS
;
25843 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
25845 TALLOC_CTX
*_mem_save_gdi_handle_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
.gdi_handle
);
25852 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25854 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25856 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25857 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
25859 if (flags
& NDR_OUT
) {
25860 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25861 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25863 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25864 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25865 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25867 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25869 return NDR_ERR_SUCCESS
;
25872 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25874 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
25876 if (flags
& NDR_SET_VALUES
) {
25877 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25879 if (flags
& NDR_IN
) {
25880 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
25882 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25884 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25888 if (flags
& NDR_OUT
) {
25889 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
25891 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25893 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25895 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25901 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25903 if (flags
& NDR_IN
) {
25905 if (flags
& NDR_OUT
) {
25906 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25908 return NDR_ERR_SUCCESS
;
25911 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
25913 if (flags
& NDR_IN
) {
25915 if (flags
& NDR_OUT
) {
25916 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25918 return NDR_ERR_SUCCESS
;
25921 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25923 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
25925 if (flags
& NDR_SET_VALUES
) {
25926 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25928 if (flags
& NDR_IN
) {
25929 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
25933 if (flags
& NDR_OUT
) {
25934 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
25936 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25942 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25944 if (flags
& NDR_IN
) {
25946 if (flags
& NDR_OUT
) {
25947 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25949 return NDR_ERR_SUCCESS
;
25952 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
25954 if (flags
& NDR_IN
) {
25956 if (flags
& NDR_OUT
) {
25957 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25959 return NDR_ERR_SUCCESS
;
25962 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25964 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
25966 if (flags
& NDR_SET_VALUES
) {
25967 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25969 if (flags
& NDR_IN
) {
25970 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
25974 if (flags
& NDR_OUT
) {
25975 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
25977 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25983 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
25985 if (flags
& NDR_IN
) {
25987 if (flags
& NDR_OUT
) {
25988 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25990 return NDR_ERR_SUCCESS
;
25993 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
25995 if (flags
& NDR_IN
) {
25997 if (flags
& NDR_OUT
) {
25998 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26000 return NDR_ERR_SUCCESS
;
26003 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
26005 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
26007 if (flags
& NDR_SET_VALUES
) {
26008 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26010 if (flags
& NDR_IN
) {
26011 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
26015 if (flags
& NDR_OUT
) {
26016 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
26018 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26024 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
26026 if (flags
& NDR_IN
) {
26028 if (flags
& NDR_OUT
) {
26029 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26031 return NDR_ERR_SUCCESS
;
26034 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
26036 if (flags
& NDR_IN
) {
26038 if (flags
& NDR_OUT
) {
26039 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26041 return NDR_ERR_SUCCESS
;
26044 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
26046 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
26048 if (flags
& NDR_SET_VALUES
) {
26049 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26051 if (flags
& NDR_IN
) {
26052 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
26056 if (flags
& NDR_OUT
) {
26057 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
26059 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26065 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
26067 if (flags
& NDR_IN
) {
26069 if (flags
& NDR_OUT
) {
26070 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26072 return NDR_ERR_SUCCESS
;
26075 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
26077 if (flags
& NDR_IN
) {
26079 if (flags
& NDR_OUT
) {
26080 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26082 return NDR_ERR_SUCCESS
;
26085 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
26087 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
26089 if (flags
& NDR_SET_VALUES
) {
26090 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26092 if (flags
& NDR_IN
) {
26093 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
26097 if (flags
& NDR_OUT
) {
26098 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
26100 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26106 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
26108 if (flags
& NDR_IN
) {
26110 if (flags
& NDR_OUT
) {
26111 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26113 return NDR_ERR_SUCCESS
;
26116 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
26118 if (flags
& NDR_IN
) {
26120 if (flags
& NDR_OUT
) {
26121 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26123 return NDR_ERR_SUCCESS
;
26126 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
26128 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
26130 if (flags
& NDR_SET_VALUES
) {
26131 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26133 if (flags
& NDR_IN
) {
26134 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
26138 if (flags
& NDR_OUT
) {
26139 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
26141 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26147 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26149 if (flags
& NDR_IN
) {
26151 if (flags
& NDR_OUT
) {
26152 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26154 return NDR_ERR_SUCCESS
;
26157 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
26159 if (flags
& NDR_IN
) {
26161 if (flags
& NDR_OUT
) {
26162 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26164 return NDR_ERR_SUCCESS
;
26167 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26169 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
26171 if (flags
& NDR_SET_VALUES
) {
26172 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26174 if (flags
& NDR_IN
) {
26175 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
26179 if (flags
& NDR_OUT
) {
26180 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
26182 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26188 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26190 if (flags
& NDR_IN
) {
26192 if (flags
& NDR_OUT
) {
26193 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26195 return NDR_ERR_SUCCESS
;
26198 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
26200 if (flags
& NDR_IN
) {
26202 if (flags
& NDR_OUT
) {
26203 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26205 return NDR_ERR_SUCCESS
;
26208 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26210 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
26212 if (flags
& NDR_SET_VALUES
) {
26213 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26215 if (flags
& NDR_IN
) {
26216 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
26220 if (flags
& NDR_OUT
) {
26221 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
26223 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26229 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
26231 if (flags
& NDR_IN
) {
26232 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
26233 if (r
->in
.servername
) {
26234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26236 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26237 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26239 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
26240 if (r
->in
.print_processor_name
) {
26241 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26242 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26243 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26244 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
));
26246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26247 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26248 if (r
->in
.buffer
) {
26249 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26253 if (flags
& NDR_OUT
) {
26254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26256 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
26258 if (r
->out
.needed
== NULL
) {
26259 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26262 if (r
->out
.count
== NULL
) {
26263 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26266 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26268 return NDR_ERR_SUCCESS
;
26271 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
26273 uint32_t _ptr_servername
;
26274 uint32_t _ptr_print_processor_name
;
26275 uint32_t _ptr_buffer
;
26276 uint32_t _ptr_info
;
26277 TALLOC_CTX
*_mem_save_servername_0
;
26278 TALLOC_CTX
*_mem_save_print_processor_name_0
;
26279 TALLOC_CTX
*_mem_save_buffer_0
;
26280 TALLOC_CTX
*_mem_save_info_0
;
26281 TALLOC_CTX
*_mem_save_needed_0
;
26282 TALLOC_CTX
*_mem_save_count_0
;
26283 if (flags
& NDR_IN
) {
26284 ZERO_STRUCT(r
->out
);
26286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
26287 if (_ptr_servername
) {
26288 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
26290 r
->in
.servername
= NULL
;
26292 if (r
->in
.servername
) {
26293 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26294 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
26295 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
26296 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
26297 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
26298 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
));
26300 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
26301 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
26302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
26304 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
26305 if (_ptr_print_processor_name
) {
26306 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
26308 r
->in
.print_processor_name
= NULL
;
26310 if (r
->in
.print_processor_name
) {
26311 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26312 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
26313 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
26314 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
26315 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
26316 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
));
26318 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
26319 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
));
26320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
26322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26323 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26325 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26327 r
->in
.buffer
= NULL
;
26329 if (r
->in
.buffer
) {
26330 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26331 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26332 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26336 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26337 ZERO_STRUCTP(r
->out
.needed
);
26338 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26339 ZERO_STRUCTP(r
->out
.count
);
26341 if (flags
& NDR_OUT
) {
26342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26344 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26346 r
->out
.info
= NULL
;
26349 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26350 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26351 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
26352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26354 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26355 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26357 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26358 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26359 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26361 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26362 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26364 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26365 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26368 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26370 return NDR_ERR_SUCCESS
;
26373 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
26375 uint32_t cntr_info_0
;
26376 if (flags
& NDR_IN
) {
26377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
26380 if (flags
& NDR_OUT
) {
26381 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26382 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26383 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26385 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26386 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26389 return NDR_ERR_SUCCESS
;
26392 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
26394 uint32_t cntr_info_0
;
26395 TALLOC_CTX
*_mem_save_info_0
;
26396 if (flags
& NDR_IN
) {
26397 ZERO_STRUCT(r
->out
);
26399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
26402 if (flags
& NDR_OUT
) {
26403 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
26404 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26405 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26406 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26407 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26408 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26410 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26411 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26415 return NDR_ERR_SUCCESS
;
26418 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
26420 uint32_t cntr_info_2
;
26421 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
26423 if (flags
& NDR_SET_VALUES
) {
26424 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26426 if (flags
& NDR_IN
) {
26427 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
26429 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
26431 if (r
->in
.servername
) {
26432 ndr_print_string(ndr
, "servername", r
->in
.servername
);
26435 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26437 if (r
->in
.print_processor_name
) {
26438 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26441 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26442 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26444 if (r
->in
.buffer
) {
26445 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26448 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26451 if (flags
& NDR_OUT
) {
26452 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
26454 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26456 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26458 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26460 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26462 if (*r
->out
.info
) {
26463 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
26465 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
26467 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
26468 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
26469 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
26477 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26479 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26481 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26487 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
26489 if (flags
& NDR_IN
) {
26490 if (r
->in
.handle
== NULL
) {
26491 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26493 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26494 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
26495 if (r
->in
.data_type
) {
26496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26498 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26499 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
));
26501 if (r
->in
.devmode_ctr
== NULL
) {
26502 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26504 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26506 if (flags
& NDR_OUT
) {
26507 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26509 return NDR_ERR_SUCCESS
;
26512 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
26514 uint32_t _ptr_data_type
;
26515 TALLOC_CTX
*_mem_save_handle_0
;
26516 TALLOC_CTX
*_mem_save_data_type_0
;
26517 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26518 if (flags
& NDR_IN
) {
26519 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26520 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26522 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26523 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26524 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
26527 if (_ptr_data_type
) {
26528 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
26530 r
->in
.data_type
= NULL
;
26532 if (r
->in
.data_type
) {
26533 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26534 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
26535 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
26536 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
26537 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
26538 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
));
26540 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
26541 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
));
26542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
26544 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26545 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26547 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26548 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26549 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26552 if (flags
& NDR_OUT
) {
26553 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26555 return NDR_ERR_SUCCESS
;
26558 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
26560 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
26562 if (flags
& NDR_SET_VALUES
) {
26563 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26565 if (flags
& NDR_IN
) {
26566 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
26568 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26570 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26572 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
26574 if (r
->in
.data_type
) {
26575 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
26578 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26580 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26584 if (flags
& NDR_OUT
) {
26585 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
26587 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26593 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26595 if (flags
& NDR_IN
) {
26596 if (r
->in
.handle
== NULL
) {
26597 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26599 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
26601 if (r
->in
.architecture
) {
26602 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26605 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26608 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26609 if (r
->in
.buffer
) {
26610 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
26614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
26616 if (flags
& NDR_OUT
) {
26617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26620 struct ndr_push
*_ndr_info
;
26621 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26622 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26623 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26624 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26627 if (r
->out
.needed
== NULL
) {
26628 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26631 if (r
->out
.server_major_version
== NULL
) {
26632 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
26635 if (r
->out
.server_minor_version
== NULL
) {
26636 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
26639 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26641 return NDR_ERR_SUCCESS
;
26644 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
26646 uint32_t _ptr_architecture
;
26647 uint32_t _ptr_buffer
;
26648 uint32_t _ptr_info
;
26649 TALLOC_CTX
*_mem_save_handle_0
;
26650 TALLOC_CTX
*_mem_save_architecture_0
;
26651 TALLOC_CTX
*_mem_save_buffer_0
;
26652 TALLOC_CTX
*_mem_save_info_0
;
26653 TALLOC_CTX
*_mem_save_needed_0
;
26654 TALLOC_CTX
*_mem_save_server_major_version_0
;
26655 TALLOC_CTX
*_mem_save_server_minor_version_0
;
26656 if (flags
& NDR_IN
) {
26657 ZERO_STRUCT(r
->out
);
26659 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26660 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26662 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26663 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26664 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26666 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
26667 if (_ptr_architecture
) {
26668 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
26670 r
->in
.architecture
= NULL
;
26672 if (r
->in
.architecture
) {
26673 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26674 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
26675 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26676 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26677 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
26678 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
));
26680 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
26681 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
26682 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
26684 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26687 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26689 r
->in
.buffer
= NULL
;
26691 if (r
->in
.buffer
) {
26692 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26693 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26694 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
26699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
26700 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26701 ZERO_STRUCTP(r
->out
.needed
);
26702 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26703 ZERO_STRUCTP(r
->out
.server_major_version
);
26704 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26705 ZERO_STRUCTP(r
->out
.server_minor_version
);
26707 if (flags
& NDR_OUT
) {
26708 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26710 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26712 r
->out
.info
= NULL
;
26715 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26716 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26718 struct ndr_pull
*_ndr_info
;
26719 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26720 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26721 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26722 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26726 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26727 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26729 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26730 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26733 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26734 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26736 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26737 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
26738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
26739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26741 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26743 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26744 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
26745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
26746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26747 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26749 return NDR_ERR_SUCCESS
;
26752 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26754 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
26756 if (flags
& NDR_SET_VALUES
) {
26757 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26759 if (flags
& NDR_IN
) {
26760 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
26762 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26764 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26766 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
26768 if (r
->in
.architecture
) {
26769 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26772 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26773 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26775 if (r
->in
.buffer
) {
26776 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26779 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26780 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
26781 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
26784 if (flags
& NDR_OUT
) {
26785 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
26787 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26790 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
26791 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
26794 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26796 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26798 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
26800 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
26802 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
26804 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
26806 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26812 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26814 if (flags
& NDR_IN
) {
26816 if (flags
& NDR_OUT
) {
26817 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26819 return NDR_ERR_SUCCESS
;
26822 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
26824 if (flags
& NDR_IN
) {
26826 if (flags
& NDR_OUT
) {
26827 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26829 return NDR_ERR_SUCCESS
;
26832 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26834 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
26836 if (flags
& NDR_SET_VALUES
) {
26837 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26839 if (flags
& NDR_IN
) {
26840 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
26844 if (flags
& NDR_OUT
) {
26845 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
26847 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26853 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26855 if (flags
& NDR_IN
) {
26857 if (flags
& NDR_OUT
) {
26858 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26860 return NDR_ERR_SUCCESS
;
26863 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
26865 if (flags
& NDR_IN
) {
26867 if (flags
& NDR_OUT
) {
26868 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26870 return NDR_ERR_SUCCESS
;
26873 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26875 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
26877 if (flags
& NDR_SET_VALUES
) {
26878 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26880 if (flags
& NDR_IN
) {
26881 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
26885 if (flags
& NDR_OUT
) {
26886 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
26888 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26894 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26896 if (flags
& NDR_IN
) {
26897 if (r
->in
.handle
== NULL
) {
26898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26900 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26902 if (flags
& NDR_OUT
) {
26903 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26905 return NDR_ERR_SUCCESS
;
26908 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
26910 TALLOC_CTX
*_mem_save_handle_0
;
26911 if (flags
& NDR_IN
) {
26912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26913 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26915 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26916 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26917 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26920 if (flags
& NDR_OUT
) {
26921 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26923 return NDR_ERR_SUCCESS
;
26926 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26928 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
26930 if (flags
& NDR_SET_VALUES
) {
26931 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26933 if (flags
& NDR_IN
) {
26934 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
26936 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26938 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26942 if (flags
& NDR_OUT
) {
26943 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
26945 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26951 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26953 if (flags
& NDR_IN
) {
26955 if (flags
& NDR_OUT
) {
26956 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26958 return NDR_ERR_SUCCESS
;
26961 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26963 if (flags
& NDR_IN
) {
26965 if (flags
& NDR_OUT
) {
26966 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26968 return NDR_ERR_SUCCESS
;
26971 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26973 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26975 if (flags
& NDR_SET_VALUES
) {
26976 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26978 if (flags
& NDR_IN
) {
26979 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26983 if (flags
& NDR_OUT
) {
26984 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26986 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26992 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
26994 if (flags
& NDR_IN
) {
26995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26996 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26998 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
));
26999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
27000 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27002 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
27003 if (r
->in
.buffer
) {
27004 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27005 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
27008 if (flags
& NDR_OUT
) {
27009 if (r
->out
.handle
== NULL
) {
27010 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27012 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27013 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27015 return NDR_ERR_SUCCESS
;
27018 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
27020 uint32_t _ptr_buffer
;
27021 TALLOC_CTX
*_mem_save_buffer_0
;
27022 TALLOC_CTX
*_mem_save_handle_0
;
27023 if (flags
& NDR_IN
) {
27024 ZERO_STRUCT(r
->out
);
27026 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
27027 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
27028 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
27029 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
));
27031 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
27032 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
));
27033 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
27034 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27035 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
27036 if (r
->in
.bufsize
> 512) {
27037 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
27039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
27041 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
27043 r
->in
.buffer
= NULL
;
27045 if (r
->in
.buffer
) {
27046 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
27048 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27049 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
27050 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
27051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
27053 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27054 ZERO_STRUCTP(r
->out
.handle
);
27055 if (r
->in
.buffer
) {
27056 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
27059 if (flags
& NDR_OUT
) {
27060 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27061 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27063 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27064 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27065 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27067 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27069 return NDR_ERR_SUCCESS
;
27072 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
27074 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
27076 if (flags
& NDR_SET_VALUES
) {
27077 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27079 if (flags
& NDR_IN
) {
27080 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
27082 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
27083 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
27084 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27085 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
27086 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27088 if (r
->in
.buffer
) {
27089 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
27094 if (flags
& NDR_OUT
) {
27095 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
27097 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27099 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27101 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27107 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27109 if (flags
& NDR_IN
) {
27110 if (r
->in
.handle
== NULL
) {
27111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27113 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27114 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27116 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
27117 if (r
->in
.buffer
) {
27118 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27119 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
27122 if (flags
& NDR_OUT
) {
27123 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27125 return NDR_ERR_SUCCESS
;
27128 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
27130 uint32_t _ptr_buffer
;
27131 TALLOC_CTX
*_mem_save_handle_0
;
27132 TALLOC_CTX
*_mem_save_buffer_0
;
27133 if (flags
& NDR_IN
) {
27134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27135 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27137 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27138 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27139 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27141 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
27143 if (r
->in
.bufsize
> 512) {
27144 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
27146 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
27148 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
27150 r
->in
.buffer
= NULL
;
27152 if (r
->in
.buffer
) {
27153 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27154 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
27155 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27156 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
27157 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
27158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
27160 if (r
->in
.buffer
) {
27161 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
27164 if (flags
& NDR_OUT
) {
27165 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27167 return NDR_ERR_SUCCESS
;
27170 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27172 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
27174 if (flags
& NDR_SET_VALUES
) {
27175 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27177 if (flags
& NDR_IN
) {
27178 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
27180 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27182 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27184 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27185 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
27186 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27188 if (r
->in
.buffer
) {
27189 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
27194 if (flags
& NDR_OUT
) {
27195 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
27197 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27203 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27205 if (flags
& NDR_IN
) {
27206 if (r
->in
.handle
== NULL
) {
27207 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27209 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27211 if (flags
& NDR_OUT
) {
27212 if (r
->out
.handle
== NULL
) {
27213 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27215 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27216 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27218 return NDR_ERR_SUCCESS
;
27221 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
27223 TALLOC_CTX
*_mem_save_handle_0
;
27224 if (flags
& NDR_IN
) {
27225 ZERO_STRUCT(r
->out
);
27227 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27228 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27230 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27231 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27232 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27234 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27235 *r
->out
.handle
= *r
->in
.handle
;
27237 if (flags
& NDR_OUT
) {
27238 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27239 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27241 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27242 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27243 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27244 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27245 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27247 return NDR_ERR_SUCCESS
;
27250 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27252 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
27254 if (flags
& NDR_SET_VALUES
) {
27255 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27257 if (flags
& NDR_IN
) {
27258 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
27260 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27262 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27266 if (flags
& NDR_OUT
) {
27267 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
27269 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27271 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27273 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27279 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
27281 if (flags
& NDR_IN
) {
27283 if (flags
& NDR_OUT
) {
27284 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27286 return NDR_ERR_SUCCESS
;
27289 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
27291 if (flags
& NDR_IN
) {
27293 if (flags
& NDR_OUT
) {
27294 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27296 return NDR_ERR_SUCCESS
;
27299 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
27301 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
27303 if (flags
& NDR_SET_VALUES
) {
27304 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27306 if (flags
& NDR_IN
) {
27307 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
27311 if (flags
& NDR_OUT
) {
27312 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
27314 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27320 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27322 if (flags
& NDR_IN
) {
27324 if (flags
& NDR_OUT
) {
27325 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27327 return NDR_ERR_SUCCESS
;
27330 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27332 if (flags
& NDR_IN
) {
27334 if (flags
& NDR_OUT
) {
27335 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27337 return NDR_ERR_SUCCESS
;
27340 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27342 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
27344 if (flags
& NDR_SET_VALUES
) {
27345 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27347 if (flags
& NDR_IN
) {
27348 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27352 if (flags
& NDR_OUT
) {
27353 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27355 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27361 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
27363 if (flags
& NDR_IN
) {
27365 if (flags
& NDR_OUT
) {
27366 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27368 return NDR_ERR_SUCCESS
;
27371 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
27373 if (flags
& NDR_IN
) {
27375 if (flags
& NDR_OUT
) {
27376 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27378 return NDR_ERR_SUCCESS
;
27381 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
27383 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
27385 if (flags
& NDR_SET_VALUES
) {
27386 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27388 if (flags
& NDR_IN
) {
27389 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
27393 if (flags
& NDR_OUT
) {
27394 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
27396 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27402 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27404 if (flags
& NDR_IN
) {
27406 if (flags
& NDR_OUT
) {
27407 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27409 return NDR_ERR_SUCCESS
;
27412 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
27414 if (flags
& NDR_IN
) {
27416 if (flags
& NDR_OUT
) {
27417 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27419 return NDR_ERR_SUCCESS
;
27422 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27424 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
27426 if (flags
& NDR_SET_VALUES
) {
27427 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27429 if (flags
& NDR_IN
) {
27430 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
27434 if (flags
& NDR_OUT
) {
27435 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
27437 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27443 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27445 if (flags
& NDR_IN
) {
27446 if (r
->in
.handle
== NULL
) {
27447 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27449 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27450 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
27452 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
27453 if (r
->in
.local_machine
) {
27454 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27455 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27456 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27457 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
));
27459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
27460 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
27461 if (r
->in
.notify_options
) {
27462 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27465 if (flags
& NDR_OUT
) {
27466 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27468 return NDR_ERR_SUCCESS
;
27471 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27473 uint32_t _ptr_local_machine
;
27474 uint32_t _ptr_notify_options
;
27475 TALLOC_CTX
*_mem_save_handle_0
;
27476 TALLOC_CTX
*_mem_save_local_machine_0
;
27477 TALLOC_CTX
*_mem_save_notify_options_0
;
27478 if (flags
& NDR_IN
) {
27479 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27480 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27482 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27483 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27484 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27486 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
27488 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
27489 if (_ptr_local_machine
) {
27490 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
27492 r
->in
.local_machine
= NULL
;
27494 if (r
->in
.local_machine
) {
27495 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27496 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
27497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
27498 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
27499 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
27500 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
));
27502 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
27503 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
));
27504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
27506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
27507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
27508 if (_ptr_notify_options
) {
27509 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
27511 r
->in
.notify_options
= NULL
;
27513 if (r
->in
.notify_options
) {
27514 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27515 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
27516 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
27520 if (flags
& NDR_OUT
) {
27521 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27523 return NDR_ERR_SUCCESS
;
27526 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27528 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27530 if (flags
& NDR_SET_VALUES
) {
27531 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27533 if (flags
& NDR_IN
) {
27534 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27536 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27538 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27540 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27541 ndr_print_uint32(ndr
, "options", r
->in
.options
);
27542 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
27544 if (r
->in
.local_machine
) {
27545 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
27548 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
27549 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
27551 if (r
->in
.notify_options
) {
27552 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
27557 if (flags
& NDR_OUT
) {
27558 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27560 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27566 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27568 if (flags
& NDR_IN
) {
27569 if (r
->in
.handle
== NULL
) {
27570 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27572 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
27574 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27575 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
27576 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27577 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27579 if (flags
& NDR_OUT
) {
27580 if (r
->out
.reply_result
== NULL
) {
27581 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27583 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
27584 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27586 return NDR_ERR_SUCCESS
;
27589 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
27591 TALLOC_CTX
*_mem_save_handle_0
;
27592 TALLOC_CTX
*_mem_save_reply_result_0
;
27593 if (flags
& NDR_IN
) {
27594 ZERO_STRUCT(r
->out
);
27596 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27597 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27599 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27601 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
27604 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
27606 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27607 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27608 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27609 ZERO_STRUCTP(r
->out
.reply_result
);
27611 if (flags
& NDR_OUT
) {
27612 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27613 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27615 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27616 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
27617 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
27618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
27619 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27621 return NDR_ERR_SUCCESS
;
27624 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27626 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
27628 if (flags
& NDR_SET_VALUES
) {
27629 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27631 if (flags
& NDR_IN
) {
27632 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
27634 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27636 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27638 ndr_print_uint32(ndr
, "color", r
->in
.color
);
27639 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27640 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
27641 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
27642 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
27645 if (flags
& NDR_OUT
) {
27646 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
27648 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
27650 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
27652 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27658 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27660 if (flags
& NDR_IN
) {
27661 if (r
->in
.handle
== NULL
) {
27662 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27664 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
27666 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
27667 if (r
->in
.options
) {
27668 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27671 if (flags
& NDR_OUT
) {
27672 if (r
->out
.info
== NULL
) {
27673 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27675 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
27676 if (*r
->out
.info
) {
27677 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27679 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27681 return NDR_ERR_SUCCESS
;
27684 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27686 uint32_t _ptr_options
;
27687 uint32_t _ptr_info
;
27688 TALLOC_CTX
*_mem_save_handle_0
;
27689 TALLOC_CTX
*_mem_save_options_0
;
27690 TALLOC_CTX
*_mem_save_info_0
;
27691 TALLOC_CTX
*_mem_save_info_1
;
27692 if (flags
& NDR_IN
) {
27693 ZERO_STRUCT(r
->out
);
27695 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27696 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27698 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27699 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27700 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27702 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
27703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
27704 if (_ptr_options
) {
27705 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
27707 r
->in
.options
= NULL
;
27709 if (r
->in
.options
) {
27710 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27711 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
27712 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
27715 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27716 ZERO_STRUCTP(r
->out
.info
);
27718 if (flags
& NDR_OUT
) {
27719 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27720 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27722 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27723 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
27724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
27726 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
27728 *r
->out
.info
= NULL
;
27730 if (*r
->out
.info
) {
27731 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
27732 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
27733 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
27736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
27737 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27739 return NDR_ERR_SUCCESS
;
27742 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27744 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
27746 if (flags
& NDR_SET_VALUES
) {
27747 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27749 if (flags
& NDR_IN
) {
27750 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27752 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27754 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27756 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
27757 ndr_print_ptr(ndr
, "options", r
->in
.options
);
27759 if (r
->in
.options
) {
27760 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
27765 if (flags
& NDR_OUT
) {
27766 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27768 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27770 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27772 if (*r
->out
.info
) {
27773 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
27777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27783 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
27785 if (flags
& NDR_IN
) {
27787 if (flags
& NDR_OUT
) {
27788 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27790 return NDR_ERR_SUCCESS
;
27793 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
27795 if (flags
& NDR_IN
) {
27797 if (flags
& NDR_OUT
) {
27798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27800 return NDR_ERR_SUCCESS
;
27803 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
27805 ndr_print_struct(ndr
, name
, "spoolss_44");
27807 if (flags
& NDR_SET_VALUES
) {
27808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27810 if (flags
& NDR_IN
) {
27811 ndr_print_struct(ndr
, "in", "spoolss_44");
27815 if (flags
& NDR_OUT
) {
27816 ndr_print_struct(ndr
, "out", "spoolss_44");
27818 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27824 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27826 if (flags
& NDR_IN
) {
27827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
27828 if (r
->in
.printername
) {
27829 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27830 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27831 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27832 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
27835 if (r
->in
.datatype
) {
27836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27837 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27838 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27839 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27842 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
27843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
27844 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27845 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27847 if (flags
& NDR_OUT
) {
27848 if (r
->out
.handle
== NULL
) {
27849 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27851 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27852 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27854 return NDR_ERR_SUCCESS
;
27857 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
27859 uint32_t _ptr_printername
;
27860 uint32_t _ptr_datatype
;
27861 TALLOC_CTX
*_mem_save_printername_0
;
27862 TALLOC_CTX
*_mem_save_datatype_0
;
27863 TALLOC_CTX
*_mem_save_handle_0
;
27864 if (flags
& NDR_IN
) {
27865 ZERO_STRUCT(r
->out
);
27867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
27868 if (_ptr_printername
) {
27869 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
27871 r
->in
.printername
= NULL
;
27873 if (r
->in
.printername
) {
27874 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27875 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
27876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
27877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
27878 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
27879 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
));
27881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
27882 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
27883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
27885 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
27886 if (_ptr_datatype
) {
27887 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
27889 r
->in
.datatype
= NULL
;
27891 if (r
->in
.datatype
) {
27892 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27893 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
27894 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
27895 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
27896 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
27897 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
));
27899 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
27900 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
27901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
27903 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27904 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
27905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
27906 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27907 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27908 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27909 ZERO_STRUCTP(r
->out
.handle
);
27911 if (flags
& NDR_OUT
) {
27912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27913 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27915 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27916 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27917 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27919 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27921 return NDR_ERR_SUCCESS
;
27924 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27926 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
27928 if (flags
& NDR_SET_VALUES
) {
27929 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27931 if (flags
& NDR_IN
) {
27932 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
27934 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
27936 if (r
->in
.printername
) {
27937 ndr_print_string(ndr
, "printername", r
->in
.printername
);
27940 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
27942 if (r
->in
.datatype
) {
27943 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
27946 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
27947 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
27948 ndr_print_uint32(ndr
, "level", r
->in
.level
);
27949 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
27950 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
27953 if (flags
& NDR_OUT
) {
27954 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
27956 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27958 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27960 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27966 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27968 if (flags
& NDR_IN
) {
27969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27970 if (r
->in
.server
) {
27971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27974 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27976 if (r
->in
.info_ctr
== NULL
) {
27977 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27980 if (r
->in
.devmode_ctr
== NULL
) {
27981 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27983 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
27984 if (r
->in
.secdesc_ctr
== NULL
) {
27985 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27987 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
27988 if (r
->in
.userlevel_ctr
== NULL
) {
27989 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27991 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
27993 if (flags
& NDR_OUT
) {
27994 if (r
->out
.handle
== NULL
) {
27995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27997 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27998 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28000 return NDR_ERR_SUCCESS
;
28003 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
28005 uint32_t _ptr_server
;
28006 TALLOC_CTX
*_mem_save_server_0
;
28007 TALLOC_CTX
*_mem_save_info_ctr_0
;
28008 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
28009 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
28010 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
28011 TALLOC_CTX
*_mem_save_handle_0
;
28012 if (flags
& NDR_IN
) {
28013 ZERO_STRUCT(r
->out
);
28015 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28017 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28019 r
->in
.server
= NULL
;
28021 if (r
->in
.server
) {
28022 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28023 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28024 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28025 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28026 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
28027 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
));
28029 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
28030 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
28031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28033 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28034 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28036 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28037 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28038 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28039 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28040 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28041 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
28043 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28044 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28045 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
28046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28047 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28048 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
28050 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28051 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28052 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
28053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28054 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28055 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
28057 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28058 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28059 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
28060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28061 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
28062 ZERO_STRUCTP(r
->out
.handle
);
28064 if (flags
& NDR_OUT
) {
28065 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28066 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
28068 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28069 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28070 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
28071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28072 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28074 return NDR_ERR_SUCCESS
;
28077 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
28079 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
28081 if (flags
& NDR_SET_VALUES
) {
28082 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28084 if (flags
& NDR_IN
) {
28085 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
28087 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28089 if (r
->in
.server
) {
28090 ndr_print_string(ndr
, "server", r
->in
.server
);
28093 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28095 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28097 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28099 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28101 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28103 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28105 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28107 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28111 if (flags
& NDR_OUT
) {
28112 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
28114 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
28116 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
28118 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28124 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
28126 if (flags
& NDR_IN
) {
28128 if (flags
& NDR_OUT
) {
28129 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28131 return NDR_ERR_SUCCESS
;
28134 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
28136 if (flags
& NDR_IN
) {
28138 if (flags
& NDR_OUT
) {
28139 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28141 return NDR_ERR_SUCCESS
;
28144 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
28146 ndr_print_struct(ndr
, name
, "spoolss_47");
28148 if (flags
& NDR_SET_VALUES
) {
28149 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28151 if (flags
& NDR_IN
) {
28152 ndr_print_struct(ndr
, "in", "spoolss_47");
28156 if (flags
& NDR_OUT
) {
28157 ndr_print_struct(ndr
, "out", "spoolss_47");
28159 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28165 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28167 if (flags
& NDR_IN
) {
28168 if (r
->in
.handle
== NULL
) {
28169 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28171 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
28173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
28174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28176 if (flags
& NDR_OUT
) {
28177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
28178 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
28179 if (r
->out
.value_needed
== NULL
) {
28180 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
28183 if (r
->out
.type
== NULL
) {
28184 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28186 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28188 uint32_t _flags_save_uint8
= ndr
->flags
;
28189 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28190 if (r
->out
.data
== NULL
) {
28191 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28193 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28194 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
28195 ndr
->flags
= _flags_save_uint8
;
28197 if (r
->out
.data_needed
== NULL
) {
28198 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
28201 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28203 return NDR_ERR_SUCCESS
;
28206 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
28208 TALLOC_CTX
*_mem_save_handle_0
;
28209 TALLOC_CTX
*_mem_save_value_needed_0
;
28210 TALLOC_CTX
*_mem_save_type_0
;
28211 TALLOC_CTX
*_mem_save_data_needed_0
;
28212 if (flags
& NDR_IN
) {
28213 ZERO_STRUCT(r
->out
);
28215 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28216 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28218 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28219 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28220 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28222 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
28223 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
28224 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
28225 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28226 ZERO_STRUCTP(r
->out
.value_needed
);
28227 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28228 ZERO_STRUCTP(r
->out
.type
);
28229 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
28230 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
28231 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28232 ZERO_STRUCTP(r
->out
.data_needed
);
28234 if (flags
& NDR_OUT
) {
28235 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
28236 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
));
28237 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28238 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28240 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28241 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
28242 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
28243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28244 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28245 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28247 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28248 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28249 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28252 uint32_t _flags_save_uint8
= ndr
->flags
;
28253 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
28255 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28256 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
28258 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
28259 ndr
->flags
= _flags_save_uint8
;
28261 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28262 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28264 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28265 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
28266 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
28267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28268 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28269 if (r
->out
.value_name
) {
28270 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
28273 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
28276 return NDR_ERR_SUCCESS
;
28279 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28281 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
28283 if (flags
& NDR_SET_VALUES
) {
28284 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28286 if (flags
& NDR_IN
) {
28287 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
28289 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28291 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28293 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
28294 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
28295 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
28298 if (flags
& NDR_OUT
) {
28299 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
28301 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
28302 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
28304 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
28306 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28308 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28310 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28312 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
28314 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
28316 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
28318 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28324 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28326 if (flags
& NDR_IN
) {
28327 if (r
->in
.handle
== NULL
) {
28328 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28330 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28331 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28332 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28333 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28334 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
));
28336 if (flags
& NDR_OUT
) {
28337 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28339 return NDR_ERR_SUCCESS
;
28342 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
28344 TALLOC_CTX
*_mem_save_handle_0
;
28345 if (flags
& NDR_IN
) {
28346 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28347 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28349 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28351 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28355 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28356 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
));
28358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28359 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
));
28361 if (flags
& NDR_OUT
) {
28362 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28364 return NDR_ERR_SUCCESS
;
28367 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28369 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
28371 if (flags
& NDR_SET_VALUES
) {
28372 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28374 if (flags
& NDR_IN
) {
28375 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
28377 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28379 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28381 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28384 if (flags
& NDR_OUT
) {
28385 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
28387 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28393 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
28395 if (flags
& NDR_IN
) {
28397 if (flags
& NDR_OUT
) {
28398 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28400 return NDR_ERR_SUCCESS
;
28403 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
28405 if (flags
& NDR_IN
) {
28407 if (flags
& NDR_OUT
) {
28408 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28410 return NDR_ERR_SUCCESS
;
28413 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
28415 ndr_print_struct(ndr
, name
, "spoolss_4a");
28417 if (flags
& NDR_SET_VALUES
) {
28418 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28420 if (flags
& NDR_IN
) {
28421 ndr_print_struct(ndr
, "in", "spoolss_4a");
28425 if (flags
& NDR_OUT
) {
28426 ndr_print_struct(ndr
, "out", "spoolss_4a");
28428 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28434 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
28436 if (flags
& NDR_IN
) {
28438 if (flags
& NDR_OUT
) {
28439 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28441 return NDR_ERR_SUCCESS
;
28444 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
28446 if (flags
& NDR_IN
) {
28448 if (flags
& NDR_OUT
) {
28449 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28451 return NDR_ERR_SUCCESS
;
28454 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
28456 ndr_print_struct(ndr
, name
, "spoolss_4b");
28458 if (flags
& NDR_SET_VALUES
) {
28459 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28461 if (flags
& NDR_IN
) {
28462 ndr_print_struct(ndr
, "in", "spoolss_4b");
28466 if (flags
& NDR_OUT
) {
28467 ndr_print_struct(ndr
, "out", "spoolss_4b");
28469 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28475 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
28477 if (flags
& NDR_IN
) {
28479 if (flags
& NDR_OUT
) {
28480 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28482 return NDR_ERR_SUCCESS
;
28485 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
28487 if (flags
& NDR_IN
) {
28489 if (flags
& NDR_OUT
) {
28490 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28492 return NDR_ERR_SUCCESS
;
28495 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
28497 ndr_print_struct(ndr
, name
, "spoolss_4c");
28499 if (flags
& NDR_SET_VALUES
) {
28500 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28502 if (flags
& NDR_IN
) {
28503 ndr_print_struct(ndr
, "in", "spoolss_4c");
28507 if (flags
& NDR_OUT
) {
28508 ndr_print_struct(ndr
, "out", "spoolss_4c");
28510 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28516 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
28518 if (flags
& NDR_IN
) {
28519 if (r
->in
.handle
== NULL
) {
28520 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28522 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28524 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28526 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
));
28527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28528 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28530 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
));
28531 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
28532 if (r
->in
.data
== NULL
) {
28533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
28536 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
28537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28539 if (flags
& NDR_OUT
) {
28540 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28542 return NDR_ERR_SUCCESS
;
28545 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
28547 TALLOC_CTX
*_mem_save_handle_0
;
28548 if (flags
& NDR_IN
) {
28549 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28550 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28552 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28554 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28556 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28557 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28558 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28559 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
));
28561 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28562 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
));
28563 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28564 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28565 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28566 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
));
28568 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28569 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
));
28570 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
28571 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
28572 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28573 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
28575 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
28576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28578 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
28581 if (flags
& NDR_OUT
) {
28582 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28584 return NDR_ERR_SUCCESS
;
28587 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
28589 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
28591 if (flags
& NDR_SET_VALUES
) {
28592 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28594 if (flags
& NDR_IN
) {
28595 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
28597 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28599 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28601 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28602 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28603 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
28604 ndr_print_ptr(ndr
, "data", r
->in
.data
);
28606 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
28608 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28611 if (flags
& NDR_OUT
) {
28612 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
28614 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28620 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
28622 if (flags
& NDR_IN
) {
28623 if (r
->in
.handle
== NULL
) {
28624 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28626 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28627 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28628 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28630 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
));
28631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28632 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28633 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28634 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
));
28635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28637 if (flags
& NDR_OUT
) {
28638 if (r
->out
.type
== NULL
) {
28639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28641 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28642 if (r
->out
.data
== NULL
) {
28643 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28645 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
28646 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
28647 if (r
->out
.needed
== NULL
) {
28648 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28651 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28653 return NDR_ERR_SUCCESS
;
28656 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
28658 TALLOC_CTX
*_mem_save_handle_0
;
28659 TALLOC_CTX
*_mem_save_type_0
;
28660 TALLOC_CTX
*_mem_save_needed_0
;
28661 if (flags
& NDR_IN
) {
28662 ZERO_STRUCT(r
->out
);
28664 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28665 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28667 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28668 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28669 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28671 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28672 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28673 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28674 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
));
28676 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28677 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
));
28678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28680 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28681 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
));
28683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28684 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
));
28685 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28686 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28687 ZERO_STRUCTP(r
->out
.type
);
28688 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
28689 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
28690 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28691 ZERO_STRUCTP(r
->out
.needed
);
28693 if (flags
& NDR_OUT
) {
28694 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28695 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28697 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28698 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28699 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28701 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
28702 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28703 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
28705 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
28706 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28707 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28709 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28710 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28711 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28713 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28715 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
28718 return NDR_ERR_SUCCESS
;
28721 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
28723 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
28725 if (flags
& NDR_SET_VALUES
) {
28726 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28728 if (flags
& NDR_IN
) {
28729 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
28731 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28733 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28735 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28736 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28737 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28740 if (flags
& NDR_OUT
) {
28741 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
28743 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28745 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28747 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28749 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
28751 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28753 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28755 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28761 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
28763 if (flags
& NDR_IN
) {
28764 if (r
->in
.handle
== NULL
) {
28765 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28767 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28768 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28769 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28770 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28771 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
));
28772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28774 if (flags
& NDR_OUT
) {
28775 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
28776 if (r
->out
.needed
== NULL
) {
28777 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28780 if (r
->out
.count
== NULL
) {
28781 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
28784 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28786 return NDR_ERR_SUCCESS
;
28789 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
28791 TALLOC_CTX
*_mem_save_handle_0
;
28792 TALLOC_CTX
*_mem_save_needed_0
;
28793 TALLOC_CTX
*_mem_save_count_0
;
28794 if (flags
& NDR_IN
) {
28795 ZERO_STRUCT(r
->out
);
28797 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28798 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28800 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28801 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28802 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28804 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28805 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28806 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28807 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
));
28809 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28810 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
));
28811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28812 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28813 ZERO_STRUCTP(r
->out
.needed
);
28814 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28815 ZERO_STRUCTP(r
->out
.count
);
28817 if (flags
& NDR_OUT
) {
28818 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
28819 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28820 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28822 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28823 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28824 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28826 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28827 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28829 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28830 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
28831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
28832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
28833 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28835 return NDR_ERR_SUCCESS
;
28838 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
28840 uint32_t cntr_info_0
;
28841 if (flags
& NDR_IN
) {
28842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
28844 if (flags
& NDR_OUT
) {
28845 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28846 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28848 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28849 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28852 return NDR_ERR_SUCCESS
;
28855 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
28857 uint32_t cntr_info_0
;
28858 TALLOC_CTX
*_mem_save_info_0
;
28859 if (flags
& NDR_IN
) {
28860 ZERO_STRUCT(r
->out
);
28862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
28864 if (flags
& NDR_OUT
) {
28865 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
28866 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28867 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
28868 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28869 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28871 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28872 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
28876 return NDR_ERR_SUCCESS
;
28879 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
28881 uint32_t cntr_info_2
;
28882 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
28884 if (flags
& NDR_SET_VALUES
) {
28885 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28887 if (flags
& NDR_IN
) {
28888 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
28890 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28892 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28894 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28895 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28898 if (flags
& NDR_OUT
) {
28899 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
28901 ndr_print_ptr(ndr
, "count", r
->out
.count
);
28903 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
28905 ndr_print_ptr(ndr
, "info", r
->out
.info
);
28907 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
28909 if (*r
->out
.info
) {
28910 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
28912 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
28914 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
28915 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
28923 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28925 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28927 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28933 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
28935 if (flags
& NDR_IN
) {
28936 if (r
->in
.handle
== NULL
) {
28937 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28939 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28940 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28941 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28942 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28943 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
));
28944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28946 if (flags
& NDR_OUT
) {
28947 if (r
->out
._ndr_size
== NULL
) {
28948 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
28951 if (r
->out
.key_buffer
== NULL
) {
28952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28955 struct ndr_push
*_ndr_key_buffer
;
28956 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28957 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
28958 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
28959 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28961 if (r
->out
.needed
== NULL
) {
28962 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28965 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28967 return NDR_ERR_SUCCESS
;
28970 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
28972 TALLOC_CTX
*_mem_save_handle_0
;
28973 TALLOC_CTX
*_mem_save__ndr_size_0
;
28974 TALLOC_CTX
*_mem_save_key_buffer_0
;
28975 TALLOC_CTX
*_mem_save_needed_0
;
28976 if (flags
& NDR_IN
) {
28977 ZERO_STRUCT(r
->out
);
28979 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28980 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28982 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28983 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28984 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28986 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28987 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28988 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28989 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
));
28991 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28992 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
));
28993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28994 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
28995 ZERO_STRUCTP(r
->out
._ndr_size
);
28996 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
28997 ZERO_STRUCTP(r
->out
.key_buffer
);
28998 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28999 ZERO_STRUCTP(r
->out
.needed
);
29001 if (flags
& NDR_OUT
) {
29002 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29003 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
29005 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29006 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
29007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
29008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
29009 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29010 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
29012 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29013 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
29015 struct ndr_pull
*_ndr_key_buffer
;
29016 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29017 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
29018 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
29019 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
29022 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29023 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29025 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29026 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
29027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
29028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
29029 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29031 return NDR_ERR_SUCCESS
;
29034 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
29036 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
29038 if (flags
& NDR_SET_VALUES
) {
29039 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29041 if (flags
& NDR_IN
) {
29042 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
29044 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29046 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29048 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29049 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
29052 if (flags
& NDR_OUT
) {
29053 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
29055 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
29057 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
29059 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
29061 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
29062 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
29064 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29066 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29068 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29074 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29076 if (flags
& NDR_IN
) {
29077 if (r
->in
.handle
== NULL
) {
29078 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29080 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29081 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29083 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29084 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
));
29085 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29087 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29088 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
));
29090 if (flags
& NDR_OUT
) {
29091 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29093 return NDR_ERR_SUCCESS
;
29096 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
29098 TALLOC_CTX
*_mem_save_handle_0
;
29099 if (flags
& NDR_IN
) {
29100 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29101 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29103 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29104 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29105 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29109 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
29110 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
));
29112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
29113 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
));
29114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
29115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
29116 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
29117 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
));
29119 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
29120 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
));
29122 if (flags
& NDR_OUT
) {
29123 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29125 return NDR_ERR_SUCCESS
;
29128 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29130 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
29132 if (flags
& NDR_SET_VALUES
) {
29133 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29135 if (flags
& NDR_IN
) {
29136 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
29138 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29140 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29142 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29143 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
29146 if (flags
& NDR_OUT
) {
29147 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
29149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29155 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29157 if (flags
& NDR_IN
) {
29158 if (r
->in
.handle
== NULL
) {
29159 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29161 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29163 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29164 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29165 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
));
29167 if (flags
& NDR_OUT
) {
29168 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29170 return NDR_ERR_SUCCESS
;
29173 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
29175 TALLOC_CTX
*_mem_save_handle_0
;
29176 if (flags
& NDR_IN
) {
29177 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29178 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29180 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29181 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29182 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29184 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29185 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29186 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
29187 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
));
29189 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
29190 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
));
29192 if (flags
& NDR_OUT
) {
29193 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29195 return NDR_ERR_SUCCESS
;
29198 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29200 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
29202 if (flags
& NDR_SET_VALUES
) {
29203 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29205 if (flags
& NDR_IN
) {
29206 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
29208 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29210 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29212 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29215 if (flags
& NDR_OUT
) {
29216 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
29218 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29224 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
29226 if (flags
& NDR_IN
) {
29228 if (flags
& NDR_OUT
) {
29229 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29231 return NDR_ERR_SUCCESS
;
29234 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
29236 if (flags
& NDR_IN
) {
29238 if (flags
& NDR_OUT
) {
29239 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29241 return NDR_ERR_SUCCESS
;
29244 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
29246 ndr_print_struct(ndr
, name
, "spoolss_53");
29248 if (flags
& NDR_SET_VALUES
) {
29249 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29251 if (flags
& NDR_IN
) {
29252 ndr_print_struct(ndr
, "in", "spoolss_53");
29256 if (flags
& NDR_OUT
) {
29257 ndr_print_struct(ndr
, "out", "spoolss_53");
29259 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29265 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29267 if (flags
& NDR_IN
) {
29268 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
29269 if (r
->in
.server
) {
29270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29271 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29272 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29273 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29275 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29276 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29277 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29278 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29279 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29281 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29282 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29283 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
29284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
29286 if (flags
& NDR_OUT
) {
29287 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29289 return NDR_ERR_SUCCESS
;
29292 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
29294 uint32_t _ptr_server
;
29295 TALLOC_CTX
*_mem_save_server_0
;
29296 if (flags
& NDR_IN
) {
29297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
29299 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
29301 r
->in
.server
= NULL
;
29303 if (r
->in
.server
) {
29304 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29305 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
29306 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
29307 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
29308 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
29309 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
));
29311 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
29312 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
29313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
29315 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29316 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29317 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29318 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
));
29320 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29322 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
29323 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
29324 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
29325 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
));
29327 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
29328 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
29329 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
29330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
29332 if (flags
& NDR_OUT
) {
29333 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29335 return NDR_ERR_SUCCESS
;
29338 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29340 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
29342 if (flags
& NDR_SET_VALUES
) {
29343 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29345 if (flags
& NDR_IN
) {
29346 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
29348 ndr_print_ptr(ndr
, "server", r
->in
.server
);
29350 if (r
->in
.server
) {
29351 ndr_print_string(ndr
, "server", r
->in
.server
);
29354 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29355 ndr_print_string(ndr
, "driver", r
->in
.driver
);
29356 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
29357 ndr_print_uint32(ndr
, "version", r
->in
.version
);
29360 if (flags
& NDR_OUT
) {
29361 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
29363 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29369 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
29371 if (flags
& NDR_IN
) {
29373 if (flags
& NDR_OUT
) {
29374 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29376 return NDR_ERR_SUCCESS
;
29379 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
29381 if (flags
& NDR_IN
) {
29383 if (flags
& NDR_OUT
) {
29384 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29386 return NDR_ERR_SUCCESS
;
29389 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
29391 ndr_print_struct(ndr
, name
, "spoolss_55");
29393 if (flags
& NDR_SET_VALUES
) {
29394 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29396 if (flags
& NDR_IN
) {
29397 ndr_print_struct(ndr
, "in", "spoolss_55");
29401 if (flags
& NDR_OUT
) {
29402 ndr_print_struct(ndr
, "out", "spoolss_55");
29404 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29410 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
29412 if (flags
& NDR_IN
) {
29414 if (flags
& NDR_OUT
) {
29415 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29417 return NDR_ERR_SUCCESS
;
29420 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
29422 if (flags
& NDR_IN
) {
29424 if (flags
& NDR_OUT
) {
29425 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29427 return NDR_ERR_SUCCESS
;
29430 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
29432 ndr_print_struct(ndr
, name
, "spoolss_56");
29434 if (flags
& NDR_SET_VALUES
) {
29435 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29437 if (flags
& NDR_IN
) {
29438 ndr_print_struct(ndr
, "in", "spoolss_56");
29442 if (flags
& NDR_OUT
) {
29443 ndr_print_struct(ndr
, "out", "spoolss_56");
29445 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29451 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
29453 if (flags
& NDR_IN
) {
29455 if (flags
& NDR_OUT
) {
29456 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29458 return NDR_ERR_SUCCESS
;
29461 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
29463 if (flags
& NDR_IN
) {
29465 if (flags
& NDR_OUT
) {
29466 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29468 return NDR_ERR_SUCCESS
;
29471 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
29473 ndr_print_struct(ndr
, name
, "spoolss_57");
29475 if (flags
& NDR_SET_VALUES
) {
29476 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29478 if (flags
& NDR_IN
) {
29479 ndr_print_struct(ndr
, "in", "spoolss_57");
29483 if (flags
& NDR_OUT
) {
29484 ndr_print_struct(ndr
, "out", "spoolss_57");
29486 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29492 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
29494 if (flags
& NDR_IN
) {
29495 if (r
->in
.handle
== NULL
) {
29496 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29498 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29499 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29502 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
));
29503 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
29504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
29505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29506 if (r
->in
.status_code
== NULL
) {
29507 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
29511 if (flags
& NDR_OUT
) {
29512 if (r
->out
.out_data
== NULL
) {
29513 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29516 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
29517 if (r
->out
.needed
== NULL
) {
29518 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
29521 if (r
->out
.status_code
== NULL
) {
29522 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
29525 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29527 return NDR_ERR_SUCCESS
;
29530 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
29532 TALLOC_CTX
*_mem_save_handle_0
;
29533 TALLOC_CTX
*_mem_save_needed_0
;
29534 TALLOC_CTX
*_mem_save_status_code_0
;
29535 if (flags
& NDR_IN
) {
29536 ZERO_STRUCT(r
->out
);
29538 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29539 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29541 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29542 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29543 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
29546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
29547 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
29548 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
));
29550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
29551 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
));
29552 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
29553 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
29554 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
29555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29556 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
29558 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29559 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
29561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29562 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
29563 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
29564 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29565 ZERO_STRUCTP(r
->out
.needed
);
29566 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29567 *r
->out
.status_code
= *r
->in
.status_code
;
29569 if (flags
& NDR_OUT
) {
29570 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
29571 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29572 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
29574 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
29575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29576 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29578 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29579 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
29580 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
29581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
29582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29583 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29585 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29586 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
29588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29589 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29590 if (r
->out
.out_data
) {
29591 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
29594 return NDR_ERR_SUCCESS
;
29597 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
29599 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
29601 if (flags
& NDR_SET_VALUES
) {
29602 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29604 if (flags
& NDR_IN
) {
29605 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
29607 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29609 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29611 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
29612 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
29613 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
29614 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
29615 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
29617 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
29621 if (flags
& NDR_OUT
) {
29622 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
29624 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
29626 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
29628 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29630 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29632 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
29634 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
29636 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29642 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29644 if (flags
& NDR_IN
) {
29645 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29646 if (r
->in
.servername
) {
29647 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29648 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29650 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29652 if (r
->in
.info_ctr
== NULL
) {
29653 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29655 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29656 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
29658 if (flags
& NDR_OUT
) {
29659 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29661 return NDR_ERR_SUCCESS
;
29664 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
29666 uint32_t _ptr_servername
;
29667 TALLOC_CTX
*_mem_save_servername_0
;
29668 TALLOC_CTX
*_mem_save_info_ctr_0
;
29669 if (flags
& NDR_IN
) {
29670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29671 if (_ptr_servername
) {
29672 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29674 r
->in
.servername
= NULL
;
29676 if (r
->in
.servername
) {
29677 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29679 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29680 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29681 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29682 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
));
29684 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29685 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29688 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29689 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
29691 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29692 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
29693 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
29695 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
29697 if (flags
& NDR_OUT
) {
29698 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29700 return NDR_ERR_SUCCESS
;
29703 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29705 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
29707 if (flags
& NDR_SET_VALUES
) {
29708 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29710 if (flags
& NDR_IN
) {
29711 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
29713 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29715 if (r
->in
.servername
) {
29716 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29719 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
29721 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
29723 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
29726 if (flags
& NDR_OUT
) {
29727 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
29729 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29735 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
29737 if (flags
& NDR_IN
) {
29739 if (flags
& NDR_OUT
) {
29740 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29742 return NDR_ERR_SUCCESS
;
29745 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
29747 if (flags
& NDR_IN
) {
29749 if (flags
& NDR_OUT
) {
29750 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29752 return NDR_ERR_SUCCESS
;
29755 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
29757 ndr_print_struct(ndr
, name
, "spoolss_5a");
29759 if (flags
& NDR_SET_VALUES
) {
29760 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29762 if (flags
& NDR_IN
) {
29763 ndr_print_struct(ndr
, "in", "spoolss_5a");
29767 if (flags
& NDR_OUT
) {
29768 ndr_print_struct(ndr
, "out", "spoolss_5a");
29770 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29776 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
29778 if (flags
& NDR_IN
) {
29780 if (flags
& NDR_OUT
) {
29781 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29783 return NDR_ERR_SUCCESS
;
29786 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
29788 if (flags
& NDR_IN
) {
29790 if (flags
& NDR_OUT
) {
29791 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29793 return NDR_ERR_SUCCESS
;
29796 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
29798 ndr_print_struct(ndr
, name
, "spoolss_5b");
29800 if (flags
& NDR_SET_VALUES
) {
29801 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29803 if (flags
& NDR_IN
) {
29804 ndr_print_struct(ndr
, "in", "spoolss_5b");
29808 if (flags
& NDR_OUT
) {
29809 ndr_print_struct(ndr
, "out", "spoolss_5b");
29811 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29817 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
29819 if (flags
& NDR_IN
) {
29821 if (flags
& NDR_OUT
) {
29822 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29824 return NDR_ERR_SUCCESS
;
29827 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
29829 if (flags
& NDR_IN
) {
29831 if (flags
& NDR_OUT
) {
29832 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29834 return NDR_ERR_SUCCESS
;
29837 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
29839 ndr_print_struct(ndr
, name
, "spoolss_5c");
29841 if (flags
& NDR_SET_VALUES
) {
29842 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29844 if (flags
& NDR_IN
) {
29845 ndr_print_struct(ndr
, "in", "spoolss_5c");
29849 if (flags
& NDR_OUT
) {
29850 ndr_print_struct(ndr
, "out", "spoolss_5c");
29852 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29858 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
29860 if (flags
& NDR_IN
) {
29862 if (flags
& NDR_OUT
) {
29863 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29865 return NDR_ERR_SUCCESS
;
29868 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
29870 if (flags
& NDR_IN
) {
29872 if (flags
& NDR_OUT
) {
29873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29875 return NDR_ERR_SUCCESS
;
29878 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
29880 ndr_print_struct(ndr
, name
, "spoolss_5d");
29882 if (flags
& NDR_SET_VALUES
) {
29883 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29885 if (flags
& NDR_IN
) {
29886 ndr_print_struct(ndr
, "in", "spoolss_5d");
29890 if (flags
& NDR_OUT
) {
29891 ndr_print_struct(ndr
, "out", "spoolss_5d");
29893 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29899 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
29901 if (flags
& NDR_IN
) {
29903 if (flags
& NDR_OUT
) {
29904 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29906 return NDR_ERR_SUCCESS
;
29909 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
29911 if (flags
& NDR_IN
) {
29913 if (flags
& NDR_OUT
) {
29914 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29916 return NDR_ERR_SUCCESS
;
29919 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
29921 ndr_print_struct(ndr
, name
, "spoolss_5e");
29923 if (flags
& NDR_SET_VALUES
) {
29924 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29926 if (flags
& NDR_IN
) {
29927 ndr_print_struct(ndr
, "in", "spoolss_5e");
29931 if (flags
& NDR_OUT
) {
29932 ndr_print_struct(ndr
, "out", "spoolss_5e");
29934 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29940 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
29942 if (flags
& NDR_IN
) {
29944 if (flags
& NDR_OUT
) {
29945 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29947 return NDR_ERR_SUCCESS
;
29950 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
29952 if (flags
& NDR_IN
) {
29954 if (flags
& NDR_OUT
) {
29955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29957 return NDR_ERR_SUCCESS
;
29960 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
29962 ndr_print_struct(ndr
, name
, "spoolss_5f");
29964 if (flags
& NDR_SET_VALUES
) {
29965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29967 if (flags
& NDR_IN
) {
29968 ndr_print_struct(ndr
, "in", "spoolss_5f");
29972 if (flags
& NDR_OUT
) {
29973 ndr_print_struct(ndr
, "out", "spoolss_5f");
29975 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29981 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
29983 if (flags
& NDR_IN
) {
29985 if (flags
& NDR_OUT
) {
29986 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29988 return NDR_ERR_SUCCESS
;
29991 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
29993 if (flags
& NDR_IN
) {
29995 if (flags
& NDR_OUT
) {
29996 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29998 return NDR_ERR_SUCCESS
;
30001 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
30003 ndr_print_struct(ndr
, name
, "spoolss_60");
30005 if (flags
& NDR_SET_VALUES
) {
30006 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30008 if (flags
& NDR_IN
) {
30009 ndr_print_struct(ndr
, "in", "spoolss_60");
30013 if (flags
& NDR_OUT
) {
30014 ndr_print_struct(ndr
, "out", "spoolss_60");
30016 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30022 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
30024 if (flags
& NDR_IN
) {
30026 if (flags
& NDR_OUT
) {
30027 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30029 return NDR_ERR_SUCCESS
;
30032 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
30034 if (flags
& NDR_IN
) {
30036 if (flags
& NDR_OUT
) {
30037 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30039 return NDR_ERR_SUCCESS
;
30042 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
30044 ndr_print_struct(ndr
, name
, "spoolss_61");
30046 if (flags
& NDR_SET_VALUES
) {
30047 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30049 if (flags
& NDR_IN
) {
30050 ndr_print_struct(ndr
, "in", "spoolss_61");
30054 if (flags
& NDR_OUT
) {
30055 ndr_print_struct(ndr
, "out", "spoolss_61");
30057 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30063 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
30065 if (flags
& NDR_IN
) {
30067 if (flags
& NDR_OUT
) {
30068 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30070 return NDR_ERR_SUCCESS
;
30073 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
30075 if (flags
& NDR_IN
) {
30077 if (flags
& NDR_OUT
) {
30078 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30080 return NDR_ERR_SUCCESS
;
30083 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
30085 ndr_print_struct(ndr
, name
, "spoolss_62");
30087 if (flags
& NDR_SET_VALUES
) {
30088 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30090 if (flags
& NDR_IN
) {
30091 ndr_print_struct(ndr
, "in", "spoolss_62");
30095 if (flags
& NDR_OUT
) {
30096 ndr_print_struct(ndr
, "out", "spoolss_62");
30098 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30104 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
30106 if (flags
& NDR_IN
) {
30108 if (flags
& NDR_OUT
) {
30109 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30111 return NDR_ERR_SUCCESS
;
30114 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
30116 if (flags
& NDR_IN
) {
30118 if (flags
& NDR_OUT
) {
30119 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30121 return NDR_ERR_SUCCESS
;
30124 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
30126 ndr_print_struct(ndr
, name
, "spoolss_63");
30128 if (flags
& NDR_SET_VALUES
) {
30129 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30131 if (flags
& NDR_IN
) {
30132 ndr_print_struct(ndr
, "in", "spoolss_63");
30136 if (flags
& NDR_OUT
) {
30137 ndr_print_struct(ndr
, "out", "spoolss_63");
30139 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30145 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
30147 if (flags
& NDR_IN
) {
30149 if (flags
& NDR_OUT
) {
30150 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30152 return NDR_ERR_SUCCESS
;
30155 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
30157 if (flags
& NDR_IN
) {
30159 if (flags
& NDR_OUT
) {
30160 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30162 return NDR_ERR_SUCCESS
;
30165 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
30167 ndr_print_struct(ndr
, name
, "spoolss_64");
30169 if (flags
& NDR_SET_VALUES
) {
30170 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30172 if (flags
& NDR_IN
) {
30173 ndr_print_struct(ndr
, "in", "spoolss_64");
30177 if (flags
& NDR_OUT
) {
30178 ndr_print_struct(ndr
, "out", "spoolss_64");
30180 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30186 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
30188 if (flags
& NDR_IN
) {
30190 if (flags
& NDR_OUT
) {
30191 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30193 return NDR_ERR_SUCCESS
;
30196 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
30198 if (flags
& NDR_IN
) {
30200 if (flags
& NDR_OUT
) {
30201 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30203 return NDR_ERR_SUCCESS
;
30206 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
30208 ndr_print_struct(ndr
, name
, "spoolss_65");
30210 if (flags
& NDR_SET_VALUES
) {
30211 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30213 if (flags
& NDR_IN
) {
30214 ndr_print_struct(ndr
, "in", "spoolss_65");
30218 if (flags
& NDR_OUT
) {
30219 ndr_print_struct(ndr
, "out", "spoolss_65");
30221 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30227 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30229 uint32_t cntr_core_printer_drivers_1
;
30230 if (flags
& NDR_IN
) {
30231 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30232 if (r
->in
.servername
) {
30233 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30238 if (r
->in
.architecture
== NULL
) {
30239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30241 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30242 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30243 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30244 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30246 if (r
->in
.core_driver_dependencies
== NULL
) {
30247 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30249 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30250 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
30251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30253 if (flags
& NDR_OUT
) {
30254 if (r
->out
.core_printer_drivers
== NULL
) {
30255 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30257 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30258 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
30259 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30263 return NDR_ERR_SUCCESS
;
30266 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
30268 uint32_t _ptr_servername
;
30269 uint32_t cntr_core_printer_drivers_1
;
30270 TALLOC_CTX
*_mem_save_servername_0
;
30271 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
30272 if (flags
& NDR_IN
) {
30273 ZERO_STRUCT(r
->out
);
30275 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30276 if (_ptr_servername
) {
30277 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30279 r
->in
.servername
= NULL
;
30281 if (r
->in
.servername
) {
30282 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30283 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30284 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30285 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30286 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
30287 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
));
30289 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
30290 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
30291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30295 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
30296 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
));
30298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
30299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
30300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
30301 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
30302 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.core_driver_dependencies
, ndr_get_array_size(ndr
, &r
->in
.core_driver_dependencies
), sizeof(uint16_t), CH_UTF16
));
30303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
30304 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
30305 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
30306 if (r
->in
.core_driver_dependencies
) {
30307 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
30310 if (flags
& NDR_OUT
) {
30311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
30312 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30313 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
));
30315 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
30316 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
30317 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
30318 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
30321 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30322 if (r
->out
.core_printer_drivers
) {
30323 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
30326 return NDR_ERR_SUCCESS
;
30329 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30331 uint32_t cntr_core_printer_drivers_1
;
30332 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
30334 if (flags
& NDR_SET_VALUES
) {
30335 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30337 if (flags
& NDR_IN
) {
30338 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
30340 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30342 if (r
->in
.servername
) {
30343 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30346 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30348 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30350 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
30351 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30353 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30355 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
30358 if (flags
& NDR_OUT
) {
30359 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
30361 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
30363 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
30365 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
30367 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
30368 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
30374 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30380 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
30382 if (flags
& NDR_IN
) {
30384 if (flags
& NDR_OUT
) {
30385 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30387 return NDR_ERR_SUCCESS
;
30390 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
30392 if (flags
& NDR_IN
) {
30394 if (flags
& NDR_OUT
) {
30395 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30397 return NDR_ERR_SUCCESS
;
30400 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
30402 ndr_print_struct(ndr
, name
, "spoolss_67");
30404 if (flags
& NDR_SET_VALUES
) {
30405 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30407 if (flags
& NDR_IN
) {
30408 ndr_print_struct(ndr
, "in", "spoolss_67");
30412 if (flags
& NDR_OUT
) {
30413 ndr_print_struct(ndr
, "out", "spoolss_67");
30415 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30421 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30423 if (flags
& NDR_IN
) {
30424 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30425 if (r
->in
.servername
) {
30426 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30427 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30428 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30429 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30431 if (r
->in
.architecture
== NULL
) {
30432 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30434 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30435 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30436 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30437 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
30439 if (r
->in
.language
) {
30440 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30441 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30442 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30443 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30445 if (r
->in
.package_id
== NULL
) {
30446 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30448 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30449 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30450 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30451 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.package_id
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30452 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
30453 if (r
->in
.driver_package_cab
) {
30454 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30455 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30459 if (flags
& NDR_OUT
) {
30460 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
30461 if (r
->out
.driver_package_cab
) {
30462 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30463 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30465 if (r
->out
.required
== NULL
) {
30466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
30469 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30471 return NDR_ERR_SUCCESS
;
30474 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
30476 uint32_t _ptr_servername
;
30477 uint32_t _ptr_language
;
30478 uint32_t _ptr_driver_package_cab
;
30479 TALLOC_CTX
*_mem_save_servername_0
;
30480 TALLOC_CTX
*_mem_save_language_0
;
30481 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
30482 TALLOC_CTX
*_mem_save_required_0
;
30483 if (flags
& NDR_IN
) {
30484 ZERO_STRUCT(r
->out
);
30486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30487 if (_ptr_servername
) {
30488 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30490 r
->in
.servername
= NULL
;
30492 if (r
->in
.servername
) {
30493 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30494 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30495 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30496 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30497 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
30498 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
));
30500 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
30501 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
30502 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30504 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30505 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30506 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
30507 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
));
30509 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
30510 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
30511 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
30512 if (_ptr_language
) {
30513 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
30515 r
->in
.language
= NULL
;
30517 if (r
->in
.language
) {
30518 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30519 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
30520 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
30521 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
30522 if (ndr_get_array_length(ndr
, &r
->in
.language
) > ndr_get_array_size(ndr
, &r
->in
.language
)) {
30523 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.language
), ndr_get_array_length(ndr
, &r
->in
.language
));
30525 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t)));
30526 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t), CH_UTF16
));
30527 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
30529 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
30530 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
30531 if (ndr_get_array_length(ndr
, &r
->in
.package_id
) > ndr_get_array_size(ndr
, &r
->in
.package_id
)) {
30532 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.package_id
), ndr_get_array_length(ndr
, &r
->in
.package_id
));
30534 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t)));
30535 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.package_id
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t), CH_UTF16
));
30536 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30537 if (_ptr_driver_package_cab
) {
30538 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
30540 r
->in
.driver_package_cab
= NULL
;
30542 if (r
->in
.driver_package_cab
) {
30543 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30544 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
30545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
30546 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab
, ndr_get_array_size(ndr
, &r
->in
.driver_package_cab
), sizeof(uint16_t), CH_UTF16
));
30547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
30550 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30551 ZERO_STRUCTP(r
->out
.required
);
30552 if (r
->in
.driver_package_cab
) {
30553 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30556 if (flags
& NDR_OUT
) {
30557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30558 if (_ptr_driver_package_cab
) {
30559 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
30561 r
->out
.driver_package_cab
= NULL
;
30563 if (r
->out
.driver_package_cab
) {
30564 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30565 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
30566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
30567 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.driver_package_cab
, ndr_get_array_size(ndr
, &r
->out
.driver_package_cab
), sizeof(uint16_t), CH_UTF16
));
30568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30571 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30573 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30574 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
30575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
30576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
30577 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30578 if (r
->out
.driver_package_cab
) {
30579 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30582 return NDR_ERR_SUCCESS
;
30585 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30587 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
30589 if (flags
& NDR_SET_VALUES
) {
30590 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30592 if (flags
& NDR_IN
) {
30593 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
30595 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30597 if (r
->in
.servername
) {
30598 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30601 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30603 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30605 ndr_print_ptr(ndr
, "language", r
->in
.language
);
30607 if (r
->in
.language
) {
30608 ndr_print_string(ndr
, "language", r
->in
.language
);
30611 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
30613 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
30615 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30617 if (r
->in
.driver_package_cab
) {
30618 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30621 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
30624 if (flags
& NDR_OUT
) {
30625 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
30627 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30629 if (r
->out
.driver_package_cab
) {
30630 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30633 ndr_print_ptr(ndr
, "required", r
->out
.required
);
30635 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
30637 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30643 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
30645 if (flags
& NDR_IN
) {
30647 if (flags
& NDR_OUT
) {
30648 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30650 return NDR_ERR_SUCCESS
;
30653 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
30655 if (flags
& NDR_IN
) {
30657 if (flags
& NDR_OUT
) {
30658 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30660 return NDR_ERR_SUCCESS
;
30663 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
30665 ndr_print_struct(ndr
, name
, "spoolss_69");
30667 if (flags
& NDR_SET_VALUES
) {
30668 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30670 if (flags
& NDR_IN
) {
30671 ndr_print_struct(ndr
, "in", "spoolss_69");
30675 if (flags
& NDR_OUT
) {
30676 ndr_print_struct(ndr
, "out", "spoolss_69");
30678 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30684 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
30686 if (flags
& NDR_IN
) {
30688 if (flags
& NDR_OUT
) {
30689 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30691 return NDR_ERR_SUCCESS
;
30694 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
30696 if (flags
& NDR_IN
) {
30698 if (flags
& NDR_OUT
) {
30699 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30701 return NDR_ERR_SUCCESS
;
30704 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
30706 ndr_print_struct(ndr
, name
, "spoolss_6a");
30708 if (flags
& NDR_SET_VALUES
) {
30709 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30711 if (flags
& NDR_IN
) {
30712 ndr_print_struct(ndr
, "in", "spoolss_6a");
30716 if (flags
& NDR_OUT
) {
30717 ndr_print_struct(ndr
, "out", "spoolss_6a");
30719 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30725 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
30727 if (flags
& NDR_IN
) {
30729 if (flags
& NDR_OUT
) {
30730 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30732 return NDR_ERR_SUCCESS
;
30735 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
30737 if (flags
& NDR_IN
) {
30739 if (flags
& NDR_OUT
) {
30740 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30742 return NDR_ERR_SUCCESS
;
30745 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
30747 ndr_print_struct(ndr
, name
, "spoolss_6b");
30749 if (flags
& NDR_SET_VALUES
) {
30750 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30752 if (flags
& NDR_IN
) {
30753 ndr_print_struct(ndr
, "in", "spoolss_6b");
30757 if (flags
& NDR_OUT
) {
30758 ndr_print_struct(ndr
, "out", "spoolss_6b");
30760 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30766 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
30768 if (flags
& NDR_IN
) {
30770 if (flags
& NDR_OUT
) {
30771 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30773 return NDR_ERR_SUCCESS
;
30776 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
30778 if (flags
& NDR_IN
) {
30780 if (flags
& NDR_OUT
) {
30781 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30783 return NDR_ERR_SUCCESS
;
30786 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
30788 ndr_print_struct(ndr
, name
, "spoolss_6c");
30790 if (flags
& NDR_SET_VALUES
) {
30791 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30793 if (flags
& NDR_IN
) {
30794 ndr_print_struct(ndr
, "in", "spoolss_6c");
30798 if (flags
& NDR_OUT
) {
30799 ndr_print_struct(ndr
, "out", "spoolss_6c");
30801 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30807 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
30809 if (flags
& NDR_IN
) {
30811 if (flags
& NDR_OUT
) {
30812 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30814 return NDR_ERR_SUCCESS
;
30817 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
30819 if (flags
& NDR_IN
) {
30821 if (flags
& NDR_OUT
) {
30822 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30824 return NDR_ERR_SUCCESS
;
30827 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
30829 ndr_print_struct(ndr
, name
, "spoolss_6d");
30831 if (flags
& NDR_SET_VALUES
) {
30832 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30834 if (flags
& NDR_IN
) {
30835 ndr_print_struct(ndr
, "in", "spoolss_6d");
30839 if (flags
& NDR_OUT
) {
30840 ndr_print_struct(ndr
, "out", "spoolss_6d");
30842 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30848 static const struct ndr_interface_call spoolss_calls
[] = {
30850 "spoolss_EnumPrinters",
30851 sizeof(struct spoolss_EnumPrinters
),
30852 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
30853 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
30854 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
30858 "spoolss_OpenPrinter",
30859 sizeof(struct spoolss_OpenPrinter
),
30860 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
30861 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
30862 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
30867 sizeof(struct spoolss_SetJob
),
30868 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
30869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
30870 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
30875 sizeof(struct spoolss_GetJob
),
30876 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
30877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
30878 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
30882 "spoolss_EnumJobs",
30883 sizeof(struct spoolss_EnumJobs
),
30884 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
30885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
30886 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
30890 "spoolss_AddPrinter",
30891 sizeof(struct spoolss_AddPrinter
),
30892 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
30893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
30894 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
30898 "spoolss_DeletePrinter",
30899 sizeof(struct spoolss_DeletePrinter
),
30900 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
30901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
30902 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
30906 "spoolss_SetPrinter",
30907 sizeof(struct spoolss_SetPrinter
),
30908 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
30909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
30910 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
30914 "spoolss_GetPrinter",
30915 sizeof(struct spoolss_GetPrinter
),
30916 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
30917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
30918 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
30922 "spoolss_AddPrinterDriver",
30923 sizeof(struct spoolss_AddPrinterDriver
),
30924 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
30925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
30926 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
30930 "spoolss_EnumPrinterDrivers",
30931 sizeof(struct spoolss_EnumPrinterDrivers
),
30932 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
30933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
30934 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
30938 "spoolss_GetPrinterDriver",
30939 sizeof(struct spoolss_GetPrinterDriver
),
30940 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
30941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
30942 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
30946 "spoolss_GetPrinterDriverDirectory",
30947 sizeof(struct spoolss_GetPrinterDriverDirectory
),
30948 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
30949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
30950 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
30954 "spoolss_DeletePrinterDriver",
30955 sizeof(struct spoolss_DeletePrinterDriver
),
30956 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
30957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
30958 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
30962 "spoolss_AddPrintProcessor",
30963 sizeof(struct spoolss_AddPrintProcessor
),
30964 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
30965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
30966 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
30970 "spoolss_EnumPrintProcessors",
30971 sizeof(struct spoolss_EnumPrintProcessors
),
30972 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
30973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
30974 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
30978 "spoolss_GetPrintProcessorDirectory",
30979 sizeof(struct spoolss_GetPrintProcessorDirectory
),
30980 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
30981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
30982 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
30986 "spoolss_StartDocPrinter",
30987 sizeof(struct spoolss_StartDocPrinter
),
30988 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
30989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
30990 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
30994 "spoolss_StartPagePrinter",
30995 sizeof(struct spoolss_StartPagePrinter
),
30996 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
30997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
30998 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
31002 "spoolss_WritePrinter",
31003 sizeof(struct spoolss_WritePrinter
),
31004 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
31005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
31006 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
31010 "spoolss_EndPagePrinter",
31011 sizeof(struct spoolss_EndPagePrinter
),
31012 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
31013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
31014 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
31018 "spoolss_AbortPrinter",
31019 sizeof(struct spoolss_AbortPrinter
),
31020 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
31021 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
31022 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
31026 "spoolss_ReadPrinter",
31027 sizeof(struct spoolss_ReadPrinter
),
31028 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
31029 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
31030 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
31034 "spoolss_EndDocPrinter",
31035 sizeof(struct spoolss_EndDocPrinter
),
31036 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
31037 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
31038 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
31043 sizeof(struct spoolss_AddJob
),
31044 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
31045 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
31046 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
31050 "spoolss_ScheduleJob",
31051 sizeof(struct spoolss_ScheduleJob
),
31052 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
31053 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
31054 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
31058 "spoolss_GetPrinterData",
31059 sizeof(struct spoolss_GetPrinterData
),
31060 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
31061 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
31062 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
31066 "spoolss_SetPrinterData",
31067 sizeof(struct spoolss_SetPrinterData
),
31068 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
31069 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
31070 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
31074 "spoolss_WaitForPrinterChange",
31075 sizeof(struct spoolss_WaitForPrinterChange
),
31076 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
31077 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
31078 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
31082 "spoolss_ClosePrinter",
31083 sizeof(struct spoolss_ClosePrinter
),
31084 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
31085 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
31086 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
31091 sizeof(struct spoolss_AddForm
),
31092 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
31093 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
31094 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
31098 "spoolss_DeleteForm",
31099 sizeof(struct spoolss_DeleteForm
),
31100 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
31101 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
31102 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
31107 sizeof(struct spoolss_GetForm
),
31108 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
31109 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
31110 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
31115 sizeof(struct spoolss_SetForm
),
31116 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
31117 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
31118 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
31122 "spoolss_EnumForms",
31123 sizeof(struct spoolss_EnumForms
),
31124 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
31125 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
31126 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
31130 "spoolss_EnumPorts",
31131 sizeof(struct spoolss_EnumPorts
),
31132 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
31133 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
31134 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
31138 "spoolss_EnumMonitors",
31139 sizeof(struct spoolss_EnumMonitors
),
31140 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
31141 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
31142 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
31147 sizeof(struct spoolss_AddPort
),
31148 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
31149 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
31150 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
31154 "spoolss_ConfigurePort",
31155 sizeof(struct spoolss_ConfigurePort
),
31156 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
31157 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
31158 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
31162 "spoolss_DeletePort",
31163 sizeof(struct spoolss_DeletePort
),
31164 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
31165 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
31166 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
31170 "spoolss_CreatePrinterIC",
31171 sizeof(struct spoolss_CreatePrinterIC
),
31172 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
31173 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
31174 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
31178 "spoolss_PlayGDIScriptOnPrinterIC",
31179 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
31180 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
31181 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
31182 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
31186 "spoolss_DeletePrinterIC",
31187 sizeof(struct spoolss_DeletePrinterIC
),
31188 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
31189 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
31190 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
31194 "spoolss_AddPrinterConnection",
31195 sizeof(struct spoolss_AddPrinterConnection
),
31196 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
31197 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
31198 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
31202 "spoolss_DeletePrinterConnection",
31203 sizeof(struct spoolss_DeletePrinterConnection
),
31204 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
31205 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
31206 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
31210 "spoolss_PrinterMessageBox",
31211 sizeof(struct spoolss_PrinterMessageBox
),
31212 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
31213 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
31214 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
31218 "spoolss_AddMonitor",
31219 sizeof(struct spoolss_AddMonitor
),
31220 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
31221 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
31222 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
31226 "spoolss_DeleteMonitor",
31227 sizeof(struct spoolss_DeleteMonitor
),
31228 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
31229 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
31230 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
31234 "spoolss_DeletePrintProcessor",
31235 sizeof(struct spoolss_DeletePrintProcessor
),
31236 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
31237 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
31238 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
31242 "spoolss_AddPrintProvidor",
31243 sizeof(struct spoolss_AddPrintProvidor
),
31244 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
31245 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
31246 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
31250 "spoolss_DeletePrintProvidor",
31251 sizeof(struct spoolss_DeletePrintProvidor
),
31252 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
31253 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
31254 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
31258 "spoolss_EnumPrintProcDataTypes",
31259 sizeof(struct spoolss_EnumPrintProcDataTypes
),
31260 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
31261 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
31262 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
31266 "spoolss_ResetPrinter",
31267 sizeof(struct spoolss_ResetPrinter
),
31268 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
31269 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
31270 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
31274 "spoolss_GetPrinterDriver2",
31275 sizeof(struct spoolss_GetPrinterDriver2
),
31276 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
31277 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
31278 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
31282 "spoolss_FindFirstPrinterChangeNotification",
31283 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
31284 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
31285 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
31286 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
31290 "spoolss_FindNextPrinterChangeNotification",
31291 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
31292 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
31293 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
31294 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
31298 "spoolss_FindClosePrinterNotify",
31299 sizeof(struct spoolss_FindClosePrinterNotify
),
31300 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
31301 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
31302 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
31306 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31307 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
31308 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31309 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31310 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31314 "spoolss_ReplyOpenPrinter",
31315 sizeof(struct spoolss_ReplyOpenPrinter
),
31316 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
31317 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
31318 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
31322 "spoolss_RouterReplyPrinter",
31323 sizeof(struct spoolss_RouterReplyPrinter
),
31324 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
31325 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
31326 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
31330 "spoolss_ReplyClosePrinter",
31331 sizeof(struct spoolss_ReplyClosePrinter
),
31332 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
31333 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
31334 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
31338 "spoolss_AddPortEx",
31339 sizeof(struct spoolss_AddPortEx
),
31340 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
31341 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
31342 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
31346 "spoolss_RouterFindFirstPrinterChangeNotification",
31347 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
31348 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
31349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
31350 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
31354 "spoolss_SpoolerInit",
31355 sizeof(struct spoolss_SpoolerInit
),
31356 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
31357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
31358 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
31362 "spoolss_ResetPrinterEx",
31363 sizeof(struct spoolss_ResetPrinterEx
),
31364 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
31365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
31366 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
31370 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31371 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
31372 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31374 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31378 "spoolss_RouterReplyPrinterEx",
31379 sizeof(struct spoolss_RouterReplyPrinterEx
),
31380 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
31381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
31382 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
31386 "spoolss_RouterRefreshPrinterChangeNotify",
31387 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
31388 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
31389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
31390 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
31395 sizeof(struct spoolss_44
),
31396 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
31397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
31398 (ndr_print_function_t
) ndr_print_spoolss_44
,
31402 "spoolss_OpenPrinterEx",
31403 sizeof(struct spoolss_OpenPrinterEx
),
31404 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
31405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
31406 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
31410 "spoolss_AddPrinterEx",
31411 sizeof(struct spoolss_AddPrinterEx
),
31412 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
31413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
31414 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
31419 sizeof(struct spoolss_47
),
31420 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
31421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
31422 (ndr_print_function_t
) ndr_print_spoolss_47
,
31426 "spoolss_EnumPrinterData",
31427 sizeof(struct spoolss_EnumPrinterData
),
31428 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
31429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
31430 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
31434 "spoolss_DeletePrinterData",
31435 sizeof(struct spoolss_DeletePrinterData
),
31436 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
31437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
31438 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
31443 sizeof(struct spoolss_4a
),
31444 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
31445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
31446 (ndr_print_function_t
) ndr_print_spoolss_4a
,
31451 sizeof(struct spoolss_4b
),
31452 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
31453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
31454 (ndr_print_function_t
) ndr_print_spoolss_4b
,
31459 sizeof(struct spoolss_4c
),
31460 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
31461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
31462 (ndr_print_function_t
) ndr_print_spoolss_4c
,
31466 "spoolss_SetPrinterDataEx",
31467 sizeof(struct spoolss_SetPrinterDataEx
),
31468 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
31469 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
31470 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
31474 "spoolss_GetPrinterDataEx",
31475 sizeof(struct spoolss_GetPrinterDataEx
),
31476 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
31477 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
31478 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
31482 "spoolss_EnumPrinterDataEx",
31483 sizeof(struct spoolss_EnumPrinterDataEx
),
31484 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
31485 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
31486 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
31490 "spoolss_EnumPrinterKey",
31491 sizeof(struct spoolss_EnumPrinterKey
),
31492 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
31493 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
31494 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
31498 "spoolss_DeletePrinterDataEx",
31499 sizeof(struct spoolss_DeletePrinterDataEx
),
31500 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
31501 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
31502 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
31506 "spoolss_DeletePrinterKey",
31507 sizeof(struct spoolss_DeletePrinterKey
),
31508 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
31509 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
31510 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
31515 sizeof(struct spoolss_53
),
31516 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
31517 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
31518 (ndr_print_function_t
) ndr_print_spoolss_53
,
31522 "spoolss_DeletePrinterDriverEx",
31523 sizeof(struct spoolss_DeletePrinterDriverEx
),
31524 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
31525 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
31526 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
31531 sizeof(struct spoolss_55
),
31532 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
31533 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
31534 (ndr_print_function_t
) ndr_print_spoolss_55
,
31539 sizeof(struct spoolss_56
),
31540 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
31541 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
31542 (ndr_print_function_t
) ndr_print_spoolss_56
,
31547 sizeof(struct spoolss_57
),
31548 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
31549 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
31550 (ndr_print_function_t
) ndr_print_spoolss_57
,
31555 sizeof(struct spoolss_XcvData
),
31556 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
31557 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
31558 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
31562 "spoolss_AddPrinterDriverEx",
31563 sizeof(struct spoolss_AddPrinterDriverEx
),
31564 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
31565 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
31566 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
31571 sizeof(struct spoolss_5a
),
31572 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
31573 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
31574 (ndr_print_function_t
) ndr_print_spoolss_5a
,
31579 sizeof(struct spoolss_5b
),
31580 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
31581 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
31582 (ndr_print_function_t
) ndr_print_spoolss_5b
,
31587 sizeof(struct spoolss_5c
),
31588 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
31589 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
31590 (ndr_print_function_t
) ndr_print_spoolss_5c
,
31595 sizeof(struct spoolss_5d
),
31596 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
31597 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
31598 (ndr_print_function_t
) ndr_print_spoolss_5d
,
31603 sizeof(struct spoolss_5e
),
31604 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
31605 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
31606 (ndr_print_function_t
) ndr_print_spoolss_5e
,
31611 sizeof(struct spoolss_5f
),
31612 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
31613 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
31614 (ndr_print_function_t
) ndr_print_spoolss_5f
,
31619 sizeof(struct spoolss_60
),
31620 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
31621 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
31622 (ndr_print_function_t
) ndr_print_spoolss_60
,
31627 sizeof(struct spoolss_61
),
31628 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
31629 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
31630 (ndr_print_function_t
) ndr_print_spoolss_61
,
31635 sizeof(struct spoolss_62
),
31636 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
31637 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
31638 (ndr_print_function_t
) ndr_print_spoolss_62
,
31643 sizeof(struct spoolss_63
),
31644 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
31645 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
31646 (ndr_print_function_t
) ndr_print_spoolss_63
,
31651 sizeof(struct spoolss_64
),
31652 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
31653 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
31654 (ndr_print_function_t
) ndr_print_spoolss_64
,
31659 sizeof(struct spoolss_65
),
31660 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
31661 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
31662 (ndr_print_function_t
) ndr_print_spoolss_65
,
31666 "spoolss_GetCorePrinterDrivers",
31667 sizeof(struct spoolss_GetCorePrinterDrivers
),
31668 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
31669 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
31670 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
31675 sizeof(struct spoolss_67
),
31676 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
31677 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
31678 (ndr_print_function_t
) ndr_print_spoolss_67
,
31682 "spoolss_GetPrinterDriverPackagePath",
31683 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
31684 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
31685 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
31686 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
31691 sizeof(struct spoolss_69
),
31692 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
31693 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
31694 (ndr_print_function_t
) ndr_print_spoolss_69
,
31699 sizeof(struct spoolss_6a
),
31700 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
31701 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
31702 (ndr_print_function_t
) ndr_print_spoolss_6a
,
31707 sizeof(struct spoolss_6b
),
31708 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
31709 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
31710 (ndr_print_function_t
) ndr_print_spoolss_6b
,
31715 sizeof(struct spoolss_6c
),
31716 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
31717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
31718 (ndr_print_function_t
) ndr_print_spoolss_6c
,
31723 sizeof(struct spoolss_6d
),
31724 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
31725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
31726 (ndr_print_function_t
) ndr_print_spoolss_6d
,
31729 { NULL
, 0, NULL
, NULL
, NULL
, false }
31732 static const char * const spoolss_endpoint_strings
[] = {
31733 "ncacn_np:[\\pipe\\spoolss]",
31736 static const struct ndr_interface_string_array spoolss_endpoints
= {
31738 .names
= spoolss_endpoint_strings
31741 static const char * const spoolss_authservice_strings
[] = {
31745 static const struct ndr_interface_string_array spoolss_authservices
= {
31747 .names
= spoolss_authservice_strings
31751 const struct ndr_interface_table ndr_table_spoolss
= {
31754 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31755 NDR_SPOOLSS_VERSION
31757 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
31759 .calls
= spoolss_calls
,
31760 .endpoints
= &spoolss_endpoints
,
31761 .authservices
= &spoolss_authservices