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 _PUBLIC_
void ndr_print_spoolss_Time(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Time
*r
)
49 ndr_print_struct(ndr
, name
, "spoolss_Time");
51 ndr_print_uint16(ndr
, "year", r
->year
);
52 ndr_print_uint16(ndr
, "month", r
->month
);
53 ndr_print_uint16(ndr
, "day_of_week", r
->day_of_week
);
54 ndr_print_uint16(ndr
, "day", r
->day
);
55 ndr_print_uint16(ndr
, "hour", r
->hour
);
56 ndr_print_uint16(ndr
, "minute", r
->minute
);
57 ndr_print_uint16(ndr
, "second", r
->second
);
58 ndr_print_uint16(ndr
, "millisecond", r
->millisecond
);
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
64 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
67 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
69 if (ndr_flags
& NDR_SCALARS
) {
70 NDR_CHECK(ndr_push_align(ndr
, 5));
71 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
73 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
75 if (ndr_flags
& NDR_BUFFERS
) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
80 return NDR_ERR_SUCCESS
;
83 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
86 TALLOC_CTX
*_mem_save_time_0
;
87 if (ndr_flags
& NDR_SCALARS
) {
88 NDR_CHECK(ndr_pull_align(ndr
, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
92 NDR_PULL_ALLOC(ndr
, r
->time
);
96 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
98 if (ndr_flags
& NDR_BUFFERS
) {
100 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
101 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
106 return NDR_ERR_SUCCESS
;
109 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
111 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
113 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
114 ndr_print_ptr(ndr
, "time", r
->time
);
117 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
123 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
126 return NDR_ERR_SUCCESS
;
129 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
134 return NDR_ERR_SUCCESS
;
137 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
139 const char *val
= NULL
;
142 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
149 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
151 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
152 return NDR_ERR_SUCCESS
;
155 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
158 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
160 return NDR_ERR_SUCCESS
;
163 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
165 const char *val
= NULL
;
168 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
177 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
179 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
180 return NDR_ERR_SUCCESS
;
183 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
186 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
188 return NDR_ERR_SUCCESS
;
191 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
193 const char *val
= NULL
;
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
203 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
205 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
206 return NDR_ERR_SUCCESS
;
209 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
212 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
214 return NDR_ERR_SUCCESS
;
217 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
219 const char *val
= NULL
;
222 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
231 static enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
234 return NDR_ERR_SUCCESS
;
237 static enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
240 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
242 return NDR_ERR_SUCCESS
;
245 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
247 ndr_print_uint32(ndr
, name
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
260 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
270 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
271 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
272 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
273 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
277 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
280 return NDR_ERR_SUCCESS
;
283 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
288 return NDR_ERR_SUCCESS
;
291 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
293 ndr_print_uint32(ndr
, name
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
304 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
305 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
306 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
307 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
311 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
313 if (ndr_flags
& NDR_SCALARS
) {
314 NDR_CHECK(ndr_push_align(ndr
, 5));
316 uint32_t _flags_save_string
= ndr
->flags
;
317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
319 ndr
->flags
= _flags_save_string
;
322 uint32_t _flags_save_string
= ndr
->flags
;
323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
325 ndr
->flags
= _flags_save_string
;
327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
345 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
350 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
354 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
356 if (ndr_flags
& NDR_BUFFERS
) {
358 uint32_t _flags_save_string
= ndr
->flags
;
359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
360 if (r
->printername
) {
361 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
364 ndr
->flags
= _flags_save_string
;
367 uint32_t _flags_save_string
= ndr
->flags
;
368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
370 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
371 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
373 ndr
->flags
= _flags_save_string
;
376 return NDR_ERR_SUCCESS
;
379 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
381 uint32_t _ptr_printername
;
382 TALLOC_CTX
*_mem_save_printername_0
;
383 uint32_t _ptr_servername
;
384 TALLOC_CTX
*_mem_save_servername_0
;
385 if (ndr_flags
& NDR_SCALARS
) {
386 NDR_CHECK(ndr_pull_align(ndr
, 5));
388 uint32_t _flags_save_string
= ndr
->flags
;
389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
391 if (_ptr_printername
) {
392 NDR_PULL_ALLOC(ndr
, r
->printername
);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
395 r
->printername
= NULL
;
397 ndr
->flags
= _flags_save_string
;
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_servername
));
403 if (_ptr_servername
) {
404 NDR_PULL_ALLOC(ndr
, r
->servername
);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
407 r
->servername
= NULL
;
409 ndr
->flags
= _flags_save_string
;
411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
429 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
434 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
435 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
438 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
440 if (ndr_flags
& NDR_BUFFERS
) {
442 uint32_t _flags_save_string
= ndr
->flags
;
443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
444 if (r
->printername
) {
445 uint32_t _relative_save_offset
;
446 _relative_save_offset
= ndr
->offset
;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
448 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
449 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
450 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
452 ndr
->offset
= _relative_save_offset
;
454 ndr
->flags
= _flags_save_string
;
457 uint32_t _flags_save_string
= ndr
->flags
;
458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
460 uint32_t _relative_save_offset
;
461 _relative_save_offset
= ndr
->offset
;
462 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
463 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
464 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
465 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
467 ndr
->offset
= _relative_save_offset
;
469 ndr
->flags
= _flags_save_string
;
472 return NDR_ERR_SUCCESS
;
475 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
477 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
479 ndr_print_ptr(ndr
, "printername", r
->printername
);
481 if (r
->printername
) {
482 ndr_print_string(ndr
, "printername", r
->printername
);
485 ndr_print_ptr(ndr
, "servername", r
->servername
);
488 ndr_print_string(ndr
, "servername", r
->servername
);
491 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
492 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
493 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
494 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
495 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
496 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
497 ndr_print_uint32(ndr
, "version", r
->version
);
498 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
499 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
500 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
501 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
502 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
503 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
504 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
505 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
506 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
507 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
508 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
509 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
510 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
511 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
512 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
513 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
514 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
515 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
516 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
517 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
521 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
523 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
526 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
529 return NDR_ERR_SUCCESS
;
532 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
537 return NDR_ERR_SUCCESS
;
540 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
542 ndr_print_uint32(ndr
, name
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
561 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
562 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
563 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
564 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
565 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
566 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
568 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
569 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
575 static enum ndr_err_code
ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion r
)
577 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
578 return NDR_ERR_SUCCESS
;
581 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion
*r
)
584 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
586 return NDR_ERR_SUCCESS
;
589 _PUBLIC_
void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeSpecVersion r
)
591 const char *val
= NULL
;
594 case DMSPEC_NT3
: val
= "DMSPEC_NT3"; break;
595 case DMSPEC_WIN95_98_ME
: val
= "DMSPEC_WIN95_98_ME"; break;
596 case DMSPEC_NT4_AND_ABOVE
: val
= "DMSPEC_NT4_AND_ABOVE"; break;
598 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
601 static enum ndr_err_code
ndr_push_spoolss_DeviceModeOrientation(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation r
)
603 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
604 return NDR_ERR_SUCCESS
;
607 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation
*r
)
610 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
612 return NDR_ERR_SUCCESS
;
615 _PUBLIC_
void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeOrientation r
)
617 const char *val
= NULL
;
620 case DMORIENT_PORTRAIT
: val
= "DMORIENT_PORTRAIT"; break;
621 case DMORIENT_LANDSCAPE
: val
= "DMORIENT_LANDSCAPE"; break;
623 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
626 static enum ndr_err_code
ndr_push_spoolss_DeviceModePaperSize(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize r
)
628 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
629 return NDR_ERR_SUCCESS
;
632 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize
*r
)
635 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
637 return NDR_ERR_SUCCESS
;
640 _PUBLIC_
void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePaperSize r
)
642 const char *val
= NULL
;
645 case DMPAPER_LETTER
: val
= "DMPAPER_LETTER"; break;
646 case DMPAPER_LETTERSMALL
: val
= "DMPAPER_LETTERSMALL"; break;
647 case DMPAPER_TABLOID
: val
= "DMPAPER_TABLOID"; break;
648 case DMPAPER_LEDGER
: val
= "DMPAPER_LEDGER"; break;
649 case DMPAPER_LEGAL
: val
= "DMPAPER_LEGAL"; break;
650 case DMPAPER_STATEMENT
: val
= "DMPAPER_STATEMENT"; break;
651 case DMPAPER_EXECUTIVE
: val
= "DMPAPER_EXECUTIVE"; break;
652 case DMPAPER_A3
: val
= "DMPAPER_A3"; break;
653 case DMPAPER_A4
: val
= "DMPAPER_A4"; break;
654 case DMPAPER_A4SMALL
: val
= "DMPAPER_A4SMALL"; break;
655 case DMPAPER_A5
: val
= "DMPAPER_A5"; break;
656 case DMPAPER_B4
: val
= "DMPAPER_B4"; break;
657 case DMPAPER_B5
: val
= "DMPAPER_B5"; break;
658 case DMPAPER_FOLIO
: val
= "DMPAPER_FOLIO"; break;
659 case DMPAPER_QUARTO
: val
= "DMPAPER_QUARTO"; break;
660 case DMPAPER_10X14
: val
= "DMPAPER_10X14"; break;
661 case DMPAPER_11X17
: val
= "DMPAPER_11X17"; break;
662 case DMPAPER_NOTE
: val
= "DMPAPER_NOTE"; break;
663 case DMPAPER_ENV_9
: val
= "DMPAPER_ENV_9"; break;
664 case DMPAPER_ENV_10
: val
= "DMPAPER_ENV_10"; break;
665 case DMPAPER_ENV_11
: val
= "DMPAPER_ENV_11"; break;
666 case DMPAPER_ENV_12
: val
= "DMPAPER_ENV_12"; break;
667 case DMPAPER_ENV_14
: val
= "DMPAPER_ENV_14"; break;
668 case DMPAPER_CSHEET
: val
= "DMPAPER_CSHEET"; break;
669 case DMPAPER_DSHEET
: val
= "DMPAPER_DSHEET"; break;
670 case DMPAPER_ESHEET
: val
= "DMPAPER_ESHEET"; break;
671 case DMPAPER_ENV_DL
: val
= "DMPAPER_ENV_DL"; break;
672 case DMPAPER_ENV_C5
: val
= "DMPAPER_ENV_C5"; break;
673 case DMPAPER_ENV_C3
: val
= "DMPAPER_ENV_C3"; break;
674 case DMPAPER_ENV_C4
: val
= "DMPAPER_ENV_C4"; break;
675 case DMPAPER_ENV_C6
: val
= "DMPAPER_ENV_C6"; break;
676 case DMPAPER_ENV_C65
: val
= "DMPAPER_ENV_C65"; break;
677 case DMPAPER_ENV_B4
: val
= "DMPAPER_ENV_B4"; break;
678 case DMPAPER_ENV_B5
: val
= "DMPAPER_ENV_B5"; break;
679 case DMPAPER_ENV_B6
: val
= "DMPAPER_ENV_B6"; break;
680 case DMPAPER_ENV_ITALY
: val
= "DMPAPER_ENV_ITALY"; break;
681 case DMPAPER_ENV_MONARCH
: val
= "DMPAPER_ENV_MONARCH"; break;
682 case DMPAPER_ENV_PERSONAL
: val
= "DMPAPER_ENV_PERSONAL"; break;
683 case DMPAPER_FANFOLD_US
: val
= "DMPAPER_FANFOLD_US"; break;
684 case DMPAPER_FANFOLD_STD_GERMAN
: val
= "DMPAPER_FANFOLD_STD_GERMAN"; break;
685 case DMPAPER_FANFOLD_LGL_GERMAN
: val
= "DMPAPER_FANFOLD_LGL_GERMAN"; break;
686 case DMPAPER_DBL_JAPANESE_POSTCARD
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
687 case DMPAPER_A6
: val
= "DMPAPER_A6"; break;
688 case DMPAPER_JENV_KAKU2
: val
= "DMPAPER_JENV_KAKU2"; break;
689 case DMPAPER_JENV_KAKU3
: val
= "DMPAPER_JENV_KAKU3"; break;
690 case DMPAPER_JENV_CHOU3
: val
= "DMPAPER_JENV_CHOU3"; break;
691 case DMPAPER_JENV_CHOU4
: val
= "DMPAPER_JENV_CHOU4"; break;
692 case DMPAPER_LETTER_ROTATED
: val
= "DMPAPER_LETTER_ROTATED"; break;
693 case DMPAPER_A3_ROTATED
: val
= "DMPAPER_A3_ROTATED"; break;
694 case DMPAPER_A4_ROTATED
: val
= "DMPAPER_A4_ROTATED"; break;
695 case DMPAPER_A5_ROTATED
: val
= "DMPAPER_A5_ROTATED"; break;
696 case DMPAPER_B4_JIS_ROTATED
: val
= "DMPAPER_B4_JIS_ROTATED"; break;
697 case DMPAPER_B5_JIS_ROTATED
: val
= "DMPAPER_B5_JIS_ROTATED"; break;
698 case DMPAPER_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
699 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
700 case DMPAPER_A6_ROTATED
: val
= "DMPAPER_A6_ROTATED"; break;
701 case DMPAPER_JENV_KAKU2_ROTATED
: val
= "DMPAPER_JENV_KAKU2_ROTATED"; break;
702 case DMPAPER_JENV_KAKU3_ROTATED
: val
= "DMPAPER_JENV_KAKU3_ROTATED"; break;
703 case DMPAPER_JENV_CHOU3_ROTATED
: val
= "DMPAPER_JENV_CHOU3_ROTATED"; break;
704 case DMPAPER_JENV_CHOU4_ROTATED
: val
= "DMPAPER_JENV_CHOU4_ROTATED"; break;
705 case DMPAPER_B6_JIS
: val
= "DMPAPER_B6_JIS"; break;
706 case DMPAPER_B6_JIS_ROTATED
: val
= "DMPAPER_B6_JIS_ROTATED"; break;
707 case DMPAPER_12X11
: val
= "DMPAPER_12X11"; break;
708 case DMPAPER_JENV_YOU4
: val
= "DMPAPER_JENV_YOU4"; break;
709 case DMPAPER_JENV_YOU4_ROTATED
: val
= "DMPAPER_JENV_YOU4_ROTATED"; break;
710 case DMPAPER_P16K
: val
= "DMPAPER_P16K"; break;
711 case DMPAPER_P32K
: val
= "DMPAPER_P32K"; break;
712 case DMPAPER_P32KBIG
: val
= "DMPAPER_P32KBIG"; break;
713 case DMPAPER_PENV_1
: val
= "DMPAPER_PENV_1"; break;
714 case DMPAPER_PENV_2
: val
= "DMPAPER_PENV_2"; break;
715 case DMPAPER_PENV_3
: val
= "DMPAPER_PENV_3"; break;
716 case DMPAPER_PENV_4
: val
= "DMPAPER_PENV_4"; break;
717 case DMPAPER_PENV_5
: val
= "DMPAPER_PENV_5"; break;
718 case DMPAPER_PENV_6
: val
= "DMPAPER_PENV_6"; break;
719 case DMPAPER_PENV_7
: val
= "DMPAPER_PENV_7"; break;
720 case DMPAPER_PENV_8
: val
= "DMPAPER_PENV_8"; break;
721 case DMPAPER_PENV_9
: val
= "DMPAPER_PENV_9"; break;
722 case DMPAPER_PENV_10
: val
= "DMPAPER_PENV_10"; break;
723 case DMPAPER_P16K_ROTATED
: val
= "DMPAPER_P16K_ROTATED"; break;
724 case DMPAPER_P32K_ROTATED
: val
= "DMPAPER_P32K_ROTATED"; break;
725 case DMPAPER_P32KBIG_ROTATED
: val
= "DMPAPER_P32KBIG_ROTATED"; break;
726 case DMPAPER_PENV_1_ROTATED
: val
= "DMPAPER_PENV_1_ROTATED"; break;
727 case DMPAPER_PENV_2_ROTATED
: val
= "DMPAPER_PENV_2_ROTATED"; break;
728 case DMPAPER_PENV_3_ROTATED
: val
= "DMPAPER_PENV_3_ROTATED"; break;
729 case DMPAPER_PENV_4_ROTATED
: val
= "DMPAPER_PENV_4_ROTATED"; break;
730 case DMPAPER_PENV_5_ROTATED
: val
= "DMPAPER_PENV_5_ROTATED"; break;
731 case DMPAPER_PENV_6_ROTATED
: val
= "DMPAPER_PENV_6_ROTATED"; break;
732 case DMPAPER_PENV_7_ROTATED
: val
= "DMPAPER_PENV_7_ROTATED"; break;
733 case DMPAPER_PENV_8_ROTATED
: val
= "DMPAPER_PENV_8_ROTATED"; break;
734 case DMPAPER_PENV_9_ROTATED
: val
= "DMPAPER_PENV_9_ROTATED"; break;
735 case DMPAPER_PENV_10_ROTATED
: val
= "DMPAPER_PENV_10_ROTATED"; break;
737 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
740 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource r
)
742 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
743 return NDR_ERR_SUCCESS
;
746 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource
*r
)
749 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
751 return NDR_ERR_SUCCESS
;
754 _PUBLIC_
void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDefaultSource r
)
756 const char *val
= NULL
;
759 case DMBIN_UPPER
: val
= "DMBIN_UPPER"; break;
760 case DMBIN_LOWER
: val
= "DMBIN_LOWER"; break;
761 case DMBIN_MIDDLE
: val
= "DMBIN_MIDDLE"; break;
762 case DMBIN_MANUAL
: val
= "DMBIN_MANUAL"; break;
763 case DMBIN_ENVELOPE
: val
= "DMBIN_ENVELOPE"; break;
764 case DMBIN_ENVMANUAL
: val
= "DMBIN_ENVMANUAL"; break;
765 case DMBIN_AUTO
: val
= "DMBIN_AUTO"; break;
766 case DMBIN_TRACTOR
: val
= "DMBIN_TRACTOR"; break;
767 case DMBIN_SMALLFMT
: val
= "DMBIN_SMALLFMT"; break;
768 case DMBIN_LARGEFMT
: val
= "DMBIN_LARGEFMT"; break;
769 case DMBIN_LARGECAPACITY
: val
= "DMBIN_LARGECAPACITY"; break;
770 case DMBIN_CASSETTE
: val
= "DMBIN_CASSETTE"; break;
771 case DMBIN_FORMSOURCE
: val
= "DMBIN_FORMSOURCE"; break;
773 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
776 static enum ndr_err_code
ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality r
)
778 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
779 return NDR_ERR_SUCCESS
;
782 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality
*r
)
785 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
787 return NDR_ERR_SUCCESS
;
790 _PUBLIC_
void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePrintQuality r
)
792 const char *val
= NULL
;
795 case DMRES_HIGH
: val
= "DMRES_HIGH"; break;
796 case DMRES_MEDIUM
: val
= "DMRES_MEDIUM"; break;
797 case DMRES_LOW
: val
= "DMRES_LOW"; break;
798 case DMRES_DRAFT
: val
= "DMRES_DRAFT"; break;
800 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
803 static enum ndr_err_code
ndr_push_spoolss_DeviceModeColor(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor r
)
805 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
806 return NDR_ERR_SUCCESS
;
809 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeColor(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor
*r
)
812 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
814 return NDR_ERR_SUCCESS
;
817 _PUBLIC_
void ndr_print_spoolss_DeviceModeColor(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeColor r
)
819 const char *val
= NULL
;
822 case DMRES_MONOCHROME
: val
= "DMRES_MONOCHROME"; break;
823 case DMRES_COLOR
: val
= "DMRES_COLOR"; break;
825 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
828 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDuplex(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex r
)
830 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
831 return NDR_ERR_SUCCESS
;
834 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex
*r
)
837 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
839 return NDR_ERR_SUCCESS
;
842 _PUBLIC_
void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDuplex r
)
844 const char *val
= NULL
;
847 case DMDUP_SIMPLEX
: val
= "DMDUP_SIMPLEX"; break;
848 case DMDUP_VERTICAL
: val
= "DMDUP_VERTICAL"; break;
849 case DMDUP_HORIZONTAL
: val
= "DMDUP_HORIZONTAL"; break;
851 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
854 static enum ndr_err_code
ndr_push_spoolss_DeviceModeTTOption(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption r
)
856 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
857 return NDR_ERR_SUCCESS
;
860 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption
*r
)
863 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
865 return NDR_ERR_SUCCESS
;
868 _PUBLIC_
void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeTTOption r
)
870 const char *val
= NULL
;
873 case DMTT_BITMAP
: val
= "DMTT_BITMAP"; break;
874 case DMTT_DOWNLOAD
: val
= "DMTT_DOWNLOAD"; break;
875 case DMTT_SUBDEV
: val
= "DMTT_SUBDEV"; break;
876 case DMTT_DOWNLOAD_OUTLINE
: val
= "DMTT_DOWNLOAD_OUTLINE"; break;
878 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
881 static enum ndr_err_code
ndr_push_spoolss_DeviceModeCollate(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate r
)
883 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
884 return NDR_ERR_SUCCESS
;
887 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate
*r
)
890 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
892 return NDR_ERR_SUCCESS
;
895 _PUBLIC_
void ndr_print_spoolss_DeviceModeCollate(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeCollate r
)
897 const char *val
= NULL
;
900 case DMCOLLATE_FALSE
: val
= "DMCOLLATE_FALSE"; break;
901 case DMCOLLATE_TRUE
: val
= "DMCOLLATE_TRUE"; break;
903 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
906 static enum ndr_err_code
ndr_push_spoolss_DeviceModeNUp(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp r
)
908 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
909 return NDR_ERR_SUCCESS
;
912 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp
*r
)
915 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
917 return NDR_ERR_SUCCESS
;
920 _PUBLIC_
void ndr_print_spoolss_DeviceModeNUp(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeNUp r
)
922 const char *val
= NULL
;
925 case DMNUP_SYSTEM
: val
= "DMNUP_SYSTEM"; break;
926 case DMNUP_ONEUP
: val
= "DMNUP_ONEUP"; break;
928 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
931 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod r
)
933 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
934 return NDR_ERR_SUCCESS
;
937 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod
*r
)
940 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
942 return NDR_ERR_SUCCESS
;
945 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMMethod r
)
947 const char *val
= NULL
;
950 case DMICMMETHOD_NONE
: val
= "DMICMMETHOD_NONE"; break;
951 case DMICMMETHOD_SYSTEM
: val
= "DMICMMETHOD_SYSTEM"; break;
952 case DMICMMETHOD_DRIVER
: val
= "DMICMMETHOD_DRIVER"; break;
953 case DMICMMETHOD_DEVICE
: val
= "DMICMMETHOD_DEVICE"; break;
955 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
958 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent r
)
960 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
961 return NDR_ERR_SUCCESS
;
964 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent
*r
)
967 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
969 return NDR_ERR_SUCCESS
;
972 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMIntent r
)
974 const char *val
= NULL
;
977 case DMICM_SATURATE
: val
= "DMICM_SATURATE"; break;
978 case DMICM_CONTRAST
: val
= "DMICM_CONTRAST"; break;
979 case DMICM_COLORIMETRIC
: val
= "DMICM_COLORIMETRIC"; break;
980 case DMICM_ABS_COLORIMETRIC
: val
= "DMICM_ABS_COLORIMETRIC"; break;
982 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
985 static enum ndr_err_code
ndr_push_spoolss_DeviceModeMediaType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType r
)
987 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
988 return NDR_ERR_SUCCESS
;
991 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType
*r
)
994 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
996 return NDR_ERR_SUCCESS
;
999 _PUBLIC_
void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeMediaType r
)
1001 const char *val
= NULL
;
1004 case DMMEDIA_STANDARD
: val
= "DMMEDIA_STANDARD"; break;
1005 case DMMEDIA_TRANSPARENCY
: val
= "DMMEDIA_TRANSPARENCY"; break;
1006 case DMMEDIA_GLOSSY
: val
= "DMMEDIA_GLOSSY"; break;
1008 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1011 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDitherType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType r
)
1013 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1014 return NDR_ERR_SUCCESS
;
1017 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType
*r
)
1020 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1022 return NDR_ERR_SUCCESS
;
1025 _PUBLIC_
void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDitherType r
)
1027 const char *val
= NULL
;
1030 case DMDITHER_NONE
: val
= "DMDITHER_NONE"; break;
1031 case DMDITHER_COARSE
: val
= "DMDITHER_COARSE"; break;
1032 case DMDITHER_FINE
: val
= "DMDITHER_FINE"; break;
1033 case DMDITHER_LINEART
: val
= "DMDITHER_LINEART"; break;
1034 case DMDITHER_ERRORDIFFUSION
: val
= "DMDITHER_ERRORDIFFUSION"; break;
1035 case DMDITHER_RESERVED6
: val
= "DMDITHER_RESERVED6"; break;
1036 case DMDITHER_RESERVED7
: val
= "DMDITHER_RESERVED7"; break;
1037 case DMDITHER_RESERVED8
: val
= "DMDITHER_RESERVED8"; break;
1038 case DMDITHER_RESERVED9
: val
= "DMDITHER_RESERVED9"; break;
1039 case DMDITHER_GRAYSCALE
: val
= "DMDITHER_GRAYSCALE"; break;
1041 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1044 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
1046 if (ndr_flags
& NDR_SCALARS
) {
1047 NDR_CHECK(ndr_push_align(ndr
, 4));
1048 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, r
->specversion
));
1050 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
1051 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
1052 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
1053 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
1054 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, r
->orientation
));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, r
->papersize
));
1056 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
1057 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
1058 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
1059 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, r
->defaultsource
));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, r
->printquality
));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, r
->color
));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, r
->duplex
));
1064 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
1065 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, r
->ttoption
));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, r
->collate
));
1067 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
1068 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
1069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
1070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
1071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, r
->displayflags
));
1073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, r
->icmmethod
));
1075 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, r
->icmintent
));
1076 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, r
->mediatype
));
1077 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, r
->dithertype
));
1078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
1079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
1080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
1081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
1083 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1086 struct ndr_push
*_ndr_driverextra_data
;
1087 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1088 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
1089 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1091 ndr
->flags
= _flags_save_DATA_BLOB
;
1093 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1095 if (ndr_flags
& NDR_BUFFERS
) {
1097 return NDR_ERR_SUCCESS
;
1100 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
1102 if (ndr_flags
& NDR_SCALARS
) {
1103 NDR_CHECK(ndr_pull_align(ndr
, 4));
1104 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
1105 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, &r
->specversion
));
1106 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
1107 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1108 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
1110 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, &r
->orientation
));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, &r
->papersize
));
1112 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
1113 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
1114 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
1115 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, &r
->defaultsource
));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, &r
->printquality
));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, &r
->color
));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, &r
->duplex
));
1120 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, &r
->ttoption
));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, &r
->collate
));
1123 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
1124 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
1125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
1126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
1127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, &r
->displayflags
));
1129 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, &r
->icmmethod
));
1131 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, &r
->icmintent
));
1132 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, &r
->mediatype
));
1133 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, &r
->dithertype
));
1134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
1137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
1139 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1142 struct ndr_pull
*_ndr_driverextra_data
;
1143 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
1144 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
1145 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
1147 ndr
->flags
= _flags_save_DATA_BLOB
;
1149 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1151 if (ndr_flags
& NDR_BUFFERS
) {
1153 return NDR_ERR_SUCCESS
;
1156 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
1158 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
1160 ndr_print_string(ndr
, "devicename", r
->devicename
);
1161 ndr_print_spoolss_DeviceModeSpecVersion(ndr
, "specversion", r
->specversion
);
1162 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
1163 ndr_print_uint16(ndr
, "size", r
->size
);
1164 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
1165 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
1166 ndr_print_spoolss_DeviceModeOrientation(ndr
, "orientation", r
->orientation
);
1167 ndr_print_spoolss_DeviceModePaperSize(ndr
, "papersize", r
->papersize
);
1168 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
1169 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
1170 ndr_print_uint16(ndr
, "scale", r
->scale
);
1171 ndr_print_uint16(ndr
, "copies", r
->copies
);
1172 ndr_print_spoolss_DeviceModeDefaultSource(ndr
, "defaultsource", r
->defaultsource
);
1173 ndr_print_spoolss_DeviceModePrintQuality(ndr
, "printquality", r
->printquality
);
1174 ndr_print_spoolss_DeviceModeColor(ndr
, "color", r
->color
);
1175 ndr_print_spoolss_DeviceModeDuplex(ndr
, "duplex", r
->duplex
);
1176 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
1177 ndr_print_spoolss_DeviceModeTTOption(ndr
, "ttoption", r
->ttoption
);
1178 ndr_print_spoolss_DeviceModeCollate(ndr
, "collate", r
->collate
);
1179 ndr_print_string(ndr
, "formname", r
->formname
);
1180 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
1181 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
1182 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
1183 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
1184 ndr_print_spoolss_DeviceModeNUp(ndr
, "displayflags", r
->displayflags
);
1185 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
1186 ndr_print_spoolss_DeviceModeICMMethod(ndr
, "icmmethod", r
->icmmethod
);
1187 ndr_print_spoolss_DeviceModeICMIntent(ndr
, "icmintent", r
->icmintent
);
1188 ndr_print_spoolss_DeviceModeMediaType(ndr
, "mediatype", r
->mediatype
);
1189 ndr_print_spoolss_DeviceModeDitherType(ndr
, "dithertype", r
->dithertype
);
1190 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
1191 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
1192 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
1193 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
1194 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
1198 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1200 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
1203 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1206 return NDR_ERR_SUCCESS
;
1209 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1214 return NDR_ERR_SUCCESS
;
1217 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1219 ndr_print_uint32(ndr
, name
, r
);
1221 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
1222 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
1223 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
1224 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
1225 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
1226 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
1227 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
1228 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
1229 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
1230 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
1231 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
1232 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
1233 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
1234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
1235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
1236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
1237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
1238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
1239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
1243 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1246 return NDR_ERR_SUCCESS
;
1249 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1254 return NDR_ERR_SUCCESS
;
1257 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1259 ndr_print_uint32(ndr
, name
, r
);
1261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
1262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
1263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
1264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
1265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
1266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
1267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
1268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
1269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
1270 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
1271 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
1272 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
1273 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
1274 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
1275 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
1276 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
1280 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
1282 if (ndr_flags
& NDR_SCALARS
) {
1283 NDR_CHECK(ndr_push_align(ndr
, 5));
1284 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
1286 uint32_t _flags_save_string
= ndr
->flags
;
1287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1288 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
1289 ndr
->flags
= _flags_save_string
;
1292 uint32_t _flags_save_string
= ndr
->flags
;
1293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
1295 ndr
->flags
= _flags_save_string
;
1298 uint32_t _flags_save_string
= ndr
->flags
;
1299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1301 ndr
->flags
= _flags_save_string
;
1303 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1305 if (ndr_flags
& NDR_BUFFERS
) {
1307 uint32_t _flags_save_string
= ndr
->flags
;
1308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1309 if (r
->description
) {
1310 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
1311 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
1313 ndr
->flags
= _flags_save_string
;
1316 uint32_t _flags_save_string
= ndr
->flags
;
1317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1319 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
1320 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
1322 ndr
->flags
= _flags_save_string
;
1325 uint32_t _flags_save_string
= ndr
->flags
;
1326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1328 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1329 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1331 ndr
->flags
= _flags_save_string
;
1334 return NDR_ERR_SUCCESS
;
1337 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
1339 uint32_t _ptr_description
;
1340 TALLOC_CTX
*_mem_save_description_0
;
1342 TALLOC_CTX
*_mem_save_name_0
;
1343 uint32_t _ptr_comment
;
1344 TALLOC_CTX
*_mem_save_comment_0
;
1345 if (ndr_flags
& NDR_SCALARS
) {
1346 NDR_CHECK(ndr_pull_align(ndr
, 5));
1347 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
1352 if (_ptr_description
) {
1353 NDR_PULL_ALLOC(ndr
, r
->description
);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
1356 r
->description
= NULL
;
1358 ndr
->flags
= _flags_save_string
;
1361 uint32_t _flags_save_string
= ndr
->flags
;
1362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
1365 NDR_PULL_ALLOC(ndr
, r
->name
);
1366 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
1370 ndr
->flags
= _flags_save_string
;
1373 uint32_t _flags_save_string
= ndr
->flags
;
1374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1377 NDR_PULL_ALLOC(ndr
, r
->comment
);
1378 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1382 ndr
->flags
= _flags_save_string
;
1384 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1386 if (ndr_flags
& NDR_BUFFERS
) {
1388 uint32_t _flags_save_string
= ndr
->flags
;
1389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1390 if (r
->description
) {
1391 uint32_t _relative_save_offset
;
1392 _relative_save_offset
= ndr
->offset
;
1393 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
1394 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1395 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
1396 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
1397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
1398 ndr
->offset
= _relative_save_offset
;
1400 ndr
->flags
= _flags_save_string
;
1403 uint32_t _flags_save_string
= ndr
->flags
;
1404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1406 uint32_t _relative_save_offset
;
1407 _relative_save_offset
= ndr
->offset
;
1408 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
1409 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1410 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
1411 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
1412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
1413 ndr
->offset
= _relative_save_offset
;
1415 ndr
->flags
= _flags_save_string
;
1418 uint32_t _flags_save_string
= ndr
->flags
;
1419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1421 uint32_t _relative_save_offset
;
1422 _relative_save_offset
= ndr
->offset
;
1423 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1424 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1425 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1426 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1428 ndr
->offset
= _relative_save_offset
;
1430 ndr
->flags
= _flags_save_string
;
1433 return NDR_ERR_SUCCESS
;
1436 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
1438 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
1440 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
1441 ndr_print_ptr(ndr
, "description", r
->description
);
1443 if (r
->description
) {
1444 ndr_print_string(ndr
, "description", r
->description
);
1447 ndr_print_ptr(ndr
, "name", r
->name
);
1450 ndr_print_string(ndr
, "name", r
->name
);
1453 ndr_print_ptr(ndr
, "comment", r
->comment
);
1456 ndr_print_string(ndr
, "comment", r
->comment
);
1462 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1464 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
1467 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
1469 if (ndr_flags
& NDR_SCALARS
) {
1470 NDR_CHECK(ndr_push_align(ndr
, 5));
1472 uint32_t _flags_save_string
= ndr
->flags
;
1473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1475 ndr
->flags
= _flags_save_string
;
1478 uint32_t _flags_save_string
= ndr
->flags
;
1479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1480 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1481 ndr
->flags
= _flags_save_string
;
1484 uint32_t _flags_save_string
= ndr
->flags
;
1485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1486 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
1487 ndr
->flags
= _flags_save_string
;
1490 uint32_t _flags_save_string
= ndr
->flags
;
1491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1493 ndr
->flags
= _flags_save_string
;
1496 uint32_t _flags_save_string
= ndr
->flags
;
1497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
1499 ndr
->flags
= _flags_save_string
;
1502 uint32_t _flags_save_string
= ndr
->flags
;
1503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1504 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1505 ndr
->flags
= _flags_save_string
;
1508 uint32_t _flags_save_string
= ndr
->flags
;
1509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
1511 ndr
->flags
= _flags_save_string
;
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
1515 uint32_t _flags_save_string
= ndr
->flags
;
1516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1517 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
1518 ndr
->flags
= _flags_save_string
;
1521 uint32_t _flags_save_string
= ndr
->flags
;
1522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1524 ndr
->flags
= _flags_save_string
;
1527 uint32_t _flags_save_string
= ndr
->flags
;
1528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1530 ndr
->flags
= _flags_save_string
;
1533 uint32_t _flags_save_string
= ndr
->flags
;
1534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1535 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1536 ndr
->flags
= _flags_save_string
;
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1539 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1544 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1547 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1549 if (ndr_flags
& NDR_BUFFERS
) {
1551 uint32_t _flags_save_string
= ndr
->flags
;
1552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1553 if (r
->servername
) {
1554 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1555 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1557 ndr
->flags
= _flags_save_string
;
1560 uint32_t _flags_save_string
= ndr
->flags
;
1561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1562 if (r
->printername
) {
1563 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1564 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1566 ndr
->flags
= _flags_save_string
;
1569 uint32_t _flags_save_string
= ndr
->flags
;
1570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1572 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1573 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1575 ndr
->flags
= _flags_save_string
;
1578 uint32_t _flags_save_string
= ndr
->flags
;
1579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1581 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1582 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1584 ndr
->flags
= _flags_save_string
;
1587 uint32_t _flags_save_string
= ndr
->flags
;
1588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1589 if (r
->drivername
) {
1590 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1591 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1593 ndr
->flags
= _flags_save_string
;
1596 uint32_t _flags_save_string
= ndr
->flags
;
1597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1599 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1600 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1602 ndr
->flags
= _flags_save_string
;
1605 uint32_t _flags_save_string
= ndr
->flags
;
1606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1608 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1609 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1611 ndr
->flags
= _flags_save_string
;
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1616 struct ndr_push
*_ndr_devmode
;
1617 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1618 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1619 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1623 uint32_t _flags_save_string
= ndr
->flags
;
1624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1626 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1629 ndr
->flags
= _flags_save_string
;
1632 uint32_t _flags_save_string
= ndr
->flags
;
1633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1634 if (r
->printprocessor
) {
1635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1638 ndr
->flags
= _flags_save_string
;
1641 uint32_t _flags_save_string
= ndr
->flags
;
1642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1644 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1645 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1647 ndr
->flags
= _flags_save_string
;
1650 uint32_t _flags_save_string
= ndr
->flags
;
1651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1652 if (r
->parameters
) {
1653 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1654 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1656 ndr
->flags
= _flags_save_string
;
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1661 struct ndr_push
*_ndr_secdesc
;
1662 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1663 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1664 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1668 return NDR_ERR_SUCCESS
;
1671 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1673 uint32_t _ptr_servername
;
1674 TALLOC_CTX
*_mem_save_servername_0
;
1675 uint32_t _ptr_printername
;
1676 TALLOC_CTX
*_mem_save_printername_0
;
1677 uint32_t _ptr_sharename
;
1678 TALLOC_CTX
*_mem_save_sharename_0
;
1679 uint32_t _ptr_portname
;
1680 TALLOC_CTX
*_mem_save_portname_0
;
1681 uint32_t _ptr_drivername
;
1682 TALLOC_CTX
*_mem_save_drivername_0
;
1683 uint32_t _ptr_comment
;
1684 TALLOC_CTX
*_mem_save_comment_0
;
1685 uint32_t _ptr_location
;
1686 TALLOC_CTX
*_mem_save_location_0
;
1687 uint32_t _ptr_devmode
;
1688 TALLOC_CTX
*_mem_save_devmode_0
;
1689 uint32_t _ptr_sepfile
;
1690 TALLOC_CTX
*_mem_save_sepfile_0
;
1691 uint32_t _ptr_printprocessor
;
1692 TALLOC_CTX
*_mem_save_printprocessor_0
;
1693 uint32_t _ptr_datatype
;
1694 TALLOC_CTX
*_mem_save_datatype_0
;
1695 uint32_t _ptr_parameters
;
1696 TALLOC_CTX
*_mem_save_parameters_0
;
1697 uint32_t _ptr_secdesc
;
1698 TALLOC_CTX
*_mem_save_secdesc_0
;
1699 if (ndr_flags
& NDR_SCALARS
) {
1700 NDR_CHECK(ndr_pull_align(ndr
, 5));
1702 uint32_t _flags_save_string
= ndr
->flags
;
1703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1704 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1705 if (_ptr_servername
) {
1706 NDR_PULL_ALLOC(ndr
, r
->servername
);
1707 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1709 r
->servername
= NULL
;
1711 ndr
->flags
= _flags_save_string
;
1714 uint32_t _flags_save_string
= ndr
->flags
;
1715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1716 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1717 if (_ptr_printername
) {
1718 NDR_PULL_ALLOC(ndr
, r
->printername
);
1719 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1721 r
->printername
= NULL
;
1723 ndr
->flags
= _flags_save_string
;
1726 uint32_t _flags_save_string
= ndr
->flags
;
1727 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1728 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1729 if (_ptr_sharename
) {
1730 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1731 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1733 r
->sharename
= NULL
;
1735 ndr
->flags
= _flags_save_string
;
1738 uint32_t _flags_save_string
= ndr
->flags
;
1739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1740 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1741 if (_ptr_portname
) {
1742 NDR_PULL_ALLOC(ndr
, r
->portname
);
1743 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1747 ndr
->flags
= _flags_save_string
;
1750 uint32_t _flags_save_string
= ndr
->flags
;
1751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1752 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1753 if (_ptr_drivername
) {
1754 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1755 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1757 r
->drivername
= NULL
;
1759 ndr
->flags
= _flags_save_string
;
1762 uint32_t _flags_save_string
= ndr
->flags
;
1763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1766 NDR_PULL_ALLOC(ndr
, r
->comment
);
1767 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1771 ndr
->flags
= _flags_save_string
;
1774 uint32_t _flags_save_string
= ndr
->flags
;
1775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1777 if (_ptr_location
) {
1778 NDR_PULL_ALLOC(ndr
, r
->location
);
1779 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1783 ndr
->flags
= _flags_save_string
;
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1787 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1793 uint32_t _flags_save_string
= ndr
->flags
;
1794 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1797 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1798 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1802 ndr
->flags
= _flags_save_string
;
1805 uint32_t _flags_save_string
= ndr
->flags
;
1806 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1808 if (_ptr_printprocessor
) {
1809 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1810 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1812 r
->printprocessor
= NULL
;
1814 ndr
->flags
= _flags_save_string
;
1817 uint32_t _flags_save_string
= ndr
->flags
;
1818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1820 if (_ptr_datatype
) {
1821 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1822 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1826 ndr
->flags
= _flags_save_string
;
1829 uint32_t _flags_save_string
= ndr
->flags
;
1830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1832 if (_ptr_parameters
) {
1833 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1834 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1836 r
->parameters
= NULL
;
1838 ndr
->flags
= _flags_save_string
;
1840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1842 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1843 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1847 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1849 if (r
->priority
> 99) {
1850 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1852 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1855 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1858 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1860 if (ndr_flags
& NDR_BUFFERS
) {
1862 uint32_t _flags_save_string
= ndr
->flags
;
1863 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1864 if (r
->servername
) {
1865 uint32_t _relative_save_offset
;
1866 _relative_save_offset
= ndr
->offset
;
1867 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1868 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1869 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1870 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1872 ndr
->offset
= _relative_save_offset
;
1874 ndr
->flags
= _flags_save_string
;
1877 uint32_t _flags_save_string
= ndr
->flags
;
1878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1879 if (r
->printername
) {
1880 uint32_t _relative_save_offset
;
1881 _relative_save_offset
= ndr
->offset
;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1883 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1884 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1885 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1887 ndr
->offset
= _relative_save_offset
;
1889 ndr
->flags
= _flags_save_string
;
1892 uint32_t _flags_save_string
= ndr
->flags
;
1893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1895 uint32_t _relative_save_offset
;
1896 _relative_save_offset
= ndr
->offset
;
1897 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1898 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1899 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1900 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1902 ndr
->offset
= _relative_save_offset
;
1904 ndr
->flags
= _flags_save_string
;
1907 uint32_t _flags_save_string
= ndr
->flags
;
1908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1910 uint32_t _relative_save_offset
;
1911 _relative_save_offset
= ndr
->offset
;
1912 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1913 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1914 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1915 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1917 ndr
->offset
= _relative_save_offset
;
1919 ndr
->flags
= _flags_save_string
;
1922 uint32_t _flags_save_string
= ndr
->flags
;
1923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1924 if (r
->drivername
) {
1925 uint32_t _relative_save_offset
;
1926 _relative_save_offset
= ndr
->offset
;
1927 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1928 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1929 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1930 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1932 ndr
->offset
= _relative_save_offset
;
1934 ndr
->flags
= _flags_save_string
;
1937 uint32_t _flags_save_string
= ndr
->flags
;
1938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1940 uint32_t _relative_save_offset
;
1941 _relative_save_offset
= ndr
->offset
;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1943 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1944 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1945 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1947 ndr
->offset
= _relative_save_offset
;
1949 ndr
->flags
= _flags_save_string
;
1952 uint32_t _flags_save_string
= ndr
->flags
;
1953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1955 uint32_t _relative_save_offset
;
1956 _relative_save_offset
= ndr
->offset
;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1958 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1959 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1960 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1962 ndr
->offset
= _relative_save_offset
;
1964 ndr
->flags
= _flags_save_string
;
1967 uint32_t _relative_save_offset
;
1968 _relative_save_offset
= ndr
->offset
;
1969 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1970 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1971 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1973 struct ndr_pull
*_ndr_devmode
;
1974 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1975 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1976 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1978 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1979 ndr
->offset
= _relative_save_offset
;
1982 uint32_t _flags_save_string
= ndr
->flags
;
1983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1985 uint32_t _relative_save_offset
;
1986 _relative_save_offset
= ndr
->offset
;
1987 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1988 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1989 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1990 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1992 ndr
->offset
= _relative_save_offset
;
1994 ndr
->flags
= _flags_save_string
;
1997 uint32_t _flags_save_string
= ndr
->flags
;
1998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1999 if (r
->printprocessor
) {
2000 uint32_t _relative_save_offset
;
2001 _relative_save_offset
= ndr
->offset
;
2002 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
2003 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2004 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
2005 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
2006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
2007 ndr
->offset
= _relative_save_offset
;
2009 ndr
->flags
= _flags_save_string
;
2012 uint32_t _flags_save_string
= ndr
->flags
;
2013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2015 uint32_t _relative_save_offset
;
2016 _relative_save_offset
= ndr
->offset
;
2017 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
2018 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2019 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
2020 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
2021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
2022 ndr
->offset
= _relative_save_offset
;
2024 ndr
->flags
= _flags_save_string
;
2027 uint32_t _flags_save_string
= ndr
->flags
;
2028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2029 if (r
->parameters
) {
2030 uint32_t _relative_save_offset
;
2031 _relative_save_offset
= ndr
->offset
;
2032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
2033 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2034 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
2035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
2036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
2037 ndr
->offset
= _relative_save_offset
;
2039 ndr
->flags
= _flags_save_string
;
2042 uint32_t _relative_save_offset
;
2043 _relative_save_offset
= ndr
->offset
;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2045 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2046 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2048 struct ndr_pull
*_ndr_secdesc
;
2049 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2050 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2051 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2054 ndr
->offset
= _relative_save_offset
;
2057 return NDR_ERR_SUCCESS
;
2060 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
2062 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
2064 ndr_print_ptr(ndr
, "servername", r
->servername
);
2066 if (r
->servername
) {
2067 ndr_print_string(ndr
, "servername", r
->servername
);
2070 ndr_print_ptr(ndr
, "printername", r
->printername
);
2072 if (r
->printername
) {
2073 ndr_print_string(ndr
, "printername", r
->printername
);
2076 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
2079 ndr_print_string(ndr
, "sharename", r
->sharename
);
2082 ndr_print_ptr(ndr
, "portname", r
->portname
);
2085 ndr_print_string(ndr
, "portname", r
->portname
);
2088 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
2090 if (r
->drivername
) {
2091 ndr_print_string(ndr
, "drivername", r
->drivername
);
2094 ndr_print_ptr(ndr
, "comment", r
->comment
);
2097 ndr_print_string(ndr
, "comment", r
->comment
);
2100 ndr_print_ptr(ndr
, "location", r
->location
);
2103 ndr_print_string(ndr
, "location", r
->location
);
2106 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2109 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2112 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
2115 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
2118 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
2120 if (r
->printprocessor
) {
2121 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
2124 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
2127 ndr_print_string(ndr
, "datatype", r
->datatype
);
2130 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
2132 if (r
->parameters
) {
2133 ndr_print_string(ndr
, "parameters", r
->parameters
);
2136 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2139 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2142 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2143 ndr_print_uint32(ndr
, "priority", r
->priority
);
2144 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
2145 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
2146 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
2147 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2148 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
2149 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
2153 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2155 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
2158 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
2160 if (ndr_flags
& NDR_SCALARS
) {
2161 NDR_CHECK(ndr_push_align(ndr
, 5));
2162 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2163 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2165 if (ndr_flags
& NDR_BUFFERS
) {
2167 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
2169 struct ndr_push
*_ndr_secdesc
;
2170 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2172 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2176 return NDR_ERR_SUCCESS
;
2179 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
2181 uint32_t _ptr_secdesc
;
2182 TALLOC_CTX
*_mem_save_secdesc_0
;
2183 if (ndr_flags
& NDR_SCALARS
) {
2184 NDR_CHECK(ndr_pull_align(ndr
, 5));
2185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
2187 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
2188 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
2192 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2194 if (ndr_flags
& NDR_BUFFERS
) {
2196 uint32_t _relative_save_offset
;
2197 _relative_save_offset
= ndr
->offset
;
2198 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2199 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2200 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2202 struct ndr_pull
*_ndr_secdesc
;
2203 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2204 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2205 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2208 ndr
->offset
= _relative_save_offset
;
2211 return NDR_ERR_SUCCESS
;
2214 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
2216 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
2218 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2221 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2227 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2229 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
2232 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
2234 if (ndr_flags
& NDR_SCALARS
) {
2235 NDR_CHECK(ndr_push_align(ndr
, 5));
2237 uint32_t _flags_save_string
= ndr
->flags
;
2238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2239 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2240 ndr
->flags
= _flags_save_string
;
2243 uint32_t _flags_save_string
= ndr
->flags
;
2244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2245 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
2246 ndr
->flags
= _flags_save_string
;
2248 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2249 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2251 if (ndr_flags
& NDR_BUFFERS
) {
2253 uint32_t _flags_save_string
= ndr
->flags
;
2254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2255 if (r
->printername
) {
2256 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
2257 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2259 ndr
->flags
= _flags_save_string
;
2262 uint32_t _flags_save_string
= ndr
->flags
;
2263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2264 if (r
->servername
) {
2265 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
2266 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
2268 ndr
->flags
= _flags_save_string
;
2271 return NDR_ERR_SUCCESS
;
2274 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
2276 uint32_t _ptr_printername
;
2277 TALLOC_CTX
*_mem_save_printername_0
;
2278 uint32_t _ptr_servername
;
2279 TALLOC_CTX
*_mem_save_servername_0
;
2280 if (ndr_flags
& NDR_SCALARS
) {
2281 NDR_CHECK(ndr_pull_align(ndr
, 5));
2283 uint32_t _flags_save_string
= ndr
->flags
;
2284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2286 if (_ptr_printername
) {
2287 NDR_PULL_ALLOC(ndr
, r
->printername
);
2288 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2290 r
->printername
= NULL
;
2292 ndr
->flags
= _flags_save_string
;
2295 uint32_t _flags_save_string
= ndr
->flags
;
2296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
2298 if (_ptr_servername
) {
2299 NDR_PULL_ALLOC(ndr
, r
->servername
);
2300 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
2302 r
->servername
= NULL
;
2304 ndr
->flags
= _flags_save_string
;
2306 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2307 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2309 if (ndr_flags
& NDR_BUFFERS
) {
2311 uint32_t _flags_save_string
= ndr
->flags
;
2312 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2313 if (r
->printername
) {
2314 uint32_t _relative_save_offset
;
2315 _relative_save_offset
= ndr
->offset
;
2316 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2317 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2318 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2319 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2321 ndr
->offset
= _relative_save_offset
;
2323 ndr
->flags
= _flags_save_string
;
2326 uint32_t _flags_save_string
= ndr
->flags
;
2327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2328 if (r
->servername
) {
2329 uint32_t _relative_save_offset
;
2330 _relative_save_offset
= ndr
->offset
;
2331 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2332 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2333 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2334 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2336 ndr
->offset
= _relative_save_offset
;
2338 ndr
->flags
= _flags_save_string
;
2341 return NDR_ERR_SUCCESS
;
2344 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
2346 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
2348 ndr_print_ptr(ndr
, "printername", r
->printername
);
2350 if (r
->printername
) {
2351 ndr_print_string(ndr
, "printername", r
->printername
);
2354 ndr_print_ptr(ndr
, "servername", r
->servername
);
2356 if (r
->servername
) {
2357 ndr_print_string(ndr
, "servername", r
->servername
);
2360 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2364 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2366 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
2369 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
2371 if (ndr_flags
& NDR_SCALARS
) {
2372 NDR_CHECK(ndr_push_align(ndr
, 5));
2374 uint32_t _flags_save_string
= ndr
->flags
;
2375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2376 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2377 ndr
->flags
= _flags_save_string
;
2380 uint32_t _flags_save_string
= ndr
->flags
;
2381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2382 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
2383 ndr
->flags
= _flags_save_string
;
2385 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
2387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
2388 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2390 if (ndr_flags
& NDR_BUFFERS
) {
2392 uint32_t _flags_save_string
= ndr
->flags
;
2393 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2394 if (r
->printername
) {
2395 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
2396 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2398 ndr
->flags
= _flags_save_string
;
2401 uint32_t _flags_save_string
= ndr
->flags
;
2402 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2404 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
2405 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
2407 ndr
->flags
= _flags_save_string
;
2410 return NDR_ERR_SUCCESS
;
2413 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
2415 uint32_t _ptr_printername
;
2416 TALLOC_CTX
*_mem_save_printername_0
;
2417 uint32_t _ptr_portname
;
2418 TALLOC_CTX
*_mem_save_portname_0
;
2419 if (ndr_flags
& NDR_SCALARS
) {
2420 NDR_CHECK(ndr_pull_align(ndr
, 5));
2422 uint32_t _flags_save_string
= ndr
->flags
;
2423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2425 if (_ptr_printername
) {
2426 NDR_PULL_ALLOC(ndr
, r
->printername
);
2427 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2429 r
->printername
= NULL
;
2431 ndr
->flags
= _flags_save_string
;
2434 uint32_t _flags_save_string
= ndr
->flags
;
2435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
2437 if (_ptr_portname
) {
2438 NDR_PULL_ALLOC(ndr
, r
->portname
);
2439 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
2443 ndr
->flags
= _flags_save_string
;
2445 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
2447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
2448 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2450 if (ndr_flags
& NDR_BUFFERS
) {
2452 uint32_t _flags_save_string
= ndr
->flags
;
2453 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2454 if (r
->printername
) {
2455 uint32_t _relative_save_offset
;
2456 _relative_save_offset
= ndr
->offset
;
2457 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2458 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2459 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2460 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2462 ndr
->offset
= _relative_save_offset
;
2464 ndr
->flags
= _flags_save_string
;
2467 uint32_t _flags_save_string
= ndr
->flags
;
2468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2470 uint32_t _relative_save_offset
;
2471 _relative_save_offset
= ndr
->offset
;
2472 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2473 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2474 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2475 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2476 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2477 ndr
->offset
= _relative_save_offset
;
2479 ndr
->flags
= _flags_save_string
;
2482 return NDR_ERR_SUCCESS
;
2485 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2487 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2489 ndr_print_ptr(ndr
, "printername", r
->printername
);
2491 if (r
->printername
) {
2492 ndr_print_string(ndr
, "printername", r
->printername
);
2495 ndr_print_ptr(ndr
, "portname", r
->portname
);
2498 ndr_print_string(ndr
, "portname", r
->portname
);
2501 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2502 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2503 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2507 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2509 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2512 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2514 if (ndr_flags
& NDR_SCALARS
) {
2515 NDR_CHECK(ndr_push_align(ndr
, 4));
2516 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2517 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2519 if (ndr_flags
& NDR_BUFFERS
) {
2521 return NDR_ERR_SUCCESS
;
2524 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2526 if (ndr_flags
& NDR_SCALARS
) {
2527 NDR_CHECK(ndr_pull_align(ndr
, 4));
2528 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2529 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2531 if (ndr_flags
& NDR_BUFFERS
) {
2533 return NDR_ERR_SUCCESS
;
2536 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2538 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2540 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2544 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2546 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2549 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2552 return NDR_ERR_SUCCESS
;
2555 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2560 return NDR_ERR_SUCCESS
;
2563 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2565 ndr_print_uint32(ndr
, name
, r
);
2567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2568 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2569 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2575 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2577 if (ndr_flags
& NDR_SCALARS
) {
2578 NDR_CHECK(ndr_push_align(ndr
, 5));
2580 uint32_t _flags_save_string
= ndr
->flags
;
2581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2582 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2583 ndr
->flags
= _flags_save_string
;
2585 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2586 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2588 if (ndr_flags
& NDR_BUFFERS
) {
2590 uint32_t _flags_save_string
= ndr
->flags
;
2591 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2593 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2594 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2596 ndr
->flags
= _flags_save_string
;
2599 return NDR_ERR_SUCCESS
;
2602 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2605 TALLOC_CTX
*_mem_save_guid_0
;
2606 if (ndr_flags
& NDR_SCALARS
) {
2607 NDR_CHECK(ndr_pull_align(ndr
, 5));
2609 uint32_t _flags_save_string
= ndr
->flags
;
2610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2613 NDR_PULL_ALLOC(ndr
, r
->guid
);
2614 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2618 ndr
->flags
= _flags_save_string
;
2620 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2621 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2623 if (ndr_flags
& NDR_BUFFERS
) {
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2628 uint32_t _relative_save_offset
;
2629 _relative_save_offset
= ndr
->offset
;
2630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2631 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2632 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2633 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2635 ndr
->offset
= _relative_save_offset
;
2637 ndr
->flags
= _flags_save_string
;
2640 return NDR_ERR_SUCCESS
;
2643 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2645 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2647 ndr_print_ptr(ndr
, "guid", r
->guid
);
2650 ndr_print_string(ndr
, "guid", r
->guid
);
2653 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2657 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2659 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2662 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2664 if (ndr_flags
& NDR_SCALARS
) {
2665 NDR_CHECK(ndr_push_align(ndr
, 5));
2666 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2667 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2669 if (ndr_flags
& NDR_BUFFERS
) {
2671 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2673 struct ndr_push
*_ndr_devmode
;
2674 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2675 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2676 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2680 return NDR_ERR_SUCCESS
;
2683 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2685 uint32_t _ptr_devmode
;
2686 TALLOC_CTX
*_mem_save_devmode_0
;
2687 if (ndr_flags
& NDR_SCALARS
) {
2688 NDR_CHECK(ndr_pull_align(ndr
, 5));
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2691 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2692 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2696 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2698 if (ndr_flags
& NDR_BUFFERS
) {
2700 uint32_t _relative_save_offset
;
2701 _relative_save_offset
= ndr
->offset
;
2702 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2703 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2704 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2706 struct ndr_pull
*_ndr_devmode
;
2707 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2708 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2709 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2712 ndr
->offset
= _relative_save_offset
;
2715 return NDR_ERR_SUCCESS
;
2718 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2720 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2722 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2725 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2731 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2733 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2734 if (ndr_flags
& NDR_SCALARS
) {
2735 int level
= ndr_push_get_switch_value(ndr
, r
);
2736 NDR_CHECK(ndr_push_union_align(ndr
, 5));
2739 NDR_CHECK(ndr_push_align(ndr
, 5));
2740 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2741 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2745 NDR_CHECK(ndr_push_align(ndr
, 5));
2746 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2747 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2751 NDR_CHECK(ndr_push_align(ndr
, 5));
2752 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2753 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2757 NDR_CHECK(ndr_push_align(ndr
, 5));
2758 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2759 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2763 NDR_CHECK(ndr_push_align(ndr
, 5));
2764 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2765 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2769 NDR_CHECK(ndr_push_align(ndr
, 5));
2770 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2771 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2775 NDR_CHECK(ndr_push_align(ndr
, 4));
2776 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2777 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2781 NDR_CHECK(ndr_push_align(ndr
, 5));
2782 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2783 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2787 NDR_CHECK(ndr_push_align(ndr
, 5));
2788 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2789 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2793 NDR_CHECK(ndr_push_align(ndr
, 5));
2794 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2795 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2803 if (ndr_flags
& NDR_BUFFERS
) {
2804 int level
= ndr_push_get_switch_value(ndr
, r
);
2805 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2808 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2812 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2820 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2824 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2835 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2839 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2843 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2851 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2852 return NDR_ERR_SUCCESS
;
2855 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2857 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2859 level
= ndr_pull_get_switch_value(ndr
, r
);
2860 if (ndr_flags
& NDR_SCALARS
) {
2861 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
2864 NDR_CHECK(ndr_pull_align(ndr
, 5));
2865 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2866 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2870 NDR_CHECK(ndr_pull_align(ndr
, 5));
2871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2872 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2876 NDR_CHECK(ndr_pull_align(ndr
, 5));
2877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2878 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2882 NDR_CHECK(ndr_pull_align(ndr
, 5));
2883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2884 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2888 NDR_CHECK(ndr_pull_align(ndr
, 5));
2889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2890 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2894 NDR_CHECK(ndr_pull_align(ndr
, 5));
2895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2896 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2900 NDR_CHECK(ndr_pull_align(ndr
, 4));
2901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2902 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2906 NDR_CHECK(ndr_pull_align(ndr
, 5));
2907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2908 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2912 NDR_CHECK(ndr_pull_align(ndr
, 5));
2913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2914 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2918 NDR_CHECK(ndr_pull_align(ndr
, 5));
2919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2920 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2928 if (ndr_flags
& NDR_BUFFERS
) {
2929 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2932 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2936 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2940 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2944 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2948 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2952 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2963 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2967 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2975 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2976 return NDR_ERR_SUCCESS
;
2979 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2982 level
= ndr_print_get_switch_value(ndr
, r
);
2983 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2986 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2990 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2994 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2998 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
3002 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
3006 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
3010 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
3014 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
3018 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
3022 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
3031 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
3033 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
3036 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
3038 if (ndr_flags
& NDR_SCALARS
) {
3039 NDR_CHECK(ndr_push_align(ndr
, 5));
3040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
3042 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3044 if (ndr_flags
& NDR_BUFFERS
) {
3047 struct ndr_push
*_ndr_devmode
;
3048 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3049 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3050 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3054 return NDR_ERR_SUCCESS
;
3057 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
3059 uint32_t _ptr_devmode
;
3060 TALLOC_CTX
*_mem_save_devmode_0
;
3061 if (ndr_flags
& NDR_SCALARS
) {
3062 NDR_CHECK(ndr_pull_align(ndr
, 5));
3063 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
3064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3066 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3070 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3072 if (ndr_flags
& NDR_BUFFERS
) {
3074 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3075 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3077 struct ndr_pull
*_ndr_devmode
;
3078 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
3079 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3080 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
3082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3085 return NDR_ERR_SUCCESS
;
3088 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
3090 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
3092 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
);
3093 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3096 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3102 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
3104 if (ndr_flags
& NDR_SCALARS
) {
3105 NDR_CHECK(ndr_push_align(ndr
, 5));
3106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3108 uint32_t _flags_save_string
= ndr
->flags
;
3109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3110 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3111 ndr
->flags
= _flags_save_string
;
3114 uint32_t _flags_save_string
= ndr
->flags
;
3115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3116 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3117 ndr
->flags
= _flags_save_string
;
3120 uint32_t _flags_save_string
= ndr
->flags
;
3121 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3122 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3123 ndr
->flags
= _flags_save_string
;
3126 uint32_t _flags_save_string
= ndr
->flags
;
3127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3128 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3129 ndr
->flags
= _flags_save_string
;
3132 uint32_t _flags_save_string
= ndr
->flags
;
3133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3134 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3135 ndr
->flags
= _flags_save_string
;
3138 uint32_t _flags_save_string
= ndr
->flags
;
3139 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3140 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3141 ndr
->flags
= _flags_save_string
;
3143 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3148 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3149 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3151 if (ndr_flags
& NDR_BUFFERS
) {
3153 uint32_t _flags_save_string
= ndr
->flags
;
3154 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3155 if (r
->printer_name
) {
3156 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3157 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3159 ndr
->flags
= _flags_save_string
;
3162 uint32_t _flags_save_string
= ndr
->flags
;
3163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3164 if (r
->server_name
) {
3165 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3166 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3168 ndr
->flags
= _flags_save_string
;
3171 uint32_t _flags_save_string
= ndr
->flags
;
3172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3174 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3175 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3177 ndr
->flags
= _flags_save_string
;
3180 uint32_t _flags_save_string
= ndr
->flags
;
3181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3182 if (r
->document_name
) {
3183 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3184 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3186 ndr
->flags
= _flags_save_string
;
3189 uint32_t _flags_save_string
= ndr
->flags
;
3190 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3192 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3193 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3195 ndr
->flags
= _flags_save_string
;
3198 uint32_t _flags_save_string
= ndr
->flags
;
3199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3200 if (r
->text_status
) {
3201 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3202 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3204 ndr
->flags
= _flags_save_string
;
3207 return NDR_ERR_SUCCESS
;
3210 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
3212 uint32_t _ptr_printer_name
;
3213 TALLOC_CTX
*_mem_save_printer_name_0
;
3214 uint32_t _ptr_server_name
;
3215 TALLOC_CTX
*_mem_save_server_name_0
;
3216 uint32_t _ptr_user_name
;
3217 TALLOC_CTX
*_mem_save_user_name_0
;
3218 uint32_t _ptr_document_name
;
3219 TALLOC_CTX
*_mem_save_document_name_0
;
3220 uint32_t _ptr_data_type
;
3221 TALLOC_CTX
*_mem_save_data_type_0
;
3222 uint32_t _ptr_text_status
;
3223 TALLOC_CTX
*_mem_save_text_status_0
;
3224 if (ndr_flags
& NDR_SCALARS
) {
3225 NDR_CHECK(ndr_pull_align(ndr
, 5));
3226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3228 uint32_t _flags_save_string
= ndr
->flags
;
3229 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3231 if (_ptr_printer_name
) {
3232 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3233 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3235 r
->printer_name
= NULL
;
3237 ndr
->flags
= _flags_save_string
;
3240 uint32_t _flags_save_string
= ndr
->flags
;
3241 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3243 if (_ptr_server_name
) {
3244 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3247 r
->server_name
= NULL
;
3249 ndr
->flags
= _flags_save_string
;
3252 uint32_t _flags_save_string
= ndr
->flags
;
3253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3255 if (_ptr_user_name
) {
3256 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3257 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3259 r
->user_name
= NULL
;
3261 ndr
->flags
= _flags_save_string
;
3264 uint32_t _flags_save_string
= ndr
->flags
;
3265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3267 if (_ptr_document_name
) {
3268 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3269 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3271 r
->document_name
= NULL
;
3273 ndr
->flags
= _flags_save_string
;
3276 uint32_t _flags_save_string
= ndr
->flags
;
3277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3279 if (_ptr_data_type
) {
3280 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3281 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3283 r
->data_type
= NULL
;
3285 ndr
->flags
= _flags_save_string
;
3288 uint32_t _flags_save_string
= ndr
->flags
;
3289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3291 if (_ptr_text_status
) {
3292 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3293 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3295 r
->text_status
= NULL
;
3297 ndr
->flags
= _flags_save_string
;
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3301 if (r
->priority
> 99) {
3302 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3307 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3308 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3310 if (ndr_flags
& NDR_BUFFERS
) {
3312 uint32_t _flags_save_string
= ndr
->flags
;
3313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3314 if (r
->printer_name
) {
3315 uint32_t _relative_save_offset
;
3316 _relative_save_offset
= ndr
->offset
;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3318 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3319 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3320 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3322 ndr
->offset
= _relative_save_offset
;
3324 ndr
->flags
= _flags_save_string
;
3327 uint32_t _flags_save_string
= ndr
->flags
;
3328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3329 if (r
->server_name
) {
3330 uint32_t _relative_save_offset
;
3331 _relative_save_offset
= ndr
->offset
;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3333 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3334 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3337 ndr
->offset
= _relative_save_offset
;
3339 ndr
->flags
= _flags_save_string
;
3342 uint32_t _flags_save_string
= ndr
->flags
;
3343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3345 uint32_t _relative_save_offset
;
3346 _relative_save_offset
= ndr
->offset
;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3348 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3349 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3352 ndr
->offset
= _relative_save_offset
;
3354 ndr
->flags
= _flags_save_string
;
3357 uint32_t _flags_save_string
= ndr
->flags
;
3358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3359 if (r
->document_name
) {
3360 uint32_t _relative_save_offset
;
3361 _relative_save_offset
= ndr
->offset
;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3363 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3364 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3365 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3367 ndr
->offset
= _relative_save_offset
;
3369 ndr
->flags
= _flags_save_string
;
3372 uint32_t _flags_save_string
= ndr
->flags
;
3373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3375 uint32_t _relative_save_offset
;
3376 _relative_save_offset
= ndr
->offset
;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3378 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3379 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3380 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3382 ndr
->offset
= _relative_save_offset
;
3384 ndr
->flags
= _flags_save_string
;
3387 uint32_t _flags_save_string
= ndr
->flags
;
3388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3389 if (r
->text_status
) {
3390 uint32_t _relative_save_offset
;
3391 _relative_save_offset
= ndr
->offset
;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3393 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3394 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3395 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3397 ndr
->offset
= _relative_save_offset
;
3399 ndr
->flags
= _flags_save_string
;
3402 return NDR_ERR_SUCCESS
;
3405 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
3407 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
3409 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3410 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3412 if (r
->printer_name
) {
3413 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3416 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3418 if (r
->server_name
) {
3419 ndr_print_string(ndr
, "server_name", r
->server_name
);
3422 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3425 ndr_print_string(ndr
, "user_name", r
->user_name
);
3428 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3430 if (r
->document_name
) {
3431 ndr_print_string(ndr
, "document_name", r
->document_name
);
3434 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3437 ndr_print_string(ndr
, "data_type", r
->data_type
);
3440 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3442 if (r
->text_status
) {
3443 ndr_print_string(ndr
, "text_status", r
->text_status
);
3446 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3447 ndr_print_uint32(ndr
, "priority", r
->priority
);
3448 ndr_print_uint32(ndr
, "position", r
->position
);
3449 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3450 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3451 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3455 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3457 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
3460 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
3462 if (ndr_flags
& NDR_SCALARS
) {
3463 NDR_CHECK(ndr_push_align(ndr
, 5));
3464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3466 uint32_t _flags_save_string
= ndr
->flags
;
3467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3468 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3469 ndr
->flags
= _flags_save_string
;
3472 uint32_t _flags_save_string
= ndr
->flags
;
3473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3475 ndr
->flags
= _flags_save_string
;
3478 uint32_t _flags_save_string
= ndr
->flags
;
3479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3480 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3481 ndr
->flags
= _flags_save_string
;
3484 uint32_t _flags_save_string
= ndr
->flags
;
3485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3486 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3487 ndr
->flags
= _flags_save_string
;
3490 uint32_t _flags_save_string
= ndr
->flags
;
3491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3493 ndr
->flags
= _flags_save_string
;
3496 uint32_t _flags_save_string
= ndr
->flags
;
3497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3499 ndr
->flags
= _flags_save_string
;
3502 uint32_t _flags_save_string
= ndr
->flags
;
3503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3504 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3505 ndr
->flags
= _flags_save_string
;
3508 uint32_t _flags_save_string
= ndr
->flags
;
3509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3511 ndr
->flags
= _flags_save_string
;
3514 uint32_t _flags_save_string
= ndr
->flags
;
3515 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3516 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3517 ndr
->flags
= _flags_save_string
;
3519 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3521 uint32_t _flags_save_string
= ndr
->flags
;
3522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3524 ndr
->flags
= _flags_save_string
;
3526 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3527 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3534 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3537 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3539 if (ndr_flags
& NDR_BUFFERS
) {
3541 uint32_t _flags_save_string
= ndr
->flags
;
3542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3543 if (r
->printer_name
) {
3544 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3545 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3547 ndr
->flags
= _flags_save_string
;
3550 uint32_t _flags_save_string
= ndr
->flags
;
3551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3552 if (r
->server_name
) {
3553 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3554 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3556 ndr
->flags
= _flags_save_string
;
3559 uint32_t _flags_save_string
= ndr
->flags
;
3560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3562 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3563 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3565 ndr
->flags
= _flags_save_string
;
3568 uint32_t _flags_save_string
= ndr
->flags
;
3569 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3570 if (r
->document_name
) {
3571 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3572 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3574 ndr
->flags
= _flags_save_string
;
3577 uint32_t _flags_save_string
= ndr
->flags
;
3578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3579 if (r
->notify_name
) {
3580 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3581 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3583 ndr
->flags
= _flags_save_string
;
3586 uint32_t _flags_save_string
= ndr
->flags
;
3587 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3589 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3590 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3592 ndr
->flags
= _flags_save_string
;
3595 uint32_t _flags_save_string
= ndr
->flags
;
3596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3597 if (r
->print_processor
) {
3598 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3599 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3601 ndr
->flags
= _flags_save_string
;
3604 uint32_t _flags_save_string
= ndr
->flags
;
3605 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3606 if (r
->parameters
) {
3607 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3608 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3610 ndr
->flags
= _flags_save_string
;
3613 uint32_t _flags_save_string
= ndr
->flags
;
3614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3615 if (r
->driver_name
) {
3616 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3617 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3619 ndr
->flags
= _flags_save_string
;
3622 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3623 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3626 uint32_t _flags_save_string
= ndr
->flags
;
3627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3628 if (r
->text_status
) {
3629 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3630 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3632 ndr
->flags
= _flags_save_string
;
3635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3636 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3639 return NDR_ERR_SUCCESS
;
3642 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3644 uint32_t _ptr_printer_name
;
3645 TALLOC_CTX
*_mem_save_printer_name_0
;
3646 uint32_t _ptr_server_name
;
3647 TALLOC_CTX
*_mem_save_server_name_0
;
3648 uint32_t _ptr_user_name
;
3649 TALLOC_CTX
*_mem_save_user_name_0
;
3650 uint32_t _ptr_document_name
;
3651 TALLOC_CTX
*_mem_save_document_name_0
;
3652 uint32_t _ptr_notify_name
;
3653 TALLOC_CTX
*_mem_save_notify_name_0
;
3654 uint32_t _ptr_data_type
;
3655 TALLOC_CTX
*_mem_save_data_type_0
;
3656 uint32_t _ptr_print_processor
;
3657 TALLOC_CTX
*_mem_save_print_processor_0
;
3658 uint32_t _ptr_parameters
;
3659 TALLOC_CTX
*_mem_save_parameters_0
;
3660 uint32_t _ptr_driver_name
;
3661 TALLOC_CTX
*_mem_save_driver_name_0
;
3662 uint32_t _ptr_devmode
;
3663 TALLOC_CTX
*_mem_save_devmode_0
;
3664 uint32_t _ptr_text_status
;
3665 TALLOC_CTX
*_mem_save_text_status_0
;
3666 uint32_t _ptr_secdesc
;
3667 TALLOC_CTX
*_mem_save_secdesc_0
;
3668 if (ndr_flags
& NDR_SCALARS
) {
3669 NDR_CHECK(ndr_pull_align(ndr
, 5));
3670 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3672 uint32_t _flags_save_string
= ndr
->flags
;
3673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3674 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3675 if (_ptr_printer_name
) {
3676 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3677 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3679 r
->printer_name
= NULL
;
3681 ndr
->flags
= _flags_save_string
;
3684 uint32_t _flags_save_string
= ndr
->flags
;
3685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3687 if (_ptr_server_name
) {
3688 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3689 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3691 r
->server_name
= NULL
;
3693 ndr
->flags
= _flags_save_string
;
3696 uint32_t _flags_save_string
= ndr
->flags
;
3697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3699 if (_ptr_user_name
) {
3700 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3701 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3703 r
->user_name
= NULL
;
3705 ndr
->flags
= _flags_save_string
;
3708 uint32_t _flags_save_string
= ndr
->flags
;
3709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3710 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3711 if (_ptr_document_name
) {
3712 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3713 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3715 r
->document_name
= NULL
;
3717 ndr
->flags
= _flags_save_string
;
3720 uint32_t _flags_save_string
= ndr
->flags
;
3721 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3722 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3723 if (_ptr_notify_name
) {
3724 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3725 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3727 r
->notify_name
= NULL
;
3729 ndr
->flags
= _flags_save_string
;
3732 uint32_t _flags_save_string
= ndr
->flags
;
3733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3734 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3735 if (_ptr_data_type
) {
3736 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3737 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3739 r
->data_type
= NULL
;
3741 ndr
->flags
= _flags_save_string
;
3744 uint32_t _flags_save_string
= ndr
->flags
;
3745 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3747 if (_ptr_print_processor
) {
3748 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3749 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3751 r
->print_processor
= NULL
;
3753 ndr
->flags
= _flags_save_string
;
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3759 if (_ptr_parameters
) {
3760 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3761 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3763 r
->parameters
= NULL
;
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_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3771 if (_ptr_driver_name
) {
3772 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3773 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3775 r
->driver_name
= NULL
;
3777 ndr
->flags
= _flags_save_string
;
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3781 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3787 uint32_t _flags_save_string
= ndr
->flags
;
3788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3790 if (_ptr_text_status
) {
3791 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3792 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3794 r
->text_status
= NULL
;
3796 ndr
->flags
= _flags_save_string
;
3798 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3800 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3801 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3805 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3807 if (r
->priority
> 99) {
3808 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3815 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3818 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3820 if (ndr_flags
& NDR_BUFFERS
) {
3822 uint32_t _flags_save_string
= ndr
->flags
;
3823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3824 if (r
->printer_name
) {
3825 uint32_t _relative_save_offset
;
3826 _relative_save_offset
= ndr
->offset
;
3827 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3828 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3829 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3830 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3832 ndr
->offset
= _relative_save_offset
;
3834 ndr
->flags
= _flags_save_string
;
3837 uint32_t _flags_save_string
= ndr
->flags
;
3838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3839 if (r
->server_name
) {
3840 uint32_t _relative_save_offset
;
3841 _relative_save_offset
= ndr
->offset
;
3842 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3843 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3844 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3845 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3847 ndr
->offset
= _relative_save_offset
;
3849 ndr
->flags
= _flags_save_string
;
3852 uint32_t _flags_save_string
= ndr
->flags
;
3853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3855 uint32_t _relative_save_offset
;
3856 _relative_save_offset
= ndr
->offset
;
3857 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3858 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3859 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3860 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3862 ndr
->offset
= _relative_save_offset
;
3864 ndr
->flags
= _flags_save_string
;
3867 uint32_t _flags_save_string
= ndr
->flags
;
3868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3869 if (r
->document_name
) {
3870 uint32_t _relative_save_offset
;
3871 _relative_save_offset
= ndr
->offset
;
3872 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3873 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3874 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3875 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3877 ndr
->offset
= _relative_save_offset
;
3879 ndr
->flags
= _flags_save_string
;
3882 uint32_t _flags_save_string
= ndr
->flags
;
3883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3884 if (r
->notify_name
) {
3885 uint32_t _relative_save_offset
;
3886 _relative_save_offset
= ndr
->offset
;
3887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3888 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3889 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3892 ndr
->offset
= _relative_save_offset
;
3894 ndr
->flags
= _flags_save_string
;
3897 uint32_t _flags_save_string
= ndr
->flags
;
3898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3900 uint32_t _relative_save_offset
;
3901 _relative_save_offset
= ndr
->offset
;
3902 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3903 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3904 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3905 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3907 ndr
->offset
= _relative_save_offset
;
3909 ndr
->flags
= _flags_save_string
;
3912 uint32_t _flags_save_string
= ndr
->flags
;
3913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3914 if (r
->print_processor
) {
3915 uint32_t _relative_save_offset
;
3916 _relative_save_offset
= ndr
->offset
;
3917 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3918 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3919 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3920 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3922 ndr
->offset
= _relative_save_offset
;
3924 ndr
->flags
= _flags_save_string
;
3927 uint32_t _flags_save_string
= ndr
->flags
;
3928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3929 if (r
->parameters
) {
3930 uint32_t _relative_save_offset
;
3931 _relative_save_offset
= ndr
->offset
;
3932 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3933 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3934 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3935 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3937 ndr
->offset
= _relative_save_offset
;
3939 ndr
->flags
= _flags_save_string
;
3942 uint32_t _flags_save_string
= ndr
->flags
;
3943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3944 if (r
->driver_name
) {
3945 uint32_t _relative_save_offset
;
3946 _relative_save_offset
= ndr
->offset
;
3947 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3948 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3949 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3950 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3952 ndr
->offset
= _relative_save_offset
;
3954 ndr
->flags
= _flags_save_string
;
3957 uint32_t _relative_save_offset
;
3958 _relative_save_offset
= ndr
->offset
;
3959 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3960 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3961 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3962 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3964 ndr
->offset
= _relative_save_offset
;
3967 uint32_t _flags_save_string
= ndr
->flags
;
3968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3969 if (r
->text_status
) {
3970 uint32_t _relative_save_offset
;
3971 _relative_save_offset
= ndr
->offset
;
3972 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3973 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3974 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3975 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3977 ndr
->offset
= _relative_save_offset
;
3979 ndr
->flags
= _flags_save_string
;
3982 uint32_t _relative_save_offset
;
3983 _relative_save_offset
= ndr
->offset
;
3984 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3985 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3986 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3987 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3988 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3989 ndr
->offset
= _relative_save_offset
;
3992 return NDR_ERR_SUCCESS
;
3995 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3997 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3999 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4000 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4002 if (r
->printer_name
) {
4003 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4006 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4008 if (r
->server_name
) {
4009 ndr_print_string(ndr
, "server_name", r
->server_name
);
4012 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4015 ndr_print_string(ndr
, "user_name", r
->user_name
);
4018 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4020 if (r
->document_name
) {
4021 ndr_print_string(ndr
, "document_name", r
->document_name
);
4024 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4026 if (r
->notify_name
) {
4027 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4030 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4033 ndr_print_string(ndr
, "data_type", r
->data_type
);
4036 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4038 if (r
->print_processor
) {
4039 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4042 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4044 if (r
->parameters
) {
4045 ndr_print_string(ndr
, "parameters", r
->parameters
);
4048 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4050 if (r
->driver_name
) {
4051 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4054 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4057 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4060 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4062 if (r
->text_status
) {
4063 ndr_print_string(ndr
, "text_status", r
->text_status
);
4066 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4069 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4072 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4073 ndr_print_uint32(ndr
, "priority", r
->priority
);
4074 ndr_print_uint32(ndr
, "position", r
->position
);
4075 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4076 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4077 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4078 ndr_print_uint32(ndr
, "size", r
->size
);
4079 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4080 ndr_print_uint32(ndr
, "time", r
->time
);
4081 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4085 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4087 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
4090 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
4092 if (ndr_flags
& NDR_SCALARS
) {
4093 NDR_CHECK(ndr_push_align(ndr
, 4));
4094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
4096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
4097 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
4099 if (ndr_flags
& NDR_BUFFERS
) {
4101 return NDR_ERR_SUCCESS
;
4104 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
4106 if (ndr_flags
& NDR_SCALARS
) {
4107 NDR_CHECK(ndr_pull_align(ndr
, 4));
4108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
4110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
4111 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
4113 if (ndr_flags
& NDR_BUFFERS
) {
4115 return NDR_ERR_SUCCESS
;
4118 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
4120 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
4122 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4123 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
4124 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
4128 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4130 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
4133 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
4135 if (ndr_flags
& NDR_SCALARS
) {
4136 NDR_CHECK(ndr_push_align(ndr
, 5));
4137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4139 uint32_t _flags_save_string
= ndr
->flags
;
4140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4141 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
4142 ndr
->flags
= _flags_save_string
;
4145 uint32_t _flags_save_string
= ndr
->flags
;
4146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4147 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
4148 ndr
->flags
= _flags_save_string
;
4151 uint32_t _flags_save_string
= ndr
->flags
;
4152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4153 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
4154 ndr
->flags
= _flags_save_string
;
4157 uint32_t _flags_save_string
= ndr
->flags
;
4158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4159 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
4160 ndr
->flags
= _flags_save_string
;
4163 uint32_t _flags_save_string
= ndr
->flags
;
4164 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4165 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
4166 ndr
->flags
= _flags_save_string
;
4169 uint32_t _flags_save_string
= ndr
->flags
;
4170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4171 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
4172 ndr
->flags
= _flags_save_string
;
4175 uint32_t _flags_save_string
= ndr
->flags
;
4176 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4177 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
4178 ndr
->flags
= _flags_save_string
;
4181 uint32_t _flags_save_string
= ndr
->flags
;
4182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4183 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
4184 ndr
->flags
= _flags_save_string
;
4187 uint32_t _flags_save_string
= ndr
->flags
;
4188 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4189 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
4190 ndr
->flags
= _flags_save_string
;
4192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
4194 uint32_t _flags_save_string
= ndr
->flags
;
4195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4196 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
4197 ndr
->flags
= _flags_save_string
;
4199 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
4200 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4207 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
4211 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4213 if (ndr_flags
& NDR_BUFFERS
) {
4215 uint32_t _flags_save_string
= ndr
->flags
;
4216 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4217 if (r
->printer_name
) {
4218 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
4219 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
4221 ndr
->flags
= _flags_save_string
;
4224 uint32_t _flags_save_string
= ndr
->flags
;
4225 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4226 if (r
->server_name
) {
4227 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
4228 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
4230 ndr
->flags
= _flags_save_string
;
4233 uint32_t _flags_save_string
= ndr
->flags
;
4234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4236 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
4237 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
4239 ndr
->flags
= _flags_save_string
;
4242 uint32_t _flags_save_string
= ndr
->flags
;
4243 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4244 if (r
->document_name
) {
4245 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
4246 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
4248 ndr
->flags
= _flags_save_string
;
4251 uint32_t _flags_save_string
= ndr
->flags
;
4252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4253 if (r
->notify_name
) {
4254 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
4255 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
4257 ndr
->flags
= _flags_save_string
;
4260 uint32_t _flags_save_string
= ndr
->flags
;
4261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4263 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
4264 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
4266 ndr
->flags
= _flags_save_string
;
4269 uint32_t _flags_save_string
= ndr
->flags
;
4270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4271 if (r
->print_processor
) {
4272 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
4273 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
4275 ndr
->flags
= _flags_save_string
;
4278 uint32_t _flags_save_string
= ndr
->flags
;
4279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4280 if (r
->parameters
) {
4281 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
4282 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
4284 ndr
->flags
= _flags_save_string
;
4287 uint32_t _flags_save_string
= ndr
->flags
;
4288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4289 if (r
->driver_name
) {
4290 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
4291 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
4293 ndr
->flags
= _flags_save_string
;
4296 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
4297 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4300 uint32_t _flags_save_string
= ndr
->flags
;
4301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4302 if (r
->text_status
) {
4303 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
4304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
4306 ndr
->flags
= _flags_save_string
;
4309 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
4310 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4313 return NDR_ERR_SUCCESS
;
4316 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
4318 uint32_t _ptr_printer_name
;
4319 TALLOC_CTX
*_mem_save_printer_name_0
;
4320 uint32_t _ptr_server_name
;
4321 TALLOC_CTX
*_mem_save_server_name_0
;
4322 uint32_t _ptr_user_name
;
4323 TALLOC_CTX
*_mem_save_user_name_0
;
4324 uint32_t _ptr_document_name
;
4325 TALLOC_CTX
*_mem_save_document_name_0
;
4326 uint32_t _ptr_notify_name
;
4327 TALLOC_CTX
*_mem_save_notify_name_0
;
4328 uint32_t _ptr_data_type
;
4329 TALLOC_CTX
*_mem_save_data_type_0
;
4330 uint32_t _ptr_print_processor
;
4331 TALLOC_CTX
*_mem_save_print_processor_0
;
4332 uint32_t _ptr_parameters
;
4333 TALLOC_CTX
*_mem_save_parameters_0
;
4334 uint32_t _ptr_driver_name
;
4335 TALLOC_CTX
*_mem_save_driver_name_0
;
4336 uint32_t _ptr_devmode
;
4337 TALLOC_CTX
*_mem_save_devmode_0
;
4338 uint32_t _ptr_text_status
;
4339 TALLOC_CTX
*_mem_save_text_status_0
;
4340 uint32_t _ptr_secdesc
;
4341 TALLOC_CTX
*_mem_save_secdesc_0
;
4342 if (ndr_flags
& NDR_SCALARS
) {
4343 NDR_CHECK(ndr_pull_align(ndr
, 5));
4344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4346 uint32_t _flags_save_string
= ndr
->flags
;
4347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4348 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4349 if (_ptr_printer_name
) {
4350 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4351 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4353 r
->printer_name
= NULL
;
4355 ndr
->flags
= _flags_save_string
;
4358 uint32_t _flags_save_string
= ndr
->flags
;
4359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4361 if (_ptr_server_name
) {
4362 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4363 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4365 r
->server_name
= NULL
;
4367 ndr
->flags
= _flags_save_string
;
4370 uint32_t _flags_save_string
= ndr
->flags
;
4371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4373 if (_ptr_user_name
) {
4374 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4375 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4377 r
->user_name
= NULL
;
4379 ndr
->flags
= _flags_save_string
;
4382 uint32_t _flags_save_string
= ndr
->flags
;
4383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4384 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4385 if (_ptr_document_name
) {
4386 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4387 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4389 r
->document_name
= NULL
;
4391 ndr
->flags
= _flags_save_string
;
4394 uint32_t _flags_save_string
= ndr
->flags
;
4395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4397 if (_ptr_notify_name
) {
4398 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4399 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4401 r
->notify_name
= NULL
;
4403 ndr
->flags
= _flags_save_string
;
4406 uint32_t _flags_save_string
= ndr
->flags
;
4407 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4408 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4409 if (_ptr_data_type
) {
4410 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4411 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4413 r
->data_type
= NULL
;
4415 ndr
->flags
= _flags_save_string
;
4418 uint32_t _flags_save_string
= ndr
->flags
;
4419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4421 if (_ptr_print_processor
) {
4422 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4423 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4425 r
->print_processor
= NULL
;
4427 ndr
->flags
= _flags_save_string
;
4430 uint32_t _flags_save_string
= ndr
->flags
;
4431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4433 if (_ptr_parameters
) {
4434 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4435 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4437 r
->parameters
= NULL
;
4439 ndr
->flags
= _flags_save_string
;
4442 uint32_t _flags_save_string
= ndr
->flags
;
4443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4445 if (_ptr_driver_name
) {
4446 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4447 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4449 r
->driver_name
= NULL
;
4451 ndr
->flags
= _flags_save_string
;
4453 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4455 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4456 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4461 uint32_t _flags_save_string
= ndr
->flags
;
4462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4464 if (_ptr_text_status
) {
4465 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4466 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4468 r
->text_status
= NULL
;
4470 ndr
->flags
= _flags_save_string
;
4472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4474 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4475 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4479 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4480 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4481 if (r
->priority
> 99) {
4482 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4489 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4493 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4495 if (ndr_flags
& NDR_BUFFERS
) {
4497 uint32_t _flags_save_string
= ndr
->flags
;
4498 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4499 if (r
->printer_name
) {
4500 uint32_t _relative_save_offset
;
4501 _relative_save_offset
= ndr
->offset
;
4502 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4503 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4504 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4505 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4507 ndr
->offset
= _relative_save_offset
;
4509 ndr
->flags
= _flags_save_string
;
4512 uint32_t _flags_save_string
= ndr
->flags
;
4513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4514 if (r
->server_name
) {
4515 uint32_t _relative_save_offset
;
4516 _relative_save_offset
= ndr
->offset
;
4517 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4518 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4519 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4520 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4522 ndr
->offset
= _relative_save_offset
;
4524 ndr
->flags
= _flags_save_string
;
4527 uint32_t _flags_save_string
= ndr
->flags
;
4528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4530 uint32_t _relative_save_offset
;
4531 _relative_save_offset
= ndr
->offset
;
4532 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4533 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4534 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4535 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4537 ndr
->offset
= _relative_save_offset
;
4539 ndr
->flags
= _flags_save_string
;
4542 uint32_t _flags_save_string
= ndr
->flags
;
4543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4544 if (r
->document_name
) {
4545 uint32_t _relative_save_offset
;
4546 _relative_save_offset
= ndr
->offset
;
4547 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4548 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4549 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4550 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4552 ndr
->offset
= _relative_save_offset
;
4554 ndr
->flags
= _flags_save_string
;
4557 uint32_t _flags_save_string
= ndr
->flags
;
4558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4559 if (r
->notify_name
) {
4560 uint32_t _relative_save_offset
;
4561 _relative_save_offset
= ndr
->offset
;
4562 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4563 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4564 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4565 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4567 ndr
->offset
= _relative_save_offset
;
4569 ndr
->flags
= _flags_save_string
;
4572 uint32_t _flags_save_string
= ndr
->flags
;
4573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4575 uint32_t _relative_save_offset
;
4576 _relative_save_offset
= ndr
->offset
;
4577 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4578 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4579 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4580 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4582 ndr
->offset
= _relative_save_offset
;
4584 ndr
->flags
= _flags_save_string
;
4587 uint32_t _flags_save_string
= ndr
->flags
;
4588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4589 if (r
->print_processor
) {
4590 uint32_t _relative_save_offset
;
4591 _relative_save_offset
= ndr
->offset
;
4592 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4593 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4594 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4595 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4597 ndr
->offset
= _relative_save_offset
;
4599 ndr
->flags
= _flags_save_string
;
4602 uint32_t _flags_save_string
= ndr
->flags
;
4603 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4604 if (r
->parameters
) {
4605 uint32_t _relative_save_offset
;
4606 _relative_save_offset
= ndr
->offset
;
4607 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4608 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4609 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4610 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4612 ndr
->offset
= _relative_save_offset
;
4614 ndr
->flags
= _flags_save_string
;
4617 uint32_t _flags_save_string
= ndr
->flags
;
4618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4619 if (r
->driver_name
) {
4620 uint32_t _relative_save_offset
;
4621 _relative_save_offset
= ndr
->offset
;
4622 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4623 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4624 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4625 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4627 ndr
->offset
= _relative_save_offset
;
4629 ndr
->flags
= _flags_save_string
;
4632 uint32_t _relative_save_offset
;
4633 _relative_save_offset
= ndr
->offset
;
4634 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4635 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4636 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4637 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4639 ndr
->offset
= _relative_save_offset
;
4642 uint32_t _flags_save_string
= ndr
->flags
;
4643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4644 if (r
->text_status
) {
4645 uint32_t _relative_save_offset
;
4646 _relative_save_offset
= ndr
->offset
;
4647 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4648 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4649 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4652 ndr
->offset
= _relative_save_offset
;
4654 ndr
->flags
= _flags_save_string
;
4657 uint32_t _relative_save_offset
;
4658 _relative_save_offset
= ndr
->offset
;
4659 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4660 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4661 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4662 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4664 ndr
->offset
= _relative_save_offset
;
4667 return NDR_ERR_SUCCESS
;
4670 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4672 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4674 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4675 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4677 if (r
->printer_name
) {
4678 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4681 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4683 if (r
->server_name
) {
4684 ndr_print_string(ndr
, "server_name", r
->server_name
);
4687 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4690 ndr_print_string(ndr
, "user_name", r
->user_name
);
4693 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4695 if (r
->document_name
) {
4696 ndr_print_string(ndr
, "document_name", r
->document_name
);
4699 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4701 if (r
->notify_name
) {
4702 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4705 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4708 ndr_print_string(ndr
, "data_type", r
->data_type
);
4711 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4713 if (r
->print_processor
) {
4714 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4717 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4719 if (r
->parameters
) {
4720 ndr_print_string(ndr
, "parameters", r
->parameters
);
4723 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4725 if (r
->driver_name
) {
4726 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4729 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4732 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4735 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4737 if (r
->text_status
) {
4738 ndr_print_string(ndr
, "text_status", r
->text_status
);
4741 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4744 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4747 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4748 ndr_print_uint32(ndr
, "priority", r
->priority
);
4749 ndr_print_uint32(ndr
, "position", r
->position
);
4750 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4751 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4752 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4753 ndr_print_uint32(ndr
, "size", r
->size
);
4754 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4755 ndr_print_uint32(ndr
, "time", r
->time
);
4756 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4757 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4761 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4763 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4766 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4768 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4769 if (ndr_flags
& NDR_SCALARS
) {
4770 int level
= ndr_push_get_switch_value(ndr
, r
);
4771 NDR_CHECK(ndr_push_union_align(ndr
, 5));
4774 NDR_CHECK(ndr_push_align(ndr
, 5));
4775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4776 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4780 NDR_CHECK(ndr_push_align(ndr
, 5));
4781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4782 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4786 NDR_CHECK(ndr_push_align(ndr
, 4));
4787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4788 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4792 NDR_CHECK(ndr_push_align(ndr
, 5));
4793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4794 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4802 if (ndr_flags
& NDR_BUFFERS
) {
4803 int level
= ndr_push_get_switch_value(ndr
, r
);
4804 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4807 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4811 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4818 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4826 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4827 return NDR_ERR_SUCCESS
;
4830 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4832 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4834 level
= ndr_pull_get_switch_value(ndr
, r
);
4835 if (ndr_flags
& NDR_SCALARS
) {
4836 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
4839 NDR_CHECK(ndr_pull_align(ndr
, 5));
4840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4841 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4845 NDR_CHECK(ndr_pull_align(ndr
, 5));
4846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4847 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4851 NDR_CHECK(ndr_pull_align(ndr
, 4));
4852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4853 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4857 NDR_CHECK(ndr_pull_align(ndr
, 5));
4858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4859 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4867 if (ndr_flags
& NDR_BUFFERS
) {
4868 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4871 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4875 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4882 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4890 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4891 return NDR_ERR_SUCCESS
;
4894 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4897 level
= ndr_print_get_switch_value(ndr
, r
);
4898 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4901 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4905 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4909 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4913 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4922 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4924 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4927 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4929 if (ndr_flags
& NDR_SCALARS
) {
4930 NDR_CHECK(ndr_push_align(ndr
, 5));
4931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4933 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4934 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4938 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4943 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4944 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4946 if (ndr_flags
& NDR_BUFFERS
) {
4947 if (r
->printer_name
) {
4948 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4949 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4950 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4951 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4953 if (r
->server_name
) {
4954 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4955 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4956 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4957 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4960 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4961 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4962 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4963 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4965 if (r
->document_name
) {
4966 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4967 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4968 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4969 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4975 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4977 if (r
->text_status
) {
4978 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4980 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4981 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4984 return NDR_ERR_SUCCESS
;
4987 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4989 uint32_t _ptr_printer_name
;
4990 TALLOC_CTX
*_mem_save_printer_name_0
;
4991 uint32_t _ptr_server_name
;
4992 TALLOC_CTX
*_mem_save_server_name_0
;
4993 uint32_t _ptr_user_name
;
4994 TALLOC_CTX
*_mem_save_user_name_0
;
4995 uint32_t _ptr_document_name
;
4996 TALLOC_CTX
*_mem_save_document_name_0
;
4997 uint32_t _ptr_data_type
;
4998 TALLOC_CTX
*_mem_save_data_type_0
;
4999 uint32_t _ptr_text_status
;
5000 TALLOC_CTX
*_mem_save_text_status_0
;
5001 if (ndr_flags
& NDR_SCALARS
) {
5002 NDR_CHECK(ndr_pull_align(ndr
, 5));
5003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5004 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5005 if (_ptr_printer_name
) {
5006 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5008 r
->printer_name
= NULL
;
5010 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5011 if (_ptr_server_name
) {
5012 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5014 r
->server_name
= NULL
;
5016 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5017 if (_ptr_user_name
) {
5018 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5020 r
->user_name
= NULL
;
5022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5023 if (_ptr_document_name
) {
5024 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5026 r
->document_name
= NULL
;
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5029 if (_ptr_data_type
) {
5030 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5032 r
->data_type
= NULL
;
5034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5035 if (_ptr_text_status
) {
5036 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5038 r
->text_status
= NULL
;
5040 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5042 if (r
->priority
> 99) {
5043 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5045 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5046 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5047 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5048 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5049 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5051 if (ndr_flags
& NDR_BUFFERS
) {
5052 if (r
->printer_name
) {
5053 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5054 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5055 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5056 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5057 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5058 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
));
5060 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5061 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5064 if (r
->server_name
) {
5065 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5066 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5069 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5070 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
));
5072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5073 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5077 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5078 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5079 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5080 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5081 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5082 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
));
5084 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5085 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5088 if (r
->document_name
) {
5089 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5090 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5091 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5092 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5093 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5094 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
));
5096 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5097 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5101 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5102 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5103 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5104 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5105 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5106 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
));
5108 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5109 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5112 if (r
->text_status
) {
5113 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5114 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5115 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5116 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5117 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5118 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
));
5120 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5125 return NDR_ERR_SUCCESS
;
5128 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
5130 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
5132 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5133 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5135 if (r
->printer_name
) {
5136 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5139 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5141 if (r
->server_name
) {
5142 ndr_print_string(ndr
, "server_name", r
->server_name
);
5145 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5148 ndr_print_string(ndr
, "user_name", r
->user_name
);
5151 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5153 if (r
->document_name
) {
5154 ndr_print_string(ndr
, "document_name", r
->document_name
);
5157 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5160 ndr_print_string(ndr
, "data_type", r
->data_type
);
5163 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5165 if (r
->text_status
) {
5166 ndr_print_string(ndr
, "text_status", r
->text_status
);
5169 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5170 ndr_print_uint32(ndr
, "priority", r
->priority
);
5171 ndr_print_uint32(ndr
, "position", r
->position
);
5172 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5173 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5174 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5178 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
5180 if (ndr_flags
& NDR_SCALARS
) {
5181 NDR_CHECK(ndr_push_align(ndr
, 5));
5182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5183 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5185 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5187 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5188 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5189 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5190 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5191 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5195 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5202 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5205 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5207 if (ndr_flags
& NDR_BUFFERS
) {
5208 if (r
->printer_name
) {
5209 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5210 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5211 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5212 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5214 if (r
->server_name
) {
5215 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5216 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5217 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5218 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5221 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5222 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5223 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5224 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5226 if (r
->document_name
) {
5227 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5228 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5229 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5230 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5232 if (r
->notify_name
) {
5233 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5239 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5241 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5242 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5244 if (r
->print_processor
) {
5245 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5246 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5247 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5248 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5250 if (r
->parameters
) {
5251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5252 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5253 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5254 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5256 if (r
->driver_name
) {
5257 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5258 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5259 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5260 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5262 if (r
->text_status
) {
5263 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5264 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5265 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5266 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5269 return NDR_ERR_SUCCESS
;
5272 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
5274 uint32_t _ptr_printer_name
;
5275 TALLOC_CTX
*_mem_save_printer_name_0
;
5276 uint32_t _ptr_server_name
;
5277 TALLOC_CTX
*_mem_save_server_name_0
;
5278 uint32_t _ptr_user_name
;
5279 TALLOC_CTX
*_mem_save_user_name_0
;
5280 uint32_t _ptr_document_name
;
5281 TALLOC_CTX
*_mem_save_document_name_0
;
5282 uint32_t _ptr_notify_name
;
5283 TALLOC_CTX
*_mem_save_notify_name_0
;
5284 uint32_t _ptr_data_type
;
5285 TALLOC_CTX
*_mem_save_data_type_0
;
5286 uint32_t _ptr_print_processor
;
5287 TALLOC_CTX
*_mem_save_print_processor_0
;
5288 uint32_t _ptr_parameters
;
5289 TALLOC_CTX
*_mem_save_parameters_0
;
5290 uint32_t _ptr_driver_name
;
5291 TALLOC_CTX
*_mem_save_driver_name_0
;
5292 uint32_t _ptr_text_status
;
5293 TALLOC_CTX
*_mem_save_text_status_0
;
5294 if (ndr_flags
& NDR_SCALARS
) {
5295 NDR_CHECK(ndr_pull_align(ndr
, 5));
5296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5298 if (_ptr_printer_name
) {
5299 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5301 r
->printer_name
= NULL
;
5303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5304 if (_ptr_server_name
) {
5305 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5307 r
->server_name
= NULL
;
5309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5310 if (_ptr_user_name
) {
5311 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5313 r
->user_name
= NULL
;
5315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5316 if (_ptr_document_name
) {
5317 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5319 r
->document_name
= NULL
;
5321 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5322 if (_ptr_notify_name
) {
5323 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5325 r
->notify_name
= NULL
;
5327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5328 if (_ptr_data_type
) {
5329 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5331 r
->data_type
= NULL
;
5333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5334 if (_ptr_print_processor
) {
5335 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5337 r
->print_processor
= NULL
;
5339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5340 if (_ptr_parameters
) {
5341 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5343 r
->parameters
= NULL
;
5345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5346 if (_ptr_driver_name
) {
5347 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5349 r
->driver_name
= NULL
;
5351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5353 if (_ptr_text_status
) {
5354 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5356 r
->text_status
= NULL
;
5358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5359 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5361 if (r
->priority
> 99) {
5362 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5367 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5369 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5372 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5374 if (ndr_flags
& NDR_BUFFERS
) {
5375 if (r
->printer_name
) {
5376 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5377 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5380 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5381 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
));
5383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5387 if (r
->server_name
) {
5388 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5389 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5390 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5391 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5392 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5393 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
));
5395 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5396 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5400 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5401 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5402 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5403 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5404 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5405 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
));
5407 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5408 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5411 if (r
->document_name
) {
5412 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5413 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5414 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5415 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5416 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5417 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
));
5419 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5420 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5423 if (r
->notify_name
) {
5424 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5425 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5426 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5427 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5428 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5429 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
));
5431 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5432 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5436 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5437 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5438 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5439 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5440 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5441 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
));
5443 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5444 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5447 if (r
->print_processor
) {
5448 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5449 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5450 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5451 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5452 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5453 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
));
5455 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5456 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5459 if (r
->parameters
) {
5460 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5461 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5464 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5465 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
));
5467 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5468 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5471 if (r
->driver_name
) {
5472 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5473 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5474 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5475 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5476 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5477 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
));
5479 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5480 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5483 if (r
->text_status
) {
5484 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5485 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5486 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5487 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5488 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5489 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
));
5491 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5492 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5496 return NDR_ERR_SUCCESS
;
5499 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
5501 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
5503 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5504 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5506 if (r
->printer_name
) {
5507 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5510 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5512 if (r
->server_name
) {
5513 ndr_print_string(ndr
, "server_name", r
->server_name
);
5516 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5519 ndr_print_string(ndr
, "user_name", r
->user_name
);
5522 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5524 if (r
->document_name
) {
5525 ndr_print_string(ndr
, "document_name", r
->document_name
);
5528 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5530 if (r
->notify_name
) {
5531 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5534 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5537 ndr_print_string(ndr
, "data_type", r
->data_type
);
5540 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5542 if (r
->print_processor
) {
5543 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5546 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5548 if (r
->parameters
) {
5549 ndr_print_string(ndr
, "parameters", r
->parameters
);
5552 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5554 if (r
->driver_name
) {
5555 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5558 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5559 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5561 if (r
->text_status
) {
5562 ndr_print_string(ndr
, "text_status", r
->text_status
);
5565 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5566 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5567 ndr_print_uint32(ndr
, "priority", r
->priority
);
5568 ndr_print_uint32(ndr
, "position", r
->position
);
5569 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5570 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5571 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5572 ndr_print_uint32(ndr
, "size", r
->size
);
5573 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5574 ndr_print_uint32(ndr
, "time", r
->time
);
5575 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5579 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5581 if (ndr_flags
& NDR_SCALARS
) {
5582 NDR_CHECK(ndr_push_align(ndr
, 5));
5583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5591 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5594 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5596 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5603 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5607 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5609 if (ndr_flags
& NDR_BUFFERS
) {
5610 if (r
->printer_name
) {
5611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5612 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5613 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5614 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5616 if (r
->server_name
) {
5617 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5620 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5623 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5624 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5625 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5626 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5628 if (r
->document_name
) {
5629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5630 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5632 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5634 if (r
->notify_name
) {
5635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5638 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5641 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5642 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5644 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5646 if (r
->print_processor
) {
5647 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5648 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5650 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5652 if (r
->parameters
) {
5653 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5654 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5656 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5658 if (r
->driver_name
) {
5659 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5660 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5661 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5662 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5664 if (r
->text_status
) {
5665 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5666 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5667 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5668 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5671 return NDR_ERR_SUCCESS
;
5674 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5676 uint32_t _ptr_printer_name
;
5677 TALLOC_CTX
*_mem_save_printer_name_0
;
5678 uint32_t _ptr_server_name
;
5679 TALLOC_CTX
*_mem_save_server_name_0
;
5680 uint32_t _ptr_user_name
;
5681 TALLOC_CTX
*_mem_save_user_name_0
;
5682 uint32_t _ptr_document_name
;
5683 TALLOC_CTX
*_mem_save_document_name_0
;
5684 uint32_t _ptr_notify_name
;
5685 TALLOC_CTX
*_mem_save_notify_name_0
;
5686 uint32_t _ptr_data_type
;
5687 TALLOC_CTX
*_mem_save_data_type_0
;
5688 uint32_t _ptr_print_processor
;
5689 TALLOC_CTX
*_mem_save_print_processor_0
;
5690 uint32_t _ptr_parameters
;
5691 TALLOC_CTX
*_mem_save_parameters_0
;
5692 uint32_t _ptr_driver_name
;
5693 TALLOC_CTX
*_mem_save_driver_name_0
;
5694 uint32_t _ptr_text_status
;
5695 TALLOC_CTX
*_mem_save_text_status_0
;
5696 if (ndr_flags
& NDR_SCALARS
) {
5697 NDR_CHECK(ndr_pull_align(ndr
, 5));
5698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5700 if (_ptr_printer_name
) {
5701 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5703 r
->printer_name
= NULL
;
5705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5706 if (_ptr_server_name
) {
5707 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5709 r
->server_name
= NULL
;
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5712 if (_ptr_user_name
) {
5713 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5715 r
->user_name
= NULL
;
5717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5718 if (_ptr_document_name
) {
5719 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5721 r
->document_name
= NULL
;
5723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5724 if (_ptr_notify_name
) {
5725 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5727 r
->notify_name
= NULL
;
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5730 if (_ptr_data_type
) {
5731 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5733 r
->data_type
= NULL
;
5735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5736 if (_ptr_print_processor
) {
5737 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5739 r
->print_processor
= NULL
;
5741 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5742 if (_ptr_parameters
) {
5743 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5745 r
->parameters
= NULL
;
5747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5748 if (_ptr_driver_name
) {
5749 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5751 r
->driver_name
= NULL
;
5753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5754 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5755 if (_ptr_text_status
) {
5756 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5758 r
->text_status
= NULL
;
5760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5761 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5763 if (r
->priority
> 99) {
5764 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5768 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5769 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5771 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5772 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5773 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5775 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5777 if (ndr_flags
& NDR_BUFFERS
) {
5778 if (r
->printer_name
) {
5779 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5780 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5781 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5782 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5783 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5784 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
));
5786 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5787 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5790 if (r
->server_name
) {
5791 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5792 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5793 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5794 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5795 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5796 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
));
5798 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5799 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5803 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5804 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5805 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5806 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5807 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5808 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
));
5810 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5811 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5814 if (r
->document_name
) {
5815 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5816 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5819 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5820 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
));
5822 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5823 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5826 if (r
->notify_name
) {
5827 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5828 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5831 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5832 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
));
5834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5839 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5840 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5843 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5844 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
));
5846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5847 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5850 if (r
->print_processor
) {
5851 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5852 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5855 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5856 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
));
5858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5862 if (r
->parameters
) {
5863 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5864 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5867 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5868 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
));
5870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5874 if (r
->driver_name
) {
5875 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5876 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5877 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5878 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5879 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5880 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
));
5882 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5883 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5886 if (r
->text_status
) {
5887 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5888 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5889 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5890 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5891 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5892 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
));
5894 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5895 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5899 return NDR_ERR_SUCCESS
;
5902 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5904 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5906 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5907 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5909 if (r
->printer_name
) {
5910 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5913 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5915 if (r
->server_name
) {
5916 ndr_print_string(ndr
, "server_name", r
->server_name
);
5919 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5922 ndr_print_string(ndr
, "user_name", r
->user_name
);
5925 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5927 if (r
->document_name
) {
5928 ndr_print_string(ndr
, "document_name", r
->document_name
);
5931 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5933 if (r
->notify_name
) {
5934 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5937 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5940 ndr_print_string(ndr
, "data_type", r
->data_type
);
5943 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5945 if (r
->print_processor
) {
5946 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5949 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5951 if (r
->parameters
) {
5952 ndr_print_string(ndr
, "parameters", r
->parameters
);
5955 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5957 if (r
->driver_name
) {
5958 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5961 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5962 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5964 if (r
->text_status
) {
5965 ndr_print_string(ndr
, "text_status", r
->text_status
);
5968 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5969 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5970 ndr_print_uint32(ndr
, "priority", r
->priority
);
5971 ndr_print_uint32(ndr
, "position", r
->position
);
5972 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5973 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5974 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5975 ndr_print_uint32(ndr
, "size", r
->size
);
5976 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5977 ndr_print_uint32(ndr
, "time", r
->time
);
5978 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5979 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5983 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5985 if (ndr_flags
& NDR_SCALARS
) {
5986 int level
= ndr_push_get_switch_value(ndr
, r
);
5987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5988 NDR_CHECK(ndr_push_union_align(ndr
, 5));
5991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5995 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5999 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6011 if (ndr_flags
& NDR_BUFFERS
) {
6012 int level
= ndr_push_get_switch_value(ndr
, r
);
6016 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6022 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6028 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6034 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6043 return NDR_ERR_SUCCESS
;
6046 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
6050 TALLOC_CTX
*_mem_save_info1_0
;
6051 TALLOC_CTX
*_mem_save_info2_0
;
6052 TALLOC_CTX
*_mem_save_info3_0
;
6053 TALLOC_CTX
*_mem_save_info4_0
;
6054 level
= ndr_pull_get_switch_value(ndr
, r
);
6055 if (ndr_flags
& NDR_SCALARS
) {
6056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6057 if (_level
!= level
) {
6058 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6060 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6063 uint32_t _ptr_info1
;
6064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6066 NDR_PULL_ALLOC(ndr
, r
->info1
);
6073 uint32_t _ptr_info2
;
6074 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6076 NDR_PULL_ALLOC(ndr
, r
->info2
);
6083 uint32_t _ptr_info3
;
6084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6086 NDR_PULL_ALLOC(ndr
, r
->info3
);
6093 uint32_t _ptr_info4
;
6094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6096 NDR_PULL_ALLOC(ndr
, r
->info4
);
6107 if (ndr_flags
& NDR_BUFFERS
) {
6111 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6112 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6113 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6120 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6121 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6122 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6129 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6130 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6131 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6138 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6139 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6140 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6150 return NDR_ERR_SUCCESS
;
6153 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
6156 level
= ndr_print_get_switch_value(ndr
, r
);
6157 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
6160 ndr_print_ptr(ndr
, "info1", r
->info1
);
6163 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
6169 ndr_print_ptr(ndr
, "info2", r
->info2
);
6172 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
6178 ndr_print_ptr(ndr
, "info3", r
->info3
);
6181 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
6187 ndr_print_ptr(ndr
, "info4", r
->info4
);
6190 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
6201 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
6203 if (ndr_flags
& NDR_SCALARS
) {
6204 NDR_CHECK(ndr_push_align(ndr
, 5));
6205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
6206 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
6207 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6208 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6210 if (ndr_flags
& NDR_BUFFERS
) {
6211 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6213 return NDR_ERR_SUCCESS
;
6216 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
6218 if (ndr_flags
& NDR_SCALARS
) {
6219 NDR_CHECK(ndr_pull_align(ndr
, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6221 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6222 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6223 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6225 if (ndr_flags
& NDR_BUFFERS
) {
6226 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6228 return NDR_ERR_SUCCESS
;
6231 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
6233 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
6235 ndr_print_uint32(ndr
, "level", r
->level
);
6236 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6237 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
6241 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
6243 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6244 return NDR_ERR_SUCCESS
;
6247 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
6250 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6252 return NDR_ERR_SUCCESS
;
6255 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
6257 const char *val
= NULL
;
6260 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6261 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
6262 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6263 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
6264 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
6265 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6266 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6267 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6268 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6270 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6273 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
6275 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6276 return NDR_ERR_SUCCESS
;
6279 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
6282 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6284 return NDR_ERR_SUCCESS
;
6287 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
6289 const char *val
= NULL
;
6292 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6293 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6294 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6295 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6296 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6298 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6301 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
6303 if (ndr_flags
& NDR_SCALARS
) {
6304 NDR_CHECK(ndr_push_align(ndr
, 5));
6305 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6306 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
6309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
6310 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
6312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
6314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
6315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
6316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
6317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
6318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
6319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
6320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
6321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
6322 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
6323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
6324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
6325 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
6326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
6327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
6328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
6329 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
6330 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
6331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
6332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
6333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
6334 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6336 if (ndr_flags
& NDR_BUFFERS
) {
6337 if (r
->servername
) {
6338 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6339 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6340 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6341 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6343 if (r
->printername
) {
6344 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6345 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6346 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6350 return NDR_ERR_SUCCESS
;
6353 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
6355 uint32_t _ptr_servername
;
6356 TALLOC_CTX
*_mem_save_servername_0
;
6357 uint32_t _ptr_printername
;
6358 TALLOC_CTX
*_mem_save_printername_0
;
6359 if (ndr_flags
& NDR_SCALARS
) {
6360 NDR_CHECK(ndr_pull_align(ndr
, 5));
6361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6362 if (_ptr_servername
) {
6363 NDR_PULL_ALLOC(ndr
, r
->servername
);
6365 r
->servername
= NULL
;
6367 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6368 if (_ptr_printername
) {
6369 NDR_PULL_ALLOC(ndr
, r
->printername
);
6371 r
->printername
= NULL
;
6373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6376 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
6381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
6387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6388 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
6393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6394 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6395 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6396 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6400 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6402 if (ndr_flags
& NDR_BUFFERS
) {
6403 if (r
->servername
) {
6404 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6405 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6406 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6407 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6408 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6409 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
));
6411 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6412 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6415 if (r
->printername
) {
6416 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6417 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6419 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6420 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6421 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
));
6423 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6424 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6428 return NDR_ERR_SUCCESS
;
6431 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6433 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6435 ndr_print_ptr(ndr
, "servername", r
->servername
);
6437 if (r
->servername
) {
6438 ndr_print_string(ndr
, "servername", r
->servername
);
6441 ndr_print_ptr(ndr
, "printername", r
->printername
);
6443 if (r
->printername
) {
6444 ndr_print_string(ndr
, "printername", r
->printername
);
6447 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6448 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6449 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6450 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6451 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6452 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6453 ndr_print_uint32(ndr
, "version", r
->version
);
6454 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
6455 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6456 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6457 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6458 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6459 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6460 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
6461 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6462 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6463 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6464 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6465 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6466 ndr_print_uint32(ndr
, "status", r
->status
);
6467 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6468 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6469 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6470 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6471 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6472 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6473 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6477 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
6479 if (ndr_flags
& NDR_SCALARS
) {
6480 NDR_CHECK(ndr_push_align(ndr
, 5));
6481 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
6482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
6483 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
6484 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6485 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6487 if (ndr_flags
& NDR_BUFFERS
) {
6488 if (r
->description
) {
6489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6492 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6504 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6507 return NDR_ERR_SUCCESS
;
6510 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
6512 uint32_t _ptr_description
;
6513 TALLOC_CTX
*_mem_save_description_0
;
6515 TALLOC_CTX
*_mem_save_name_0
;
6516 uint32_t _ptr_comment
;
6517 TALLOC_CTX
*_mem_save_comment_0
;
6518 if (ndr_flags
& NDR_SCALARS
) {
6519 NDR_CHECK(ndr_pull_align(ndr
, 5));
6520 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
6521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6522 if (_ptr_description
) {
6523 NDR_PULL_ALLOC(ndr
, r
->description
);
6525 r
->description
= NULL
;
6527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6529 NDR_PULL_ALLOC(ndr
, r
->name
);
6533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6535 NDR_PULL_ALLOC(ndr
, r
->comment
);
6539 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6541 if (ndr_flags
& NDR_BUFFERS
) {
6542 if (r
->description
) {
6543 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6544 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6547 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
6548 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
));
6550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
6551 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
6552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6555 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6556 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6557 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6558 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6559 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
6560 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
));
6562 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
6563 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
6564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6567 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6568 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6569 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6570 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6571 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6572 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
));
6574 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6579 return NDR_ERR_SUCCESS
;
6582 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6584 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6586 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
6587 ndr_print_ptr(ndr
, "description", r
->description
);
6589 if (r
->description
) {
6590 ndr_print_string(ndr
, "description", r
->description
);
6593 ndr_print_ptr(ndr
, "name", r
->name
);
6596 ndr_print_string(ndr
, "name", r
->name
);
6599 ndr_print_ptr(ndr
, "comment", r
->comment
);
6602 ndr_print_string(ndr
, "comment", r
->comment
);
6608 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6610 if (ndr_flags
& NDR_SCALARS
) {
6611 NDR_CHECK(ndr_push_align(ndr
, 5));
6612 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6613 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6621 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6623 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6625 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6630 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6633 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6635 if (ndr_flags
& NDR_BUFFERS
) {
6636 if (r
->servername
) {
6637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6638 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6639 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6642 if (r
->printername
) {
6643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6645 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6646 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6650 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6651 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6652 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6656 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6657 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6658 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6660 if (r
->drivername
) {
6661 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6662 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6663 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6664 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6667 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6668 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6669 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6670 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6673 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6676 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6680 struct ndr_push
*_ndr_devmode
;
6681 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6682 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6683 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6687 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6688 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6690 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6692 if (r
->printprocessor
) {
6693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6695 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6696 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6700 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6701 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6702 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6704 if (r
->parameters
) {
6705 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6706 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6707 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6708 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6712 struct ndr_push
*_ndr_secdesc
;
6713 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6714 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6715 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6719 return NDR_ERR_SUCCESS
;
6722 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6724 uint32_t _ptr_servername
;
6725 TALLOC_CTX
*_mem_save_servername_0
;
6726 uint32_t _ptr_printername
;
6727 TALLOC_CTX
*_mem_save_printername_0
;
6728 uint32_t _ptr_sharename
;
6729 TALLOC_CTX
*_mem_save_sharename_0
;
6730 uint32_t _ptr_portname
;
6731 TALLOC_CTX
*_mem_save_portname_0
;
6732 uint32_t _ptr_drivername
;
6733 TALLOC_CTX
*_mem_save_drivername_0
;
6734 uint32_t _ptr_comment
;
6735 TALLOC_CTX
*_mem_save_comment_0
;
6736 uint32_t _ptr_location
;
6737 TALLOC_CTX
*_mem_save_location_0
;
6738 uint32_t _ptr_devmode
;
6739 TALLOC_CTX
*_mem_save_devmode_0
;
6740 uint32_t _ptr_sepfile
;
6741 TALLOC_CTX
*_mem_save_sepfile_0
;
6742 uint32_t _ptr_printprocessor
;
6743 TALLOC_CTX
*_mem_save_printprocessor_0
;
6744 uint32_t _ptr_datatype
;
6745 TALLOC_CTX
*_mem_save_datatype_0
;
6746 uint32_t _ptr_parameters
;
6747 TALLOC_CTX
*_mem_save_parameters_0
;
6748 uint32_t _ptr_secdesc
;
6749 TALLOC_CTX
*_mem_save_secdesc_0
;
6750 if (ndr_flags
& NDR_SCALARS
) {
6751 NDR_CHECK(ndr_pull_align(ndr
, 5));
6752 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6753 if (_ptr_servername
) {
6754 NDR_PULL_ALLOC(ndr
, r
->servername
);
6756 r
->servername
= NULL
;
6758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6759 if (_ptr_printername
) {
6760 NDR_PULL_ALLOC(ndr
, r
->printername
);
6762 r
->printername
= NULL
;
6764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6765 if (_ptr_sharename
) {
6766 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6768 r
->sharename
= NULL
;
6770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6771 if (_ptr_portname
) {
6772 NDR_PULL_ALLOC(ndr
, r
->portname
);
6776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6777 if (_ptr_drivername
) {
6778 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6780 r
->drivername
= NULL
;
6782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6784 NDR_PULL_ALLOC(ndr
, r
->comment
);
6788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6789 if (_ptr_location
) {
6790 NDR_PULL_ALLOC(ndr
, r
->location
);
6794 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6796 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6802 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6806 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6807 if (_ptr_printprocessor
) {
6808 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6810 r
->printprocessor
= NULL
;
6812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6813 if (_ptr_datatype
) {
6814 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6818 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6819 if (_ptr_parameters
) {
6820 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6822 r
->parameters
= NULL
;
6824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6826 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6830 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6832 if (r
->priority
> 99) {
6833 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6837 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6838 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6841 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6843 if (ndr_flags
& NDR_BUFFERS
) {
6844 if (r
->servername
) {
6845 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6846 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6847 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6848 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6849 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6850 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
));
6852 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6853 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6856 if (r
->printername
) {
6857 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6858 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6859 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6860 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6861 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6862 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
));
6864 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6865 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6869 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6870 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6871 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6872 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6873 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6874 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
));
6876 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6877 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6881 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6882 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6885 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6886 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
));
6888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6892 if (r
->drivername
) {
6893 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6894 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6895 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6896 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6897 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6898 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
));
6900 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6901 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6905 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6906 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6907 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6908 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6909 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6910 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
));
6912 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6913 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6917 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6918 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6919 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6920 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6921 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6922 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
));
6924 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6929 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6930 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6932 struct ndr_pull
*_ndr_devmode
;
6933 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6934 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6935 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6940 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6941 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6943 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6944 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6945 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
));
6947 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6951 if (r
->printprocessor
) {
6952 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6953 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6956 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6957 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
));
6959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6964 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6965 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6966 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6967 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6968 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6969 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
));
6971 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6972 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6975 if (r
->parameters
) {
6976 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6977 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6979 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6980 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6981 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
));
6983 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6988 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6989 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6991 struct ndr_pull
*_ndr_secdesc
;
6992 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6993 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6994 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6999 return NDR_ERR_SUCCESS
;
7002 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
7004 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
7006 ndr_print_ptr(ndr
, "servername", r
->servername
);
7008 if (r
->servername
) {
7009 ndr_print_string(ndr
, "servername", r
->servername
);
7012 ndr_print_ptr(ndr
, "printername", r
->printername
);
7014 if (r
->printername
) {
7015 ndr_print_string(ndr
, "printername", r
->printername
);
7018 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
7021 ndr_print_string(ndr
, "sharename", r
->sharename
);
7024 ndr_print_ptr(ndr
, "portname", r
->portname
);
7027 ndr_print_string(ndr
, "portname", r
->portname
);
7030 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
7032 if (r
->drivername
) {
7033 ndr_print_string(ndr
, "drivername", r
->drivername
);
7036 ndr_print_ptr(ndr
, "comment", r
->comment
);
7039 ndr_print_string(ndr
, "comment", r
->comment
);
7042 ndr_print_ptr(ndr
, "location", r
->location
);
7045 ndr_print_string(ndr
, "location", r
->location
);
7048 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
7051 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
7054 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7057 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7060 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7062 if (r
->printprocessor
) {
7063 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7066 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7069 ndr_print_string(ndr
, "datatype", r
->datatype
);
7072 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7074 if (r
->parameters
) {
7075 ndr_print_string(ndr
, "parameters", r
->parameters
);
7078 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
7081 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
7084 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7085 ndr_print_uint32(ndr
, "priority", r
->priority
);
7086 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7087 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7088 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7089 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7090 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7091 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7095 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7097 if (ndr_flags
& NDR_SCALARS
) {
7098 NDR_CHECK(ndr_push_align(ndr
, 4));
7099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7100 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7102 if (ndr_flags
& NDR_BUFFERS
) {
7104 return NDR_ERR_SUCCESS
;
7107 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7109 if (ndr_flags
& NDR_SCALARS
) {
7110 NDR_CHECK(ndr_pull_align(ndr
, 4));
7111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7112 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7114 if (ndr_flags
& NDR_BUFFERS
) {
7116 return NDR_ERR_SUCCESS
;
7119 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7121 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7123 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7127 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7129 if (ndr_flags
& NDR_SCALARS
) {
7130 NDR_CHECK(ndr_push_align(ndr
, 5));
7131 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7133 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7134 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7136 if (ndr_flags
& NDR_BUFFERS
) {
7137 if (r
->printername
) {
7138 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7139 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7140 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7143 if (r
->servername
) {
7144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7147 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7150 return NDR_ERR_SUCCESS
;
7153 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7155 uint32_t _ptr_printername
;
7156 TALLOC_CTX
*_mem_save_printername_0
;
7157 uint32_t _ptr_servername
;
7158 TALLOC_CTX
*_mem_save_servername_0
;
7159 if (ndr_flags
& NDR_SCALARS
) {
7160 NDR_CHECK(ndr_pull_align(ndr
, 5));
7161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7162 if (_ptr_printername
) {
7163 NDR_PULL_ALLOC(ndr
, r
->printername
);
7165 r
->printername
= NULL
;
7167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7168 if (_ptr_servername
) {
7169 NDR_PULL_ALLOC(ndr
, r
->servername
);
7171 r
->servername
= NULL
;
7173 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7174 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7176 if (ndr_flags
& NDR_BUFFERS
) {
7177 if (r
->printername
) {
7178 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7179 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7180 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7181 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7182 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7183 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
));
7185 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7186 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7189 if (r
->servername
) {
7190 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7191 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7194 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7195 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
));
7197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7198 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7202 return NDR_ERR_SUCCESS
;
7205 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7207 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7209 ndr_print_ptr(ndr
, "printername", r
->printername
);
7211 if (r
->printername
) {
7212 ndr_print_string(ndr
, "printername", r
->printername
);
7215 ndr_print_ptr(ndr
, "servername", r
->servername
);
7217 if (r
->servername
) {
7218 ndr_print_string(ndr
, "servername", r
->servername
);
7221 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7225 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7227 if (ndr_flags
& NDR_SCALARS
) {
7228 NDR_CHECK(ndr_push_align(ndr
, 5));
7229 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7231 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7234 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7236 if (ndr_flags
& NDR_BUFFERS
) {
7237 if (r
->printername
) {
7238 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7239 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7241 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7244 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7245 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7246 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7247 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7250 return NDR_ERR_SUCCESS
;
7253 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7255 uint32_t _ptr_printername
;
7256 TALLOC_CTX
*_mem_save_printername_0
;
7257 uint32_t _ptr_portname
;
7258 TALLOC_CTX
*_mem_save_portname_0
;
7259 if (ndr_flags
& NDR_SCALARS
) {
7260 NDR_CHECK(ndr_pull_align(ndr
, 5));
7261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7262 if (_ptr_printername
) {
7263 NDR_PULL_ALLOC(ndr
, r
->printername
);
7265 r
->printername
= NULL
;
7267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7268 if (_ptr_portname
) {
7269 NDR_PULL_ALLOC(ndr
, r
->portname
);
7273 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7276 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7278 if (ndr_flags
& NDR_BUFFERS
) {
7279 if (r
->printername
) {
7280 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7281 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7282 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7283 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7284 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7285 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
));
7287 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7288 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7292 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7293 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7296 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7297 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
));
7299 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7300 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7304 return NDR_ERR_SUCCESS
;
7307 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7309 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7311 ndr_print_ptr(ndr
, "printername", r
->printername
);
7313 if (r
->printername
) {
7314 ndr_print_string(ndr
, "printername", r
->printername
);
7317 ndr_print_ptr(ndr
, "portname", r
->portname
);
7320 ndr_print_string(ndr
, "portname", r
->portname
);
7323 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7324 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7325 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7329 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7331 if (ndr_flags
& NDR_SCALARS
) {
7332 NDR_CHECK(ndr_push_align(ndr
, 4));
7333 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7334 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7336 if (ndr_flags
& NDR_BUFFERS
) {
7338 return NDR_ERR_SUCCESS
;
7341 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7343 if (ndr_flags
& NDR_SCALARS
) {
7344 NDR_CHECK(ndr_pull_align(ndr
, 4));
7345 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7346 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7348 if (ndr_flags
& NDR_BUFFERS
) {
7350 return NDR_ERR_SUCCESS
;
7353 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7355 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7357 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7361 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7363 if (ndr_flags
& NDR_SCALARS
) {
7364 NDR_CHECK(ndr_push_align(ndr
, 5));
7365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7366 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7367 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7369 if (ndr_flags
& NDR_BUFFERS
) {
7371 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7372 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7373 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7374 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7377 return NDR_ERR_SUCCESS
;
7380 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7383 TALLOC_CTX
*_mem_save_guid_0
;
7384 if (ndr_flags
& NDR_SCALARS
) {
7385 NDR_CHECK(ndr_pull_align(ndr
, 5));
7386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7388 NDR_PULL_ALLOC(ndr
, r
->guid
);
7392 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7393 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7395 if (ndr_flags
& NDR_BUFFERS
) {
7397 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7398 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7401 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
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
->guid
), ndr_get_array_length(ndr
, &r
->guid
));
7404 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
7405 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
7406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7409 return NDR_ERR_SUCCESS
;
7412 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7414 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7416 ndr_print_ptr(ndr
, "guid", r
->guid
);
7419 ndr_print_string(ndr
, "guid", r
->guid
);
7422 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7426 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7428 if (ndr_flags
& NDR_SCALARS
) {
7429 int level
= ndr_push_get_switch_value(ndr
, r
);
7430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7431 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7462 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7466 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7478 if (ndr_flags
& NDR_BUFFERS
) {
7479 int level
= ndr_push_get_switch_value(ndr
, r
);
7483 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7489 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7495 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7501 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7507 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7513 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7519 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7525 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7531 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7537 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7546 return NDR_ERR_SUCCESS
;
7549 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7553 TALLOC_CTX
*_mem_save_info0_0
;
7554 TALLOC_CTX
*_mem_save_info1_0
;
7555 TALLOC_CTX
*_mem_save_info2_0
;
7556 TALLOC_CTX
*_mem_save_info3_0
;
7557 TALLOC_CTX
*_mem_save_info4_0
;
7558 TALLOC_CTX
*_mem_save_info5_0
;
7559 TALLOC_CTX
*_mem_save_info6_0
;
7560 TALLOC_CTX
*_mem_save_info7_0
;
7561 TALLOC_CTX
*_mem_save_info8_0
;
7562 TALLOC_CTX
*_mem_save_info9_0
;
7563 level
= ndr_pull_get_switch_value(ndr
, r
);
7564 if (ndr_flags
& NDR_SCALARS
) {
7565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7566 if (_level
!= level
) {
7567 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7569 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
7572 uint32_t _ptr_info0
;
7573 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7575 NDR_PULL_ALLOC(ndr
, r
->info0
);
7582 uint32_t _ptr_info1
;
7583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7585 NDR_PULL_ALLOC(ndr
, r
->info1
);
7592 uint32_t _ptr_info2
;
7593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7595 NDR_PULL_ALLOC(ndr
, r
->info2
);
7602 uint32_t _ptr_info3
;
7603 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7605 NDR_PULL_ALLOC(ndr
, r
->info3
);
7612 uint32_t _ptr_info4
;
7613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7615 NDR_PULL_ALLOC(ndr
, r
->info4
);
7622 uint32_t _ptr_info5
;
7623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7625 NDR_PULL_ALLOC(ndr
, r
->info5
);
7632 uint32_t _ptr_info6
;
7633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7635 NDR_PULL_ALLOC(ndr
, r
->info6
);
7642 uint32_t _ptr_info7
;
7643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7645 NDR_PULL_ALLOC(ndr
, r
->info7
);
7652 uint32_t _ptr_info8
;
7653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7655 NDR_PULL_ALLOC(ndr
, r
->info8
);
7662 uint32_t _ptr_info9
;
7663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7665 NDR_PULL_ALLOC(ndr
, r
->info9
);
7676 if (ndr_flags
& NDR_BUFFERS
) {
7680 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7681 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7682 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7689 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7690 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7691 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7698 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7699 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7700 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7707 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7708 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7709 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7716 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7717 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7718 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7725 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7726 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7727 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7734 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7735 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7736 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7743 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7744 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7745 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7752 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7753 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7754 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7761 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7762 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7763 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7773 return NDR_ERR_SUCCESS
;
7776 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7779 level
= ndr_print_get_switch_value(ndr
, r
);
7780 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7783 ndr_print_ptr(ndr
, "info0", r
->info0
);
7786 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7792 ndr_print_ptr(ndr
, "info1", r
->info1
);
7795 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7801 ndr_print_ptr(ndr
, "info2", r
->info2
);
7804 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7810 ndr_print_ptr(ndr
, "info3", r
->info3
);
7813 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7819 ndr_print_ptr(ndr
, "info4", r
->info4
);
7822 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7828 ndr_print_ptr(ndr
, "info5", r
->info5
);
7831 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7837 ndr_print_ptr(ndr
, "info6", r
->info6
);
7840 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7846 ndr_print_ptr(ndr
, "info7", r
->info7
);
7849 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7855 ndr_print_ptr(ndr
, "info8", r
->info8
);
7858 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7864 ndr_print_ptr(ndr
, "info9", r
->info9
);
7867 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7878 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7880 if (ndr_flags
& NDR_SCALARS
) {
7881 NDR_CHECK(ndr_push_align(ndr
, 5));
7882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7883 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7884 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7885 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7887 if (ndr_flags
& NDR_BUFFERS
) {
7888 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7890 return NDR_ERR_SUCCESS
;
7893 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7895 if (ndr_flags
& NDR_SCALARS
) {
7896 NDR_CHECK(ndr_pull_align(ndr
, 5));
7897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7898 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7899 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7900 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7902 if (ndr_flags
& NDR_BUFFERS
) {
7903 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7905 return NDR_ERR_SUCCESS
;
7908 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7910 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7912 ndr_print_uint32(ndr
, "level", r
->level
);
7913 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7914 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7918 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7920 if (ndr_flags
& NDR_SCALARS
) {
7921 NDR_CHECK(ndr_push_align(ndr
, 4));
7922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7924 uint32_t _flags_save_string_array
= ndr
->flags
;
7925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7926 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7927 ndr
->flags
= _flags_save_string_array
;
7929 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7931 if (ndr_flags
& NDR_BUFFERS
) {
7933 return NDR_ERR_SUCCESS
;
7936 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7938 if (ndr_flags
& NDR_SCALARS
) {
7939 NDR_CHECK(ndr_pull_align(ndr
, 4));
7940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7942 uint32_t _flags_save_string_array
= ndr
->flags
;
7943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7944 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7945 ndr
->flags
= _flags_save_string_array
;
7947 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7949 if (ndr_flags
& NDR_BUFFERS
) {
7951 return NDR_ERR_SUCCESS
;
7954 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7956 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7958 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
);
7959 ndr_print_string_array(ndr
, "string", r
->string
);
7963 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7965 if (ndr_flags
& NDR_SCALARS
) {
7966 NDR_CHECK(ndr_push_align(ndr
, 5));
7967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7968 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7970 if (ndr_flags
& NDR_BUFFERS
) {
7971 if (r
->driver_name
) {
7972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7975 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7978 return NDR_ERR_SUCCESS
;
7981 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7983 uint32_t _ptr_driver_name
;
7984 TALLOC_CTX
*_mem_save_driver_name_0
;
7985 if (ndr_flags
& NDR_SCALARS
) {
7986 NDR_CHECK(ndr_pull_align(ndr
, 5));
7987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7988 if (_ptr_driver_name
) {
7989 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7991 r
->driver_name
= NULL
;
7993 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7995 if (ndr_flags
& NDR_BUFFERS
) {
7996 if (r
->driver_name
) {
7997 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7998 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7999 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8000 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8001 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8002 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
));
8004 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8005 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8009 return NDR_ERR_SUCCESS
;
8012 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8014 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8016 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8018 if (r
->driver_name
) {
8019 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8025 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8027 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8028 return NDR_ERR_SUCCESS
;
8031 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8034 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8036 return NDR_ERR_SUCCESS
;
8039 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8041 const char *val
= NULL
;
8044 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8045 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8046 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8047 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8049 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8052 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8054 if (ndr_flags
& NDR_SCALARS
) {
8055 NDR_CHECK(ndr_push_align(ndr
, 5));
8056 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8057 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8058 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8061 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8062 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8064 if (ndr_flags
& NDR_BUFFERS
) {
8065 if (r
->driver_name
) {
8066 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8069 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8071 if (r
->architecture
) {
8072 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8073 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8074 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8075 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8077 if (r
->driver_path
) {
8078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8079 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8080 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8081 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8085 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8087 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8089 if (r
->config_file
) {
8090 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8091 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8092 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8093 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8096 return NDR_ERR_SUCCESS
;
8099 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8101 uint32_t _ptr_driver_name
;
8102 TALLOC_CTX
*_mem_save_driver_name_0
;
8103 uint32_t _ptr_architecture
;
8104 TALLOC_CTX
*_mem_save_architecture_0
;
8105 uint32_t _ptr_driver_path
;
8106 TALLOC_CTX
*_mem_save_driver_path_0
;
8107 uint32_t _ptr_data_file
;
8108 TALLOC_CTX
*_mem_save_data_file_0
;
8109 uint32_t _ptr_config_file
;
8110 TALLOC_CTX
*_mem_save_config_file_0
;
8111 if (ndr_flags
& NDR_SCALARS
) {
8112 NDR_CHECK(ndr_pull_align(ndr
, 5));
8113 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8114 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8115 if (_ptr_driver_name
) {
8116 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8118 r
->driver_name
= NULL
;
8120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8121 if (_ptr_architecture
) {
8122 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8124 r
->architecture
= NULL
;
8126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8127 if (_ptr_driver_path
) {
8128 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8130 r
->driver_path
= NULL
;
8132 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8133 if (_ptr_data_file
) {
8134 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8136 r
->data_file
= NULL
;
8138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8139 if (_ptr_config_file
) {
8140 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8142 r
->config_file
= NULL
;
8144 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8146 if (ndr_flags
& NDR_BUFFERS
) {
8147 if (r
->driver_name
) {
8148 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8149 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8151 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8152 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8153 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
));
8155 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8156 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8159 if (r
->architecture
) {
8160 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8161 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8162 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8163 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8164 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8165 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
));
8167 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8168 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8171 if (r
->driver_path
) {
8172 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8173 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8174 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8175 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8176 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8177 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
));
8179 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8180 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8184 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8185 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8187 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8188 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8189 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8191 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8195 if (r
->config_file
) {
8196 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8197 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8200 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8201 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
8203 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8204 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8208 return NDR_ERR_SUCCESS
;
8211 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8213 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8215 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8216 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8218 if (r
->driver_name
) {
8219 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8222 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8224 if (r
->architecture
) {
8225 ndr_print_string(ndr
, "architecture", r
->architecture
);
8228 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8230 if (r
->driver_path
) {
8231 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8234 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8237 ndr_print_string(ndr
, "data_file", r
->data_file
);
8240 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8242 if (r
->config_file
) {
8243 ndr_print_string(ndr
, "config_file", r
->config_file
);
8249 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8251 if (ndr_flags
& NDR_SCALARS
) {
8252 NDR_CHECK(ndr_push_align(ndr
, 5));
8253 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8257 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8258 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8259 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8263 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8264 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8266 if (ndr_flags
& NDR_BUFFERS
) {
8267 if (r
->driver_name
) {
8268 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8269 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8271 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8273 if (r
->architecture
) {
8274 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8275 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8276 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8277 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8279 if (r
->driver_path
) {
8280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8281 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8283 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8286 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8287 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8288 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8289 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8291 if (r
->config_file
) {
8292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8293 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8295 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8298 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8301 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8303 if (r
->monitor_name
) {
8304 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8305 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8307 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8309 if (r
->default_datatype
) {
8310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8311 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8313 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8315 if (r
->dependent_files
) {
8316 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8319 return NDR_ERR_SUCCESS
;
8322 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8324 uint32_t _ptr_driver_name
;
8325 TALLOC_CTX
*_mem_save_driver_name_0
;
8326 uint32_t _ptr_architecture
;
8327 TALLOC_CTX
*_mem_save_architecture_0
;
8328 uint32_t _ptr_driver_path
;
8329 TALLOC_CTX
*_mem_save_driver_path_0
;
8330 uint32_t _ptr_data_file
;
8331 TALLOC_CTX
*_mem_save_data_file_0
;
8332 uint32_t _ptr_config_file
;
8333 TALLOC_CTX
*_mem_save_config_file_0
;
8334 uint32_t _ptr_help_file
;
8335 TALLOC_CTX
*_mem_save_help_file_0
;
8336 uint32_t _ptr_monitor_name
;
8337 TALLOC_CTX
*_mem_save_monitor_name_0
;
8338 uint32_t _ptr_default_datatype
;
8339 TALLOC_CTX
*_mem_save_default_datatype_0
;
8340 uint32_t _ptr_dependent_files
;
8341 TALLOC_CTX
*_mem_save_dependent_files_0
;
8342 if (ndr_flags
& NDR_SCALARS
) {
8343 NDR_CHECK(ndr_pull_align(ndr
, 5));
8344 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8346 if (_ptr_driver_name
) {
8347 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8349 r
->driver_name
= NULL
;
8351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8352 if (_ptr_architecture
) {
8353 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8355 r
->architecture
= NULL
;
8357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8358 if (_ptr_driver_path
) {
8359 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8361 r
->driver_path
= NULL
;
8363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8364 if (_ptr_data_file
) {
8365 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8367 r
->data_file
= NULL
;
8369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8370 if (_ptr_config_file
) {
8371 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8373 r
->config_file
= NULL
;
8375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8376 if (_ptr_help_file
) {
8377 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8379 r
->help_file
= NULL
;
8381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8382 if (_ptr_monitor_name
) {
8383 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8385 r
->monitor_name
= NULL
;
8387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8388 if (_ptr_default_datatype
) {
8389 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8391 r
->default_datatype
= NULL
;
8393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8394 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8395 if (_ptr_dependent_files
) {
8396 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8398 r
->dependent_files
= NULL
;
8400 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8402 if (ndr_flags
& NDR_BUFFERS
) {
8403 if (r
->driver_name
) {
8404 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8405 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8406 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8407 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8408 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8409 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
));
8411 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8412 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8415 if (r
->architecture
) {
8416 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8417 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8419 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8420 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8421 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
));
8423 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8424 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8427 if (r
->driver_path
) {
8428 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8429 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8430 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8431 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8432 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8433 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
));
8435 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8436 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8440 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8441 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8442 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8443 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8444 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8445 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
));
8447 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8448 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8451 if (r
->config_file
) {
8452 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8453 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8455 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8456 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8457 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
));
8459 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8460 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8464 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8465 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8466 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8467 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8468 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8469 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
));
8471 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8472 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8475 if (r
->monitor_name
) {
8476 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8477 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8478 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8479 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8480 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8481 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
));
8483 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8484 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8487 if (r
->default_datatype
) {
8488 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8489 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8490 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8491 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8492 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8493 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
));
8495 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8496 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8499 if (r
->dependent_files
) {
8500 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8501 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8502 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8506 return NDR_ERR_SUCCESS
;
8509 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
8511 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
8513 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8514 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8516 if (r
->driver_name
) {
8517 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8520 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8522 if (r
->architecture
) {
8523 ndr_print_string(ndr
, "architecture", r
->architecture
);
8526 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8528 if (r
->driver_path
) {
8529 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8532 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8535 ndr_print_string(ndr
, "data_file", r
->data_file
);
8538 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8540 if (r
->config_file
) {
8541 ndr_print_string(ndr
, "config_file", r
->config_file
);
8544 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8547 ndr_print_string(ndr
, "help_file", r
->help_file
);
8550 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8552 if (r
->monitor_name
) {
8553 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8556 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8558 if (r
->default_datatype
) {
8559 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8562 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
);
8563 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8565 if (r
->dependent_files
) {
8566 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8572 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8574 if (ndr_flags
& NDR_SCALARS
) {
8575 NDR_CHECK(ndr_push_align(ndr
, 5));
8576 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8578 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8589 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8591 if (ndr_flags
& NDR_BUFFERS
) {
8592 if (r
->driver_name
) {
8593 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8596 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8598 if (r
->architecture
) {
8599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8601 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8602 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8604 if (r
->driver_path
) {
8605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8608 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8612 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8613 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8614 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8616 if (r
->config_file
) {
8617 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8620 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8623 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8624 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8625 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8626 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8628 if (r
->monitor_name
) {
8629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8630 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8632 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8634 if (r
->default_datatype
) {
8635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8638 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8640 if (r
->dependent_files
) {
8641 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8643 if (r
->previous_names
) {
8644 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8647 return NDR_ERR_SUCCESS
;
8650 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8652 uint32_t _ptr_driver_name
;
8653 TALLOC_CTX
*_mem_save_driver_name_0
;
8654 uint32_t _ptr_architecture
;
8655 TALLOC_CTX
*_mem_save_architecture_0
;
8656 uint32_t _ptr_driver_path
;
8657 TALLOC_CTX
*_mem_save_driver_path_0
;
8658 uint32_t _ptr_data_file
;
8659 TALLOC_CTX
*_mem_save_data_file_0
;
8660 uint32_t _ptr_config_file
;
8661 TALLOC_CTX
*_mem_save_config_file_0
;
8662 uint32_t _ptr_help_file
;
8663 TALLOC_CTX
*_mem_save_help_file_0
;
8664 uint32_t _ptr_monitor_name
;
8665 TALLOC_CTX
*_mem_save_monitor_name_0
;
8666 uint32_t _ptr_default_datatype
;
8667 TALLOC_CTX
*_mem_save_default_datatype_0
;
8668 uint32_t _ptr_dependent_files
;
8669 TALLOC_CTX
*_mem_save_dependent_files_0
;
8670 uint32_t _ptr_previous_names
;
8671 TALLOC_CTX
*_mem_save_previous_names_0
;
8672 if (ndr_flags
& NDR_SCALARS
) {
8673 NDR_CHECK(ndr_pull_align(ndr
, 5));
8674 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8676 if (_ptr_driver_name
) {
8677 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8679 r
->driver_name
= NULL
;
8681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8682 if (_ptr_architecture
) {
8683 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8685 r
->architecture
= NULL
;
8687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8688 if (_ptr_driver_path
) {
8689 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8691 r
->driver_path
= NULL
;
8693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8694 if (_ptr_data_file
) {
8695 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8697 r
->data_file
= NULL
;
8699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8700 if (_ptr_config_file
) {
8701 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8703 r
->config_file
= NULL
;
8705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8706 if (_ptr_help_file
) {
8707 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8709 r
->help_file
= NULL
;
8711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8712 if (_ptr_monitor_name
) {
8713 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8715 r
->monitor_name
= NULL
;
8717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8718 if (_ptr_default_datatype
) {
8719 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8721 r
->default_datatype
= NULL
;
8723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8725 if (_ptr_dependent_files
) {
8726 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8728 r
->dependent_files
= NULL
;
8730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8732 if (_ptr_previous_names
) {
8733 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8735 r
->previous_names
= NULL
;
8737 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8739 if (ndr_flags
& NDR_BUFFERS
) {
8740 if (r
->driver_name
) {
8741 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8742 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8743 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8744 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8745 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8746 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
));
8748 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8749 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8752 if (r
->architecture
) {
8753 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8754 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8757 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8758 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
));
8760 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8764 if (r
->driver_path
) {
8765 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8766 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8767 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8768 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8769 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8770 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
));
8772 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8773 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8774 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8777 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8778 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8779 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8780 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8781 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8782 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
));
8784 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8785 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8788 if (r
->config_file
) {
8789 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8790 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8791 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8792 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8793 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8794 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
));
8796 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8797 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8801 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8802 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8803 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8804 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8805 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8806 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
));
8808 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8809 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8812 if (r
->monitor_name
) {
8813 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8814 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8815 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8816 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8817 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8818 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
));
8820 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8821 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8824 if (r
->default_datatype
) {
8825 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8826 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8827 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8828 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8829 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8830 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
));
8832 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8833 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8836 if (r
->dependent_files
) {
8837 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8838 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8839 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8842 if (r
->previous_names
) {
8843 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8844 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8845 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8849 return NDR_ERR_SUCCESS
;
8852 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8854 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8856 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8857 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8859 if (r
->driver_name
) {
8860 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8863 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8865 if (r
->architecture
) {
8866 ndr_print_string(ndr
, "architecture", r
->architecture
);
8869 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8871 if (r
->driver_path
) {
8872 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8875 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8878 ndr_print_string(ndr
, "data_file", r
->data_file
);
8881 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8883 if (r
->config_file
) {
8884 ndr_print_string(ndr
, "config_file", r
->config_file
);
8887 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8890 ndr_print_string(ndr
, "help_file", r
->help_file
);
8893 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8895 if (r
->monitor_name
) {
8896 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8899 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8901 if (r
->default_datatype
) {
8902 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8905 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
);
8906 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8908 if (r
->dependent_files
) {
8909 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8912 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
);
8913 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8915 if (r
->previous_names
) {
8916 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8922 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8925 return NDR_ERR_SUCCESS
;
8928 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8933 return NDR_ERR_SUCCESS
;
8936 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8938 ndr_print_uint32(ndr
, name
, r
);
8940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
8944 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8946 if (ndr_flags
& NDR_SCALARS
) {
8947 NDR_CHECK(ndr_push_align(ndr
, 8));
8948 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8949 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8961 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8962 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8967 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
8969 if (ndr_flags
& NDR_BUFFERS
) {
8970 if (r
->driver_name
) {
8971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8974 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8976 if (r
->architecture
) {
8977 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8978 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8980 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8982 if (r
->driver_path
) {
8983 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8984 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8986 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8989 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8990 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8992 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8994 if (r
->config_file
) {
8995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8996 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8998 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9004 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9006 if (r
->monitor_name
) {
9007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9008 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9012 if (r
->default_datatype
) {
9013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9014 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9016 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9018 if (r
->dependent_files
) {
9019 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9021 if (r
->previous_names
) {
9022 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9024 if (r
->manufacturer_name
) {
9025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9030 if (r
->manufacturer_url
) {
9031 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9032 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9033 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9034 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9036 if (r
->hardware_id
) {
9037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9038 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9039 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9040 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9043 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9044 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9045 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9046 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9049 return NDR_ERR_SUCCESS
;
9052 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9054 uint32_t _ptr_driver_name
;
9055 TALLOC_CTX
*_mem_save_driver_name_0
;
9056 uint32_t _ptr_architecture
;
9057 TALLOC_CTX
*_mem_save_architecture_0
;
9058 uint32_t _ptr_driver_path
;
9059 TALLOC_CTX
*_mem_save_driver_path_0
;
9060 uint32_t _ptr_data_file
;
9061 TALLOC_CTX
*_mem_save_data_file_0
;
9062 uint32_t _ptr_config_file
;
9063 TALLOC_CTX
*_mem_save_config_file_0
;
9064 uint32_t _ptr_help_file
;
9065 TALLOC_CTX
*_mem_save_help_file_0
;
9066 uint32_t _ptr_monitor_name
;
9067 TALLOC_CTX
*_mem_save_monitor_name_0
;
9068 uint32_t _ptr_default_datatype
;
9069 TALLOC_CTX
*_mem_save_default_datatype_0
;
9070 uint32_t _ptr_dependent_files
;
9071 TALLOC_CTX
*_mem_save_dependent_files_0
;
9072 uint32_t _ptr_previous_names
;
9073 TALLOC_CTX
*_mem_save_previous_names_0
;
9074 uint32_t _ptr_manufacturer_name
;
9075 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9076 uint32_t _ptr_manufacturer_url
;
9077 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9078 uint32_t _ptr_hardware_id
;
9079 TALLOC_CTX
*_mem_save_hardware_id_0
;
9080 uint32_t _ptr_provider
;
9081 TALLOC_CTX
*_mem_save_provider_0
;
9082 if (ndr_flags
& NDR_SCALARS
) {
9083 NDR_CHECK(ndr_pull_align(ndr
, 8));
9084 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9086 if (_ptr_driver_name
) {
9087 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9089 r
->driver_name
= NULL
;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9092 if (_ptr_architecture
) {
9093 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9095 r
->architecture
= NULL
;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9098 if (_ptr_driver_path
) {
9099 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9101 r
->driver_path
= NULL
;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9104 if (_ptr_data_file
) {
9105 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9107 r
->data_file
= NULL
;
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9110 if (_ptr_config_file
) {
9111 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9113 r
->config_file
= NULL
;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9116 if (_ptr_help_file
) {
9117 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9119 r
->help_file
= NULL
;
9121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9122 if (_ptr_monitor_name
) {
9123 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9125 r
->monitor_name
= NULL
;
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9128 if (_ptr_default_datatype
) {
9129 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9131 r
->default_datatype
= NULL
;
9133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9134 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9135 if (_ptr_dependent_files
) {
9136 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9138 r
->dependent_files
= NULL
;
9140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9142 if (_ptr_previous_names
) {
9143 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9145 r
->previous_names
= NULL
;
9147 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9148 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9150 if (_ptr_manufacturer_name
) {
9151 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9153 r
->manufacturer_name
= NULL
;
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9156 if (_ptr_manufacturer_url
) {
9157 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9159 r
->manufacturer_url
= NULL
;
9161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9162 if (_ptr_hardware_id
) {
9163 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9165 r
->hardware_id
= NULL
;
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9168 if (_ptr_provider
) {
9169 NDR_PULL_ALLOC(ndr
, r
->provider
);
9173 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9175 if (ndr_flags
& NDR_BUFFERS
) {
9176 if (r
->driver_name
) {
9177 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9178 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9180 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9181 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9182 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
));
9184 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9185 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9188 if (r
->architecture
) {
9189 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9190 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9191 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9192 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9193 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9194 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
));
9196 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9197 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9200 if (r
->driver_path
) {
9201 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9202 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9203 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9204 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9205 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9206 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
));
9208 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9209 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9213 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9214 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9215 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9216 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9217 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9218 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
));
9220 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9221 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9224 if (r
->config_file
) {
9225 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9226 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9227 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9228 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9229 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9230 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
));
9232 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9233 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9237 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9238 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9239 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9240 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9241 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9242 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
));
9244 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9245 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9248 if (r
->monitor_name
) {
9249 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9250 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9251 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9252 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9253 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9254 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
));
9256 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9257 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9260 if (r
->default_datatype
) {
9261 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9262 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9263 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9264 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9265 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9266 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
));
9268 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9269 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9272 if (r
->dependent_files
) {
9273 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9274 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9275 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9278 if (r
->previous_names
) {
9279 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9280 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9281 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9284 if (r
->manufacturer_name
) {
9285 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9286 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9287 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9288 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9289 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9290 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
));
9292 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9293 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9294 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9296 if (r
->manufacturer_url
) {
9297 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9298 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9299 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9300 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9301 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9302 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
));
9304 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9305 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9308 if (r
->hardware_id
) {
9309 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9310 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9312 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9313 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9314 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
));
9316 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9321 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9322 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9323 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9324 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9325 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9326 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
));
9328 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9329 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9333 return NDR_ERR_SUCCESS
;
9336 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9338 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9340 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9341 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9343 if (r
->driver_name
) {
9344 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9347 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9349 if (r
->architecture
) {
9350 ndr_print_string(ndr
, "architecture", r
->architecture
);
9353 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9355 if (r
->driver_path
) {
9356 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9359 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9362 ndr_print_string(ndr
, "data_file", r
->data_file
);
9365 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9367 if (r
->config_file
) {
9368 ndr_print_string(ndr
, "config_file", r
->config_file
);
9371 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9374 ndr_print_string(ndr
, "help_file", r
->help_file
);
9377 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9379 if (r
->monitor_name
) {
9380 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9383 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9385 if (r
->default_datatype
) {
9386 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9389 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
);
9390 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9392 if (r
->dependent_files
) {
9393 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9396 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
);
9397 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9399 if (r
->previous_names
) {
9400 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9403 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9404 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9405 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9407 if (r
->manufacturer_name
) {
9408 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9411 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9413 if (r
->manufacturer_url
) {
9414 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9417 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9419 if (r
->hardware_id
) {
9420 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9423 ndr_print_ptr(ndr
, "provider", r
->provider
);
9426 ndr_print_string(ndr
, "provider", r
->provider
);
9432 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9434 if (ndr_flags
& NDR_SCALARS
) {
9435 NDR_CHECK(ndr_push_align(ndr
, 8));
9436 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9437 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9443 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9444 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9449 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9450 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9452 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9456 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9462 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9463 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9464 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9465 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9467 if (ndr_flags
& NDR_BUFFERS
) {
9468 if (r
->driver_name
) {
9469 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9470 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9472 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9474 if (r
->architecture
) {
9475 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9478 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9480 if (r
->driver_path
) {
9481 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9482 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9484 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9492 if (r
->config_file
) {
9493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9496 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9499 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9502 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9504 if (r
->monitor_name
) {
9505 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9506 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9508 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9510 if (r
->default_datatype
) {
9511 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9512 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9514 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9516 if (r
->dependent_files
) {
9517 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9519 if (r
->previous_names
) {
9520 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9522 if (r
->manufacturer_name
) {
9523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9524 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9528 if (r
->manufacturer_url
) {
9529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9530 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9532 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9534 if (r
->hardware_id
) {
9535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9536 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9538 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9542 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9543 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9544 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9546 if (r
->print_processor
) {
9547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9548 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9549 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9550 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9552 if (r
->vendor_setup
) {
9553 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9554 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9556 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9558 if (r
->color_profiles
) {
9559 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9565 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9567 if (r
->core_driver_dependencies
) {
9568 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9571 return NDR_ERR_SUCCESS
;
9574 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9576 uint32_t _ptr_driver_name
;
9577 TALLOC_CTX
*_mem_save_driver_name_0
;
9578 uint32_t _ptr_architecture
;
9579 TALLOC_CTX
*_mem_save_architecture_0
;
9580 uint32_t _ptr_driver_path
;
9581 TALLOC_CTX
*_mem_save_driver_path_0
;
9582 uint32_t _ptr_data_file
;
9583 TALLOC_CTX
*_mem_save_data_file_0
;
9584 uint32_t _ptr_config_file
;
9585 TALLOC_CTX
*_mem_save_config_file_0
;
9586 uint32_t _ptr_help_file
;
9587 TALLOC_CTX
*_mem_save_help_file_0
;
9588 uint32_t _ptr_monitor_name
;
9589 TALLOC_CTX
*_mem_save_monitor_name_0
;
9590 uint32_t _ptr_default_datatype
;
9591 TALLOC_CTX
*_mem_save_default_datatype_0
;
9592 uint32_t _ptr_dependent_files
;
9593 TALLOC_CTX
*_mem_save_dependent_files_0
;
9594 uint32_t _ptr_previous_names
;
9595 TALLOC_CTX
*_mem_save_previous_names_0
;
9596 uint32_t _ptr_manufacturer_name
;
9597 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9598 uint32_t _ptr_manufacturer_url
;
9599 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9600 uint32_t _ptr_hardware_id
;
9601 TALLOC_CTX
*_mem_save_hardware_id_0
;
9602 uint32_t _ptr_provider
;
9603 TALLOC_CTX
*_mem_save_provider_0
;
9604 uint32_t _ptr_print_processor
;
9605 TALLOC_CTX
*_mem_save_print_processor_0
;
9606 uint32_t _ptr_vendor_setup
;
9607 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9608 uint32_t _ptr_color_profiles
;
9609 TALLOC_CTX
*_mem_save_color_profiles_0
;
9610 uint32_t _ptr_inf_path
;
9611 TALLOC_CTX
*_mem_save_inf_path_0
;
9612 uint32_t _ptr_core_driver_dependencies
;
9613 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9614 if (ndr_flags
& NDR_SCALARS
) {
9615 NDR_CHECK(ndr_pull_align(ndr
, 8));
9616 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9618 if (_ptr_driver_name
) {
9619 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9621 r
->driver_name
= NULL
;
9623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9624 if (_ptr_architecture
) {
9625 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9627 r
->architecture
= NULL
;
9629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9630 if (_ptr_driver_path
) {
9631 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9633 r
->driver_path
= NULL
;
9635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9636 if (_ptr_data_file
) {
9637 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9639 r
->data_file
= NULL
;
9641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9642 if (_ptr_config_file
) {
9643 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9645 r
->config_file
= NULL
;
9647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9648 if (_ptr_help_file
) {
9649 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9651 r
->help_file
= NULL
;
9653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9654 if (_ptr_monitor_name
) {
9655 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9657 r
->monitor_name
= NULL
;
9659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9660 if (_ptr_default_datatype
) {
9661 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9663 r
->default_datatype
= NULL
;
9665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9666 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9667 if (_ptr_dependent_files
) {
9668 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9670 r
->dependent_files
= NULL
;
9672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9673 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9674 if (_ptr_previous_names
) {
9675 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9677 r
->previous_names
= NULL
;
9679 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9680 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9682 if (_ptr_manufacturer_name
) {
9683 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9685 r
->manufacturer_name
= NULL
;
9687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9688 if (_ptr_manufacturer_url
) {
9689 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9691 r
->manufacturer_url
= NULL
;
9693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9694 if (_ptr_hardware_id
) {
9695 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9697 r
->hardware_id
= NULL
;
9699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9700 if (_ptr_provider
) {
9701 NDR_PULL_ALLOC(ndr
, r
->provider
);
9705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9706 if (_ptr_print_processor
) {
9707 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9709 r
->print_processor
= NULL
;
9711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9712 if (_ptr_vendor_setup
) {
9713 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9715 r
->vendor_setup
= NULL
;
9717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9719 if (_ptr_color_profiles
) {
9720 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9722 r
->color_profiles
= NULL
;
9724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9725 if (_ptr_inf_path
) {
9726 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9733 if (_ptr_core_driver_dependencies
) {
9734 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9736 r
->core_driver_dependencies
= NULL
;
9738 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9739 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9740 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9742 if (ndr_flags
& NDR_BUFFERS
) {
9743 if (r
->driver_name
) {
9744 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9745 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9746 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9747 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9748 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9749 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
));
9751 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9752 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9755 if (r
->architecture
) {
9756 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9757 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9758 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9759 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9760 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9761 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
));
9763 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9764 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9767 if (r
->driver_path
) {
9768 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9769 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9772 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9773 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
));
9775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9780 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9781 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9782 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9783 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9784 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9785 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
));
9787 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9788 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9789 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9791 if (r
->config_file
) {
9792 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9793 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9796 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9797 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
));
9799 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9804 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9805 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9806 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9807 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9808 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9809 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
));
9811 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9812 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9815 if (r
->monitor_name
) {
9816 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9817 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9818 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9819 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9820 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9821 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
));
9823 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9824 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9827 if (r
->default_datatype
) {
9828 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9829 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9830 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9831 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9832 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9833 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
));
9835 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9836 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9839 if (r
->dependent_files
) {
9840 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9841 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9842 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9845 if (r
->previous_names
) {
9846 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9847 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9848 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9851 if (r
->manufacturer_name
) {
9852 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9853 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9856 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9857 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
));
9859 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9860 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9863 if (r
->manufacturer_url
) {
9864 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9865 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9868 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9869 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
));
9871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9875 if (r
->hardware_id
) {
9876 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9877 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9880 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9881 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
));
9883 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9884 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9888 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9889 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9891 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9892 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9893 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
));
9895 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9896 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9899 if (r
->print_processor
) {
9900 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9901 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9902 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9903 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9904 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9905 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
));
9907 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9908 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9911 if (r
->vendor_setup
) {
9912 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9913 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9914 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9915 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9916 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9917 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
));
9919 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9920 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9923 if (r
->color_profiles
) {
9924 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9925 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9926 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9930 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9931 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9934 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9935 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
));
9937 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9938 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9941 if (r
->core_driver_dependencies
) {
9942 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9943 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9944 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9948 return NDR_ERR_SUCCESS
;
9951 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9953 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9955 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9956 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9958 if (r
->driver_name
) {
9959 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9962 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9964 if (r
->architecture
) {
9965 ndr_print_string(ndr
, "architecture", r
->architecture
);
9968 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9970 if (r
->driver_path
) {
9971 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9974 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9977 ndr_print_string(ndr
, "data_file", r
->data_file
);
9980 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9982 if (r
->config_file
) {
9983 ndr_print_string(ndr
, "config_file", r
->config_file
);
9986 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9989 ndr_print_string(ndr
, "help_file", r
->help_file
);
9992 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9994 if (r
->monitor_name
) {
9995 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9998 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10000 if (r
->default_datatype
) {
10001 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10004 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
);
10005 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10007 if (r
->dependent_files
) {
10008 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10011 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
);
10012 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10014 if (r
->previous_names
) {
10015 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10018 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10019 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10020 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10022 if (r
->manufacturer_name
) {
10023 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10026 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10028 if (r
->manufacturer_url
) {
10029 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10032 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10034 if (r
->hardware_id
) {
10035 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10038 ndr_print_ptr(ndr
, "provider", r
->provider
);
10041 ndr_print_string(ndr
, "provider", r
->provider
);
10044 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10046 if (r
->print_processor
) {
10047 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10050 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10052 if (r
->vendor_setup
) {
10053 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10056 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
);
10057 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10059 if (r
->color_profiles
) {
10060 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10063 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10066 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10069 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10070 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
);
10071 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10073 if (r
->core_driver_dependencies
) {
10074 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10077 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10078 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10082 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10084 if (ndr_flags
& NDR_SCALARS
) {
10085 int level
= ndr_push_get_switch_value(ndr
, r
);
10086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10087 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10114 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10117 if (ndr_flags
& NDR_BUFFERS
) {
10118 int level
= ndr_push_get_switch_value(ndr
, r
);
10122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10128 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10134 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10140 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10146 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10152 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10157 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10160 return NDR_ERR_SUCCESS
;
10163 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10167 TALLOC_CTX
*_mem_save_info1_0
;
10168 TALLOC_CTX
*_mem_save_info2_0
;
10169 TALLOC_CTX
*_mem_save_info3_0
;
10170 TALLOC_CTX
*_mem_save_info4_0
;
10171 TALLOC_CTX
*_mem_save_info6_0
;
10172 TALLOC_CTX
*_mem_save_info8_0
;
10173 level
= ndr_pull_get_switch_value(ndr
, r
);
10174 if (ndr_flags
& NDR_SCALARS
) {
10175 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10176 if (_level
!= level
) {
10177 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10179 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10182 uint32_t _ptr_info1
;
10183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10185 NDR_PULL_ALLOC(ndr
, r
->info1
);
10192 uint32_t _ptr_info2
;
10193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10195 NDR_PULL_ALLOC(ndr
, r
->info2
);
10202 uint32_t _ptr_info3
;
10203 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10205 NDR_PULL_ALLOC(ndr
, r
->info3
);
10212 uint32_t _ptr_info4
;
10213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10215 NDR_PULL_ALLOC(ndr
, r
->info4
);
10222 uint32_t _ptr_info6
;
10223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10225 NDR_PULL_ALLOC(ndr
, r
->info6
);
10232 uint32_t _ptr_info8
;
10233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10235 NDR_PULL_ALLOC(ndr
, r
->info8
);
10242 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10245 if (ndr_flags
& NDR_BUFFERS
) {
10249 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10250 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10251 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10258 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10259 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10260 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10267 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10268 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10269 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10276 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10277 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10278 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10285 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10286 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10287 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10294 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10295 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10296 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10302 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10305 return NDR_ERR_SUCCESS
;
10308 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10311 level
= ndr_print_get_switch_value(ndr
, r
);
10312 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10315 ndr_print_ptr(ndr
, "info1", r
->info1
);
10318 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10324 ndr_print_ptr(ndr
, "info2", r
->info2
);
10327 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10333 ndr_print_ptr(ndr
, "info3", r
->info3
);
10336 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10342 ndr_print_ptr(ndr
, "info4", r
->info4
);
10345 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10351 ndr_print_ptr(ndr
, "info6", r
->info6
);
10354 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10360 ndr_print_ptr(ndr
, "info8", r
->info8
);
10363 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10369 ndr_print_bad_level(ndr
, name
, level
);
10373 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10375 if (ndr_flags
& NDR_SCALARS
) {
10376 NDR_CHECK(ndr_push_align(ndr
, 5));
10377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10378 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10379 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10380 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10382 if (ndr_flags
& NDR_BUFFERS
) {
10383 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10385 return NDR_ERR_SUCCESS
;
10388 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10390 if (ndr_flags
& NDR_SCALARS
) {
10391 NDR_CHECK(ndr_pull_align(ndr
, 5));
10392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10393 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10394 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10395 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10397 if (ndr_flags
& NDR_BUFFERS
) {
10398 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10400 return NDR_ERR_SUCCESS
;
10403 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10405 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10407 ndr_print_uint32(ndr
, "level", r
->level
);
10408 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10409 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10413 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10415 if (ndr_flags
& NDR_SCALARS
) {
10416 NDR_CHECK(ndr_push_align(ndr
, 5));
10418 uint32_t _flags_save_string
= ndr
->flags
;
10419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10420 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10421 ndr
->flags
= _flags_save_string
;
10423 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10425 if (ndr_flags
& NDR_BUFFERS
) {
10427 uint32_t _flags_save_string
= ndr
->flags
;
10428 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10429 if (r
->driver_name
) {
10430 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10431 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10433 ndr
->flags
= _flags_save_string
;
10436 return NDR_ERR_SUCCESS
;
10439 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10441 uint32_t _ptr_driver_name
;
10442 TALLOC_CTX
*_mem_save_driver_name_0
;
10443 if (ndr_flags
& NDR_SCALARS
) {
10444 NDR_CHECK(ndr_pull_align(ndr
, 5));
10446 uint32_t _flags_save_string
= ndr
->flags
;
10447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10449 if (_ptr_driver_name
) {
10450 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10451 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10453 r
->driver_name
= NULL
;
10455 ndr
->flags
= _flags_save_string
;
10457 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10459 if (ndr_flags
& NDR_BUFFERS
) {
10461 uint32_t _flags_save_string
= ndr
->flags
;
10462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10463 if (r
->driver_name
) {
10464 uint32_t _relative_save_offset
;
10465 _relative_save_offset
= ndr
->offset
;
10466 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10467 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10468 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10469 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10471 ndr
->offset
= _relative_save_offset
;
10473 ndr
->flags
= _flags_save_string
;
10476 return NDR_ERR_SUCCESS
;
10479 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10481 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
10483 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10485 if (r
->driver_name
) {
10486 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10492 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10494 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
10497 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
10499 if (ndr_flags
& NDR_SCALARS
) {
10500 NDR_CHECK(ndr_push_align(ndr
, 5));
10501 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10503 uint32_t _flags_save_string
= ndr
->flags
;
10504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10505 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10506 ndr
->flags
= _flags_save_string
;
10509 uint32_t _flags_save_string
= ndr
->flags
;
10510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10511 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10512 ndr
->flags
= _flags_save_string
;
10515 uint32_t _flags_save_string
= ndr
->flags
;
10516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10517 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10518 ndr
->flags
= _flags_save_string
;
10521 uint32_t _flags_save_string
= ndr
->flags
;
10522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10524 ndr
->flags
= _flags_save_string
;
10527 uint32_t _flags_save_string
= ndr
->flags
;
10528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10530 ndr
->flags
= _flags_save_string
;
10532 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10534 if (ndr_flags
& NDR_BUFFERS
) {
10536 uint32_t _flags_save_string
= ndr
->flags
;
10537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10538 if (r
->driver_name
) {
10539 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10540 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10542 ndr
->flags
= _flags_save_string
;
10545 uint32_t _flags_save_string
= ndr
->flags
;
10546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10547 if (r
->architecture
) {
10548 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10549 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10551 ndr
->flags
= _flags_save_string
;
10554 uint32_t _flags_save_string
= ndr
->flags
;
10555 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10556 if (r
->driver_path
) {
10557 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10558 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10560 ndr
->flags
= _flags_save_string
;
10563 uint32_t _flags_save_string
= ndr
->flags
;
10564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10565 if (r
->data_file
) {
10566 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10567 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10569 ndr
->flags
= _flags_save_string
;
10572 uint32_t _flags_save_string
= ndr
->flags
;
10573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10574 if (r
->config_file
) {
10575 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10576 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10578 ndr
->flags
= _flags_save_string
;
10581 return NDR_ERR_SUCCESS
;
10584 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10586 uint32_t _ptr_driver_name
;
10587 TALLOC_CTX
*_mem_save_driver_name_0
;
10588 uint32_t _ptr_architecture
;
10589 TALLOC_CTX
*_mem_save_architecture_0
;
10590 uint32_t _ptr_driver_path
;
10591 TALLOC_CTX
*_mem_save_driver_path_0
;
10592 uint32_t _ptr_data_file
;
10593 TALLOC_CTX
*_mem_save_data_file_0
;
10594 uint32_t _ptr_config_file
;
10595 TALLOC_CTX
*_mem_save_config_file_0
;
10596 if (ndr_flags
& NDR_SCALARS
) {
10597 NDR_CHECK(ndr_pull_align(ndr
, 5));
10598 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10600 uint32_t _flags_save_string
= ndr
->flags
;
10601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10602 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10603 if (_ptr_driver_name
) {
10604 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10605 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10607 r
->driver_name
= NULL
;
10609 ndr
->flags
= _flags_save_string
;
10612 uint32_t _flags_save_string
= ndr
->flags
;
10613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10615 if (_ptr_architecture
) {
10616 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10617 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10619 r
->architecture
= NULL
;
10621 ndr
->flags
= _flags_save_string
;
10624 uint32_t _flags_save_string
= ndr
->flags
;
10625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10627 if (_ptr_driver_path
) {
10628 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10629 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10631 r
->driver_path
= NULL
;
10633 ndr
->flags
= _flags_save_string
;
10636 uint32_t _flags_save_string
= ndr
->flags
;
10637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10639 if (_ptr_data_file
) {
10640 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10641 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10643 r
->data_file
= NULL
;
10645 ndr
->flags
= _flags_save_string
;
10648 uint32_t _flags_save_string
= ndr
->flags
;
10649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10651 if (_ptr_config_file
) {
10652 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10653 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10655 r
->config_file
= NULL
;
10657 ndr
->flags
= _flags_save_string
;
10659 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10661 if (ndr_flags
& NDR_BUFFERS
) {
10663 uint32_t _flags_save_string
= ndr
->flags
;
10664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10665 if (r
->driver_name
) {
10666 uint32_t _relative_save_offset
;
10667 _relative_save_offset
= ndr
->offset
;
10668 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10669 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10670 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10671 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10673 ndr
->offset
= _relative_save_offset
;
10675 ndr
->flags
= _flags_save_string
;
10678 uint32_t _flags_save_string
= ndr
->flags
;
10679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10680 if (r
->architecture
) {
10681 uint32_t _relative_save_offset
;
10682 _relative_save_offset
= ndr
->offset
;
10683 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10684 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10685 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10686 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10688 ndr
->offset
= _relative_save_offset
;
10690 ndr
->flags
= _flags_save_string
;
10693 uint32_t _flags_save_string
= ndr
->flags
;
10694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10695 if (r
->driver_path
) {
10696 uint32_t _relative_save_offset
;
10697 _relative_save_offset
= ndr
->offset
;
10698 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10699 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10700 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10701 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10703 ndr
->offset
= _relative_save_offset
;
10705 ndr
->flags
= _flags_save_string
;
10708 uint32_t _flags_save_string
= ndr
->flags
;
10709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10710 if (r
->data_file
) {
10711 uint32_t _relative_save_offset
;
10712 _relative_save_offset
= ndr
->offset
;
10713 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10714 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10715 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10716 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10718 ndr
->offset
= _relative_save_offset
;
10720 ndr
->flags
= _flags_save_string
;
10723 uint32_t _flags_save_string
= ndr
->flags
;
10724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10725 if (r
->config_file
) {
10726 uint32_t _relative_save_offset
;
10727 _relative_save_offset
= ndr
->offset
;
10728 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10729 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10730 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10731 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10733 ndr
->offset
= _relative_save_offset
;
10735 ndr
->flags
= _flags_save_string
;
10738 return NDR_ERR_SUCCESS
;
10741 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10743 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10745 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10746 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10748 if (r
->driver_name
) {
10749 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10752 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10754 if (r
->architecture
) {
10755 ndr_print_string(ndr
, "architecture", r
->architecture
);
10758 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10760 if (r
->driver_path
) {
10761 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10764 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10766 if (r
->data_file
) {
10767 ndr_print_string(ndr
, "data_file", r
->data_file
);
10770 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10772 if (r
->config_file
) {
10773 ndr_print_string(ndr
, "config_file", r
->config_file
);
10779 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10781 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10784 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10786 if (ndr_flags
& NDR_SCALARS
) {
10787 NDR_CHECK(ndr_push_align(ndr
, 5));
10788 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10790 uint32_t _flags_save_string
= ndr
->flags
;
10791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10792 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10793 ndr
->flags
= _flags_save_string
;
10796 uint32_t _flags_save_string
= ndr
->flags
;
10797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10798 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10799 ndr
->flags
= _flags_save_string
;
10802 uint32_t _flags_save_string
= ndr
->flags
;
10803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10804 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10805 ndr
->flags
= _flags_save_string
;
10808 uint32_t _flags_save_string
= ndr
->flags
;
10809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10810 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10811 ndr
->flags
= _flags_save_string
;
10814 uint32_t _flags_save_string
= ndr
->flags
;
10815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10816 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10817 ndr
->flags
= _flags_save_string
;
10820 uint32_t _flags_save_string
= ndr
->flags
;
10821 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10822 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10823 ndr
->flags
= _flags_save_string
;
10826 uint32_t _flags_save_string_array
= ndr
->flags
;
10827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10828 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10829 ndr
->flags
= _flags_save_string_array
;
10832 uint32_t _flags_save_string
= ndr
->flags
;
10833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10834 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10835 ndr
->flags
= _flags_save_string
;
10838 uint32_t _flags_save_string
= ndr
->flags
;
10839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10840 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10841 ndr
->flags
= _flags_save_string
;
10843 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10845 if (ndr_flags
& NDR_BUFFERS
) {
10847 uint32_t _flags_save_string
= ndr
->flags
;
10848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10849 if (r
->driver_name
) {
10850 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10851 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10853 ndr
->flags
= _flags_save_string
;
10856 uint32_t _flags_save_string
= ndr
->flags
;
10857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10858 if (r
->architecture
) {
10859 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10860 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10862 ndr
->flags
= _flags_save_string
;
10865 uint32_t _flags_save_string
= ndr
->flags
;
10866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10867 if (r
->driver_path
) {
10868 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10869 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10871 ndr
->flags
= _flags_save_string
;
10874 uint32_t _flags_save_string
= ndr
->flags
;
10875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10876 if (r
->data_file
) {
10877 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10878 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10880 ndr
->flags
= _flags_save_string
;
10883 uint32_t _flags_save_string
= ndr
->flags
;
10884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10885 if (r
->config_file
) {
10886 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10887 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10889 ndr
->flags
= _flags_save_string
;
10892 uint32_t _flags_save_string
= ndr
->flags
;
10893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10894 if (r
->help_file
) {
10895 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10896 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10898 ndr
->flags
= _flags_save_string
;
10901 uint32_t _flags_save_string_array
= ndr
->flags
;
10902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10903 if (r
->dependent_files
) {
10904 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10905 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10907 ndr
->flags
= _flags_save_string_array
;
10910 uint32_t _flags_save_string
= ndr
->flags
;
10911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10912 if (r
->monitor_name
) {
10913 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10914 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10916 ndr
->flags
= _flags_save_string
;
10919 uint32_t _flags_save_string
= ndr
->flags
;
10920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10921 if (r
->default_datatype
) {
10922 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10923 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10925 ndr
->flags
= _flags_save_string
;
10928 return NDR_ERR_SUCCESS
;
10931 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10933 uint32_t _ptr_driver_name
;
10934 TALLOC_CTX
*_mem_save_driver_name_0
;
10935 uint32_t _ptr_architecture
;
10936 TALLOC_CTX
*_mem_save_architecture_0
;
10937 uint32_t _ptr_driver_path
;
10938 TALLOC_CTX
*_mem_save_driver_path_0
;
10939 uint32_t _ptr_data_file
;
10940 TALLOC_CTX
*_mem_save_data_file_0
;
10941 uint32_t _ptr_config_file
;
10942 TALLOC_CTX
*_mem_save_config_file_0
;
10943 uint32_t _ptr_help_file
;
10944 TALLOC_CTX
*_mem_save_help_file_0
;
10945 uint32_t _ptr_dependent_files
;
10946 TALLOC_CTX
*_mem_save_dependent_files_0
;
10947 uint32_t _ptr_monitor_name
;
10948 TALLOC_CTX
*_mem_save_monitor_name_0
;
10949 uint32_t _ptr_default_datatype
;
10950 TALLOC_CTX
*_mem_save_default_datatype_0
;
10951 if (ndr_flags
& NDR_SCALARS
) {
10952 NDR_CHECK(ndr_pull_align(ndr
, 5));
10953 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10955 uint32_t _flags_save_string
= ndr
->flags
;
10956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10958 if (_ptr_driver_name
) {
10959 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10960 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10962 r
->driver_name
= NULL
;
10964 ndr
->flags
= _flags_save_string
;
10967 uint32_t _flags_save_string
= ndr
->flags
;
10968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10970 if (_ptr_architecture
) {
10971 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10972 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10974 r
->architecture
= NULL
;
10976 ndr
->flags
= _flags_save_string
;
10979 uint32_t _flags_save_string
= ndr
->flags
;
10980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10982 if (_ptr_driver_path
) {
10983 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10984 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10986 r
->driver_path
= NULL
;
10988 ndr
->flags
= _flags_save_string
;
10991 uint32_t _flags_save_string
= ndr
->flags
;
10992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10993 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10994 if (_ptr_data_file
) {
10995 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10996 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10998 r
->data_file
= NULL
;
11000 ndr
->flags
= _flags_save_string
;
11003 uint32_t _flags_save_string
= ndr
->flags
;
11004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11006 if (_ptr_config_file
) {
11007 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11008 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11010 r
->config_file
= NULL
;
11012 ndr
->flags
= _flags_save_string
;
11015 uint32_t _flags_save_string
= ndr
->flags
;
11016 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11018 if (_ptr_help_file
) {
11019 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11020 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11022 r
->help_file
= NULL
;
11024 ndr
->flags
= _flags_save_string
;
11027 uint32_t _flags_save_string_array
= ndr
->flags
;
11028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11030 if (_ptr_dependent_files
) {
11031 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11032 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11034 r
->dependent_files
= NULL
;
11036 ndr
->flags
= _flags_save_string_array
;
11039 uint32_t _flags_save_string
= ndr
->flags
;
11040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11041 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11042 if (_ptr_monitor_name
) {
11043 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11044 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11046 r
->monitor_name
= NULL
;
11048 ndr
->flags
= _flags_save_string
;
11051 uint32_t _flags_save_string
= ndr
->flags
;
11052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11053 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11054 if (_ptr_default_datatype
) {
11055 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11056 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11058 r
->default_datatype
= NULL
;
11060 ndr
->flags
= _flags_save_string
;
11062 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11064 if (ndr_flags
& NDR_BUFFERS
) {
11066 uint32_t _flags_save_string
= ndr
->flags
;
11067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11068 if (r
->driver_name
) {
11069 uint32_t _relative_save_offset
;
11070 _relative_save_offset
= ndr
->offset
;
11071 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11072 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11073 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11074 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11076 ndr
->offset
= _relative_save_offset
;
11078 ndr
->flags
= _flags_save_string
;
11081 uint32_t _flags_save_string
= ndr
->flags
;
11082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11083 if (r
->architecture
) {
11084 uint32_t _relative_save_offset
;
11085 _relative_save_offset
= ndr
->offset
;
11086 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11087 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11088 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11089 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11091 ndr
->offset
= _relative_save_offset
;
11093 ndr
->flags
= _flags_save_string
;
11096 uint32_t _flags_save_string
= ndr
->flags
;
11097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11098 if (r
->driver_path
) {
11099 uint32_t _relative_save_offset
;
11100 _relative_save_offset
= ndr
->offset
;
11101 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11102 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11103 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11104 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11106 ndr
->offset
= _relative_save_offset
;
11108 ndr
->flags
= _flags_save_string
;
11111 uint32_t _flags_save_string
= ndr
->flags
;
11112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11113 if (r
->data_file
) {
11114 uint32_t _relative_save_offset
;
11115 _relative_save_offset
= ndr
->offset
;
11116 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11117 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11118 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11119 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11121 ndr
->offset
= _relative_save_offset
;
11123 ndr
->flags
= _flags_save_string
;
11126 uint32_t _flags_save_string
= ndr
->flags
;
11127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11128 if (r
->config_file
) {
11129 uint32_t _relative_save_offset
;
11130 _relative_save_offset
= ndr
->offset
;
11131 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11132 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11133 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11134 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11136 ndr
->offset
= _relative_save_offset
;
11138 ndr
->flags
= _flags_save_string
;
11141 uint32_t _flags_save_string
= ndr
->flags
;
11142 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11143 if (r
->help_file
) {
11144 uint32_t _relative_save_offset
;
11145 _relative_save_offset
= ndr
->offset
;
11146 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11147 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11148 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11149 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11151 ndr
->offset
= _relative_save_offset
;
11153 ndr
->flags
= _flags_save_string
;
11156 uint32_t _flags_save_string_array
= ndr
->flags
;
11157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11158 if (r
->dependent_files
) {
11159 uint32_t _relative_save_offset
;
11160 _relative_save_offset
= ndr
->offset
;
11161 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11162 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11163 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11164 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11166 ndr
->offset
= _relative_save_offset
;
11168 ndr
->flags
= _flags_save_string_array
;
11171 uint32_t _flags_save_string
= ndr
->flags
;
11172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11173 if (r
->monitor_name
) {
11174 uint32_t _relative_save_offset
;
11175 _relative_save_offset
= ndr
->offset
;
11176 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11177 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11178 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11179 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11181 ndr
->offset
= _relative_save_offset
;
11183 ndr
->flags
= _flags_save_string
;
11186 uint32_t _flags_save_string
= ndr
->flags
;
11187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11188 if (r
->default_datatype
) {
11189 uint32_t _relative_save_offset
;
11190 _relative_save_offset
= ndr
->offset
;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11192 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11193 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11194 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11196 ndr
->offset
= _relative_save_offset
;
11198 ndr
->flags
= _flags_save_string
;
11201 return NDR_ERR_SUCCESS
;
11204 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11206 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11208 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11209 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11211 if (r
->driver_name
) {
11212 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11215 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11217 if (r
->architecture
) {
11218 ndr_print_string(ndr
, "architecture", r
->architecture
);
11221 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11223 if (r
->driver_path
) {
11224 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11227 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11229 if (r
->data_file
) {
11230 ndr_print_string(ndr
, "data_file", r
->data_file
);
11233 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11235 if (r
->config_file
) {
11236 ndr_print_string(ndr
, "config_file", r
->config_file
);
11239 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11241 if (r
->help_file
) {
11242 ndr_print_string(ndr
, "help_file", r
->help_file
);
11245 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11247 if (r
->dependent_files
) {
11248 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11251 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11253 if (r
->monitor_name
) {
11254 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11257 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11259 if (r
->default_datatype
) {
11260 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11266 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11268 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11271 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11273 if (ndr_flags
& NDR_SCALARS
) {
11274 NDR_CHECK(ndr_push_align(ndr
, 5));
11275 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11277 uint32_t _flags_save_string
= ndr
->flags
;
11278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11279 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11280 ndr
->flags
= _flags_save_string
;
11283 uint32_t _flags_save_string
= ndr
->flags
;
11284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11285 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11286 ndr
->flags
= _flags_save_string
;
11289 uint32_t _flags_save_string
= ndr
->flags
;
11290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11291 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11292 ndr
->flags
= _flags_save_string
;
11295 uint32_t _flags_save_string
= ndr
->flags
;
11296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11297 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11298 ndr
->flags
= _flags_save_string
;
11301 uint32_t _flags_save_string
= ndr
->flags
;
11302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11303 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11304 ndr
->flags
= _flags_save_string
;
11307 uint32_t _flags_save_string
= ndr
->flags
;
11308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11309 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11310 ndr
->flags
= _flags_save_string
;
11313 uint32_t _flags_save_string_array
= ndr
->flags
;
11314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11315 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11316 ndr
->flags
= _flags_save_string_array
;
11319 uint32_t _flags_save_string
= ndr
->flags
;
11320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11321 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11322 ndr
->flags
= _flags_save_string
;
11325 uint32_t _flags_save_string
= ndr
->flags
;
11326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11327 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11328 ndr
->flags
= _flags_save_string
;
11331 uint32_t _flags_save_string_array
= ndr
->flags
;
11332 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11333 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11334 ndr
->flags
= _flags_save_string_array
;
11336 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11338 if (ndr_flags
& NDR_BUFFERS
) {
11340 uint32_t _flags_save_string
= ndr
->flags
;
11341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11342 if (r
->driver_name
) {
11343 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11344 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11346 ndr
->flags
= _flags_save_string
;
11349 uint32_t _flags_save_string
= ndr
->flags
;
11350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11351 if (r
->architecture
) {
11352 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11353 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11355 ndr
->flags
= _flags_save_string
;
11358 uint32_t _flags_save_string
= ndr
->flags
;
11359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11360 if (r
->driver_path
) {
11361 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11364 ndr
->flags
= _flags_save_string
;
11367 uint32_t _flags_save_string
= ndr
->flags
;
11368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11369 if (r
->data_file
) {
11370 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11371 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11373 ndr
->flags
= _flags_save_string
;
11376 uint32_t _flags_save_string
= ndr
->flags
;
11377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11378 if (r
->config_file
) {
11379 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11380 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11382 ndr
->flags
= _flags_save_string
;
11385 uint32_t _flags_save_string
= ndr
->flags
;
11386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11387 if (r
->help_file
) {
11388 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11389 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11391 ndr
->flags
= _flags_save_string
;
11394 uint32_t _flags_save_string_array
= ndr
->flags
;
11395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11396 if (r
->dependent_files
) {
11397 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11398 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11400 ndr
->flags
= _flags_save_string_array
;
11403 uint32_t _flags_save_string
= ndr
->flags
;
11404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11405 if (r
->monitor_name
) {
11406 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11407 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11409 ndr
->flags
= _flags_save_string
;
11412 uint32_t _flags_save_string
= ndr
->flags
;
11413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11414 if (r
->default_datatype
) {
11415 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11416 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11418 ndr
->flags
= _flags_save_string
;
11421 uint32_t _flags_save_string_array
= ndr
->flags
;
11422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11423 if (r
->previous_names
) {
11424 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11425 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11427 ndr
->flags
= _flags_save_string_array
;
11430 return NDR_ERR_SUCCESS
;
11433 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
11435 uint32_t _ptr_driver_name
;
11436 TALLOC_CTX
*_mem_save_driver_name_0
;
11437 uint32_t _ptr_architecture
;
11438 TALLOC_CTX
*_mem_save_architecture_0
;
11439 uint32_t _ptr_driver_path
;
11440 TALLOC_CTX
*_mem_save_driver_path_0
;
11441 uint32_t _ptr_data_file
;
11442 TALLOC_CTX
*_mem_save_data_file_0
;
11443 uint32_t _ptr_config_file
;
11444 TALLOC_CTX
*_mem_save_config_file_0
;
11445 uint32_t _ptr_help_file
;
11446 TALLOC_CTX
*_mem_save_help_file_0
;
11447 uint32_t _ptr_dependent_files
;
11448 TALLOC_CTX
*_mem_save_dependent_files_0
;
11449 uint32_t _ptr_monitor_name
;
11450 TALLOC_CTX
*_mem_save_monitor_name_0
;
11451 uint32_t _ptr_default_datatype
;
11452 TALLOC_CTX
*_mem_save_default_datatype_0
;
11453 uint32_t _ptr_previous_names
;
11454 TALLOC_CTX
*_mem_save_previous_names_0
;
11455 if (ndr_flags
& NDR_SCALARS
) {
11456 NDR_CHECK(ndr_pull_align(ndr
, 5));
11457 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11459 uint32_t _flags_save_string
= ndr
->flags
;
11460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11462 if (_ptr_driver_name
) {
11463 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11464 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11466 r
->driver_name
= NULL
;
11468 ndr
->flags
= _flags_save_string
;
11471 uint32_t _flags_save_string
= ndr
->flags
;
11472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11474 if (_ptr_architecture
) {
11475 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11476 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11478 r
->architecture
= NULL
;
11480 ndr
->flags
= _flags_save_string
;
11483 uint32_t _flags_save_string
= ndr
->flags
;
11484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11486 if (_ptr_driver_path
) {
11487 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11488 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11490 r
->driver_path
= NULL
;
11492 ndr
->flags
= _flags_save_string
;
11495 uint32_t _flags_save_string
= ndr
->flags
;
11496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11498 if (_ptr_data_file
) {
11499 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11500 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11502 r
->data_file
= NULL
;
11504 ndr
->flags
= _flags_save_string
;
11507 uint32_t _flags_save_string
= ndr
->flags
;
11508 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11510 if (_ptr_config_file
) {
11511 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11512 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11514 r
->config_file
= NULL
;
11516 ndr
->flags
= _flags_save_string
;
11519 uint32_t _flags_save_string
= ndr
->flags
;
11520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11522 if (_ptr_help_file
) {
11523 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11524 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11526 r
->help_file
= NULL
;
11528 ndr
->flags
= _flags_save_string
;
11531 uint32_t _flags_save_string_array
= ndr
->flags
;
11532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11534 if (_ptr_dependent_files
) {
11535 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11536 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11538 r
->dependent_files
= NULL
;
11540 ndr
->flags
= _flags_save_string_array
;
11543 uint32_t _flags_save_string
= ndr
->flags
;
11544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11546 if (_ptr_monitor_name
) {
11547 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11548 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11550 r
->monitor_name
= NULL
;
11552 ndr
->flags
= _flags_save_string
;
11555 uint32_t _flags_save_string
= ndr
->flags
;
11556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11558 if (_ptr_default_datatype
) {
11559 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11560 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11562 r
->default_datatype
= NULL
;
11564 ndr
->flags
= _flags_save_string
;
11567 uint32_t _flags_save_string_array
= ndr
->flags
;
11568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11570 if (_ptr_previous_names
) {
11571 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11572 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11574 r
->previous_names
= NULL
;
11576 ndr
->flags
= _flags_save_string_array
;
11578 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11580 if (ndr_flags
& NDR_BUFFERS
) {
11582 uint32_t _flags_save_string
= ndr
->flags
;
11583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11584 if (r
->driver_name
) {
11585 uint32_t _relative_save_offset
;
11586 _relative_save_offset
= ndr
->offset
;
11587 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11588 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11589 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11590 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11592 ndr
->offset
= _relative_save_offset
;
11594 ndr
->flags
= _flags_save_string
;
11597 uint32_t _flags_save_string
= ndr
->flags
;
11598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11599 if (r
->architecture
) {
11600 uint32_t _relative_save_offset
;
11601 _relative_save_offset
= ndr
->offset
;
11602 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11603 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11604 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11605 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11607 ndr
->offset
= _relative_save_offset
;
11609 ndr
->flags
= _flags_save_string
;
11612 uint32_t _flags_save_string
= ndr
->flags
;
11613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11614 if (r
->driver_path
) {
11615 uint32_t _relative_save_offset
;
11616 _relative_save_offset
= ndr
->offset
;
11617 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11618 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11619 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11620 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11622 ndr
->offset
= _relative_save_offset
;
11624 ndr
->flags
= _flags_save_string
;
11627 uint32_t _flags_save_string
= ndr
->flags
;
11628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11629 if (r
->data_file
) {
11630 uint32_t _relative_save_offset
;
11631 _relative_save_offset
= ndr
->offset
;
11632 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11633 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11634 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11635 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11637 ndr
->offset
= _relative_save_offset
;
11639 ndr
->flags
= _flags_save_string
;
11642 uint32_t _flags_save_string
= ndr
->flags
;
11643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11644 if (r
->config_file
) {
11645 uint32_t _relative_save_offset
;
11646 _relative_save_offset
= ndr
->offset
;
11647 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11648 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11649 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11652 ndr
->offset
= _relative_save_offset
;
11654 ndr
->flags
= _flags_save_string
;
11657 uint32_t _flags_save_string
= ndr
->flags
;
11658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11659 if (r
->help_file
) {
11660 uint32_t _relative_save_offset
;
11661 _relative_save_offset
= ndr
->offset
;
11662 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11663 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11664 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11665 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11667 ndr
->offset
= _relative_save_offset
;
11669 ndr
->flags
= _flags_save_string
;
11672 uint32_t _flags_save_string_array
= ndr
->flags
;
11673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11674 if (r
->dependent_files
) {
11675 uint32_t _relative_save_offset
;
11676 _relative_save_offset
= ndr
->offset
;
11677 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11678 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11679 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11680 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11682 ndr
->offset
= _relative_save_offset
;
11684 ndr
->flags
= _flags_save_string_array
;
11687 uint32_t _flags_save_string
= ndr
->flags
;
11688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11689 if (r
->monitor_name
) {
11690 uint32_t _relative_save_offset
;
11691 _relative_save_offset
= ndr
->offset
;
11692 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11693 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11694 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11695 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11697 ndr
->offset
= _relative_save_offset
;
11699 ndr
->flags
= _flags_save_string
;
11702 uint32_t _flags_save_string
= ndr
->flags
;
11703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11704 if (r
->default_datatype
) {
11705 uint32_t _relative_save_offset
;
11706 _relative_save_offset
= ndr
->offset
;
11707 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11708 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11709 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11710 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11712 ndr
->offset
= _relative_save_offset
;
11714 ndr
->flags
= _flags_save_string
;
11717 uint32_t _flags_save_string_array
= ndr
->flags
;
11718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11719 if (r
->previous_names
) {
11720 uint32_t _relative_save_offset
;
11721 _relative_save_offset
= ndr
->offset
;
11722 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11723 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11724 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11725 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11727 ndr
->offset
= _relative_save_offset
;
11729 ndr
->flags
= _flags_save_string_array
;
11732 return NDR_ERR_SUCCESS
;
11735 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11737 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11739 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11740 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11742 if (r
->driver_name
) {
11743 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11746 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11748 if (r
->architecture
) {
11749 ndr_print_string(ndr
, "architecture", r
->architecture
);
11752 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11754 if (r
->driver_path
) {
11755 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11758 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11760 if (r
->data_file
) {
11761 ndr_print_string(ndr
, "data_file", r
->data_file
);
11764 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11766 if (r
->config_file
) {
11767 ndr_print_string(ndr
, "config_file", r
->config_file
);
11770 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11772 if (r
->help_file
) {
11773 ndr_print_string(ndr
, "help_file", r
->help_file
);
11776 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11778 if (r
->dependent_files
) {
11779 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11782 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11784 if (r
->monitor_name
) {
11785 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11788 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11790 if (r
->default_datatype
) {
11791 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11794 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11796 if (r
->previous_names
) {
11797 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11803 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11805 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11808 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11810 if (ndr_flags
& NDR_SCALARS
) {
11811 NDR_CHECK(ndr_push_align(ndr
, 5));
11812 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11814 uint32_t _flags_save_string
= ndr
->flags
;
11815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11816 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11817 ndr
->flags
= _flags_save_string
;
11820 uint32_t _flags_save_string
= ndr
->flags
;
11821 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11822 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11823 ndr
->flags
= _flags_save_string
;
11826 uint32_t _flags_save_string
= ndr
->flags
;
11827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11828 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11829 ndr
->flags
= _flags_save_string
;
11832 uint32_t _flags_save_string
= ndr
->flags
;
11833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11834 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11835 ndr
->flags
= _flags_save_string
;
11838 uint32_t _flags_save_string
= ndr
->flags
;
11839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11840 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11841 ndr
->flags
= _flags_save_string
;
11843 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11846 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11848 if (ndr_flags
& NDR_BUFFERS
) {
11850 uint32_t _flags_save_string
= ndr
->flags
;
11851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11852 if (r
->driver_name
) {
11853 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11854 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11856 ndr
->flags
= _flags_save_string
;
11859 uint32_t _flags_save_string
= ndr
->flags
;
11860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11861 if (r
->architecture
) {
11862 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11863 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11865 ndr
->flags
= _flags_save_string
;
11868 uint32_t _flags_save_string
= ndr
->flags
;
11869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11870 if (r
->driver_path
) {
11871 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11872 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11874 ndr
->flags
= _flags_save_string
;
11877 uint32_t _flags_save_string
= ndr
->flags
;
11878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11879 if (r
->data_file
) {
11880 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11883 ndr
->flags
= _flags_save_string
;
11886 uint32_t _flags_save_string
= ndr
->flags
;
11887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11888 if (r
->config_file
) {
11889 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11890 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11892 ndr
->flags
= _flags_save_string
;
11895 return NDR_ERR_SUCCESS
;
11898 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11900 uint32_t _ptr_driver_name
;
11901 TALLOC_CTX
*_mem_save_driver_name_0
;
11902 uint32_t _ptr_architecture
;
11903 TALLOC_CTX
*_mem_save_architecture_0
;
11904 uint32_t _ptr_driver_path
;
11905 TALLOC_CTX
*_mem_save_driver_path_0
;
11906 uint32_t _ptr_data_file
;
11907 TALLOC_CTX
*_mem_save_data_file_0
;
11908 uint32_t _ptr_config_file
;
11909 TALLOC_CTX
*_mem_save_config_file_0
;
11910 if (ndr_flags
& NDR_SCALARS
) {
11911 NDR_CHECK(ndr_pull_align(ndr
, 5));
11912 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11914 uint32_t _flags_save_string
= ndr
->flags
;
11915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11917 if (_ptr_driver_name
) {
11918 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11919 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11921 r
->driver_name
= NULL
;
11923 ndr
->flags
= _flags_save_string
;
11926 uint32_t _flags_save_string
= ndr
->flags
;
11927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11929 if (_ptr_architecture
) {
11930 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11931 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11933 r
->architecture
= NULL
;
11935 ndr
->flags
= _flags_save_string
;
11938 uint32_t _flags_save_string
= ndr
->flags
;
11939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11941 if (_ptr_driver_path
) {
11942 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11943 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11945 r
->driver_path
= NULL
;
11947 ndr
->flags
= _flags_save_string
;
11950 uint32_t _flags_save_string
= ndr
->flags
;
11951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11953 if (_ptr_data_file
) {
11954 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11957 r
->data_file
= NULL
;
11959 ndr
->flags
= _flags_save_string
;
11962 uint32_t _flags_save_string
= ndr
->flags
;
11963 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11964 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11965 if (_ptr_config_file
) {
11966 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11967 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11969 r
->config_file
= NULL
;
11971 ndr
->flags
= _flags_save_string
;
11973 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11974 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11975 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11976 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11978 if (ndr_flags
& NDR_BUFFERS
) {
11980 uint32_t _flags_save_string
= ndr
->flags
;
11981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11982 if (r
->driver_name
) {
11983 uint32_t _relative_save_offset
;
11984 _relative_save_offset
= ndr
->offset
;
11985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11986 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11987 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11990 ndr
->offset
= _relative_save_offset
;
11992 ndr
->flags
= _flags_save_string
;
11995 uint32_t _flags_save_string
= ndr
->flags
;
11996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11997 if (r
->architecture
) {
11998 uint32_t _relative_save_offset
;
11999 _relative_save_offset
= ndr
->offset
;
12000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12001 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12002 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12005 ndr
->offset
= _relative_save_offset
;
12007 ndr
->flags
= _flags_save_string
;
12010 uint32_t _flags_save_string
= ndr
->flags
;
12011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12012 if (r
->driver_path
) {
12013 uint32_t _relative_save_offset
;
12014 _relative_save_offset
= ndr
->offset
;
12015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12016 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12017 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12020 ndr
->offset
= _relative_save_offset
;
12022 ndr
->flags
= _flags_save_string
;
12025 uint32_t _flags_save_string
= ndr
->flags
;
12026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12027 if (r
->data_file
) {
12028 uint32_t _relative_save_offset
;
12029 _relative_save_offset
= ndr
->offset
;
12030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12031 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12032 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12035 ndr
->offset
= _relative_save_offset
;
12037 ndr
->flags
= _flags_save_string
;
12040 uint32_t _flags_save_string
= ndr
->flags
;
12041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12042 if (r
->config_file
) {
12043 uint32_t _relative_save_offset
;
12044 _relative_save_offset
= ndr
->offset
;
12045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12046 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12047 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12050 ndr
->offset
= _relative_save_offset
;
12052 ndr
->flags
= _flags_save_string
;
12055 return NDR_ERR_SUCCESS
;
12058 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12060 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12062 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12063 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12065 if (r
->driver_name
) {
12066 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12069 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12071 if (r
->architecture
) {
12072 ndr_print_string(ndr
, "architecture", r
->architecture
);
12075 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12077 if (r
->driver_path
) {
12078 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12081 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12083 if (r
->data_file
) {
12084 ndr_print_string(ndr
, "data_file", r
->data_file
);
12087 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12089 if (r
->config_file
) {
12090 ndr_print_string(ndr
, "config_file", r
->config_file
);
12093 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12094 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12095 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12099 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12101 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12104 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12106 if (ndr_flags
& NDR_SCALARS
) {
12107 NDR_CHECK(ndr_push_align(ndr
, 8));
12108 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12110 uint32_t _flags_save_string
= ndr
->flags
;
12111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12112 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12113 ndr
->flags
= _flags_save_string
;
12116 uint32_t _flags_save_string
= ndr
->flags
;
12117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12118 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12119 ndr
->flags
= _flags_save_string
;
12122 uint32_t _flags_save_string
= ndr
->flags
;
12123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12124 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12125 ndr
->flags
= _flags_save_string
;
12128 uint32_t _flags_save_string
= ndr
->flags
;
12129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12130 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12131 ndr
->flags
= _flags_save_string
;
12134 uint32_t _flags_save_string
= ndr
->flags
;
12135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12136 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12137 ndr
->flags
= _flags_save_string
;
12140 uint32_t _flags_save_string
= ndr
->flags
;
12141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12142 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12143 ndr
->flags
= _flags_save_string
;
12146 uint32_t _flags_save_string_array
= ndr
->flags
;
12147 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12148 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12149 ndr
->flags
= _flags_save_string_array
;
12152 uint32_t _flags_save_string
= ndr
->flags
;
12153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12154 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12155 ndr
->flags
= _flags_save_string
;
12158 uint32_t _flags_save_string
= ndr
->flags
;
12159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12160 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12161 ndr
->flags
= _flags_save_string
;
12164 uint32_t _flags_save_string_array
= ndr
->flags
;
12165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12166 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12167 ndr
->flags
= _flags_save_string_array
;
12169 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12170 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12172 uint32_t _flags_save_string
= ndr
->flags
;
12173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12174 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12175 ndr
->flags
= _flags_save_string
;
12178 uint32_t _flags_save_string
= ndr
->flags
;
12179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12180 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12181 ndr
->flags
= _flags_save_string
;
12184 uint32_t _flags_save_string
= ndr
->flags
;
12185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12186 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12187 ndr
->flags
= _flags_save_string
;
12190 uint32_t _flags_save_string
= ndr
->flags
;
12191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12193 ndr
->flags
= _flags_save_string
;
12195 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12197 if (ndr_flags
& NDR_BUFFERS
) {
12199 uint32_t _flags_save_string
= ndr
->flags
;
12200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12201 if (r
->driver_name
) {
12202 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12203 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12205 ndr
->flags
= _flags_save_string
;
12208 uint32_t _flags_save_string
= ndr
->flags
;
12209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12210 if (r
->architecture
) {
12211 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12212 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12214 ndr
->flags
= _flags_save_string
;
12217 uint32_t _flags_save_string
= ndr
->flags
;
12218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12219 if (r
->driver_path
) {
12220 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12221 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12223 ndr
->flags
= _flags_save_string
;
12226 uint32_t _flags_save_string
= ndr
->flags
;
12227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12228 if (r
->data_file
) {
12229 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12230 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12232 ndr
->flags
= _flags_save_string
;
12235 uint32_t _flags_save_string
= ndr
->flags
;
12236 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12237 if (r
->config_file
) {
12238 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12239 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12241 ndr
->flags
= _flags_save_string
;
12244 uint32_t _flags_save_string
= ndr
->flags
;
12245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12246 if (r
->help_file
) {
12247 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12248 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12250 ndr
->flags
= _flags_save_string
;
12253 uint32_t _flags_save_string_array
= ndr
->flags
;
12254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12255 if (r
->dependent_files
) {
12256 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12257 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12259 ndr
->flags
= _flags_save_string_array
;
12262 uint32_t _flags_save_string
= ndr
->flags
;
12263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12264 if (r
->monitor_name
) {
12265 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12266 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12268 ndr
->flags
= _flags_save_string
;
12271 uint32_t _flags_save_string
= ndr
->flags
;
12272 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12273 if (r
->default_datatype
) {
12274 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12275 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12277 ndr
->flags
= _flags_save_string
;
12280 uint32_t _flags_save_string_array
= ndr
->flags
;
12281 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12282 if (r
->previous_names
) {
12283 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12284 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12286 ndr
->flags
= _flags_save_string_array
;
12289 uint32_t _flags_save_string
= ndr
->flags
;
12290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12291 if (r
->manufacturer_name
) {
12292 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12293 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12295 ndr
->flags
= _flags_save_string
;
12298 uint32_t _flags_save_string
= ndr
->flags
;
12299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12300 if (r
->manufacturer_url
) {
12301 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12302 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12304 ndr
->flags
= _flags_save_string
;
12307 uint32_t _flags_save_string
= ndr
->flags
;
12308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12309 if (r
->hardware_id
) {
12310 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12311 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12313 ndr
->flags
= _flags_save_string
;
12316 uint32_t _flags_save_string
= ndr
->flags
;
12317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12319 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12320 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12322 ndr
->flags
= _flags_save_string
;
12325 return NDR_ERR_SUCCESS
;
12328 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12330 uint32_t _ptr_driver_name
;
12331 TALLOC_CTX
*_mem_save_driver_name_0
;
12332 uint32_t _ptr_architecture
;
12333 TALLOC_CTX
*_mem_save_architecture_0
;
12334 uint32_t _ptr_driver_path
;
12335 TALLOC_CTX
*_mem_save_driver_path_0
;
12336 uint32_t _ptr_data_file
;
12337 TALLOC_CTX
*_mem_save_data_file_0
;
12338 uint32_t _ptr_config_file
;
12339 TALLOC_CTX
*_mem_save_config_file_0
;
12340 uint32_t _ptr_help_file
;
12341 TALLOC_CTX
*_mem_save_help_file_0
;
12342 uint32_t _ptr_dependent_files
;
12343 TALLOC_CTX
*_mem_save_dependent_files_0
;
12344 uint32_t _ptr_monitor_name
;
12345 TALLOC_CTX
*_mem_save_monitor_name_0
;
12346 uint32_t _ptr_default_datatype
;
12347 TALLOC_CTX
*_mem_save_default_datatype_0
;
12348 uint32_t _ptr_previous_names
;
12349 TALLOC_CTX
*_mem_save_previous_names_0
;
12350 uint32_t _ptr_manufacturer_name
;
12351 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12352 uint32_t _ptr_manufacturer_url
;
12353 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12354 uint32_t _ptr_hardware_id
;
12355 TALLOC_CTX
*_mem_save_hardware_id_0
;
12356 uint32_t _ptr_provider
;
12357 TALLOC_CTX
*_mem_save_provider_0
;
12358 if (ndr_flags
& NDR_SCALARS
) {
12359 NDR_CHECK(ndr_pull_align(ndr
, 8));
12360 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12362 uint32_t _flags_save_string
= ndr
->flags
;
12363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12364 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12365 if (_ptr_driver_name
) {
12366 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12367 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12369 r
->driver_name
= NULL
;
12371 ndr
->flags
= _flags_save_string
;
12374 uint32_t _flags_save_string
= ndr
->flags
;
12375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12377 if (_ptr_architecture
) {
12378 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12379 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12381 r
->architecture
= NULL
;
12383 ndr
->flags
= _flags_save_string
;
12386 uint32_t _flags_save_string
= ndr
->flags
;
12387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12388 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12389 if (_ptr_driver_path
) {
12390 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12391 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12393 r
->driver_path
= NULL
;
12395 ndr
->flags
= _flags_save_string
;
12398 uint32_t _flags_save_string
= ndr
->flags
;
12399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12401 if (_ptr_data_file
) {
12402 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12403 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12405 r
->data_file
= NULL
;
12407 ndr
->flags
= _flags_save_string
;
12410 uint32_t _flags_save_string
= ndr
->flags
;
12411 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12413 if (_ptr_config_file
) {
12414 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12415 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12417 r
->config_file
= NULL
;
12419 ndr
->flags
= _flags_save_string
;
12422 uint32_t _flags_save_string
= ndr
->flags
;
12423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12425 if (_ptr_help_file
) {
12426 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12429 r
->help_file
= NULL
;
12431 ndr
->flags
= _flags_save_string
;
12434 uint32_t _flags_save_string_array
= ndr
->flags
;
12435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12437 if (_ptr_dependent_files
) {
12438 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12441 r
->dependent_files
= NULL
;
12443 ndr
->flags
= _flags_save_string_array
;
12446 uint32_t _flags_save_string
= ndr
->flags
;
12447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12449 if (_ptr_monitor_name
) {
12450 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12453 r
->monitor_name
= NULL
;
12455 ndr
->flags
= _flags_save_string
;
12458 uint32_t _flags_save_string
= ndr
->flags
;
12459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12461 if (_ptr_default_datatype
) {
12462 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12463 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12465 r
->default_datatype
= NULL
;
12467 ndr
->flags
= _flags_save_string
;
12470 uint32_t _flags_save_string_array
= ndr
->flags
;
12471 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12473 if (_ptr_previous_names
) {
12474 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12475 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12477 r
->previous_names
= NULL
;
12479 ndr
->flags
= _flags_save_string_array
;
12481 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12482 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12484 uint32_t _flags_save_string
= ndr
->flags
;
12485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12487 if (_ptr_manufacturer_name
) {
12488 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12489 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12491 r
->manufacturer_name
= NULL
;
12493 ndr
->flags
= _flags_save_string
;
12496 uint32_t _flags_save_string
= ndr
->flags
;
12497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12499 if (_ptr_manufacturer_url
) {
12500 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12501 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12503 r
->manufacturer_url
= NULL
;
12505 ndr
->flags
= _flags_save_string
;
12508 uint32_t _flags_save_string
= ndr
->flags
;
12509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12511 if (_ptr_hardware_id
) {
12512 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12513 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12515 r
->hardware_id
= NULL
;
12517 ndr
->flags
= _flags_save_string
;
12520 uint32_t _flags_save_string
= ndr
->flags
;
12521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12523 if (_ptr_provider
) {
12524 NDR_PULL_ALLOC(ndr
, r
->provider
);
12525 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12527 r
->provider
= NULL
;
12529 ndr
->flags
= _flags_save_string
;
12531 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
12533 if (ndr_flags
& NDR_BUFFERS
) {
12535 uint32_t _flags_save_string
= ndr
->flags
;
12536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12537 if (r
->driver_name
) {
12538 uint32_t _relative_save_offset
;
12539 _relative_save_offset
= ndr
->offset
;
12540 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12541 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12542 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12543 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12545 ndr
->offset
= _relative_save_offset
;
12547 ndr
->flags
= _flags_save_string
;
12550 uint32_t _flags_save_string
= ndr
->flags
;
12551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12552 if (r
->architecture
) {
12553 uint32_t _relative_save_offset
;
12554 _relative_save_offset
= ndr
->offset
;
12555 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12556 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12557 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12558 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12560 ndr
->offset
= _relative_save_offset
;
12562 ndr
->flags
= _flags_save_string
;
12565 uint32_t _flags_save_string
= ndr
->flags
;
12566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12567 if (r
->driver_path
) {
12568 uint32_t _relative_save_offset
;
12569 _relative_save_offset
= ndr
->offset
;
12570 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12571 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12572 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12573 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12575 ndr
->offset
= _relative_save_offset
;
12577 ndr
->flags
= _flags_save_string
;
12580 uint32_t _flags_save_string
= ndr
->flags
;
12581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12582 if (r
->data_file
) {
12583 uint32_t _relative_save_offset
;
12584 _relative_save_offset
= ndr
->offset
;
12585 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12586 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12587 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12588 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12590 ndr
->offset
= _relative_save_offset
;
12592 ndr
->flags
= _flags_save_string
;
12595 uint32_t _flags_save_string
= ndr
->flags
;
12596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12597 if (r
->config_file
) {
12598 uint32_t _relative_save_offset
;
12599 _relative_save_offset
= ndr
->offset
;
12600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12601 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12602 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12603 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12605 ndr
->offset
= _relative_save_offset
;
12607 ndr
->flags
= _flags_save_string
;
12610 uint32_t _flags_save_string
= ndr
->flags
;
12611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12612 if (r
->help_file
) {
12613 uint32_t _relative_save_offset
;
12614 _relative_save_offset
= ndr
->offset
;
12615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12616 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12617 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12620 ndr
->offset
= _relative_save_offset
;
12622 ndr
->flags
= _flags_save_string
;
12625 uint32_t _flags_save_string_array
= ndr
->flags
;
12626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12627 if (r
->dependent_files
) {
12628 uint32_t _relative_save_offset
;
12629 _relative_save_offset
= ndr
->offset
;
12630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12631 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12632 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12633 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12635 ndr
->offset
= _relative_save_offset
;
12637 ndr
->flags
= _flags_save_string_array
;
12640 uint32_t _flags_save_string
= ndr
->flags
;
12641 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12642 if (r
->monitor_name
) {
12643 uint32_t _relative_save_offset
;
12644 _relative_save_offset
= ndr
->offset
;
12645 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12646 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12647 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12648 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12650 ndr
->offset
= _relative_save_offset
;
12652 ndr
->flags
= _flags_save_string
;
12655 uint32_t _flags_save_string
= ndr
->flags
;
12656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12657 if (r
->default_datatype
) {
12658 uint32_t _relative_save_offset
;
12659 _relative_save_offset
= ndr
->offset
;
12660 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12661 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12662 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12663 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12665 ndr
->offset
= _relative_save_offset
;
12667 ndr
->flags
= _flags_save_string
;
12670 uint32_t _flags_save_string_array
= ndr
->flags
;
12671 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12672 if (r
->previous_names
) {
12673 uint32_t _relative_save_offset
;
12674 _relative_save_offset
= ndr
->offset
;
12675 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12676 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12677 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12678 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12680 ndr
->offset
= _relative_save_offset
;
12682 ndr
->flags
= _flags_save_string_array
;
12685 uint32_t _flags_save_string
= ndr
->flags
;
12686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12687 if (r
->manufacturer_name
) {
12688 uint32_t _relative_save_offset
;
12689 _relative_save_offset
= ndr
->offset
;
12690 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12691 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12692 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12693 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12695 ndr
->offset
= _relative_save_offset
;
12697 ndr
->flags
= _flags_save_string
;
12700 uint32_t _flags_save_string
= ndr
->flags
;
12701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12702 if (r
->manufacturer_url
) {
12703 uint32_t _relative_save_offset
;
12704 _relative_save_offset
= ndr
->offset
;
12705 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12706 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12707 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12708 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12710 ndr
->offset
= _relative_save_offset
;
12712 ndr
->flags
= _flags_save_string
;
12715 uint32_t _flags_save_string
= ndr
->flags
;
12716 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12717 if (r
->hardware_id
) {
12718 uint32_t _relative_save_offset
;
12719 _relative_save_offset
= ndr
->offset
;
12720 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12721 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12722 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12723 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12725 ndr
->offset
= _relative_save_offset
;
12727 ndr
->flags
= _flags_save_string
;
12730 uint32_t _flags_save_string
= ndr
->flags
;
12731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12733 uint32_t _relative_save_offset
;
12734 _relative_save_offset
= ndr
->offset
;
12735 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12736 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12737 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12738 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12740 ndr
->offset
= _relative_save_offset
;
12742 ndr
->flags
= _flags_save_string
;
12745 return NDR_ERR_SUCCESS
;
12748 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12750 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12752 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12753 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12755 if (r
->driver_name
) {
12756 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12759 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12761 if (r
->architecture
) {
12762 ndr_print_string(ndr
, "architecture", r
->architecture
);
12765 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12767 if (r
->driver_path
) {
12768 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12771 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12773 if (r
->data_file
) {
12774 ndr_print_string(ndr
, "data_file", r
->data_file
);
12777 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12779 if (r
->config_file
) {
12780 ndr_print_string(ndr
, "config_file", r
->config_file
);
12783 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12785 if (r
->help_file
) {
12786 ndr_print_string(ndr
, "help_file", r
->help_file
);
12789 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12791 if (r
->dependent_files
) {
12792 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12795 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12797 if (r
->monitor_name
) {
12798 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12801 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12803 if (r
->default_datatype
) {
12804 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12807 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12809 if (r
->previous_names
) {
12810 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12813 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12814 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12815 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12817 if (r
->manufacturer_name
) {
12818 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12821 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12823 if (r
->manufacturer_url
) {
12824 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12827 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12829 if (r
->hardware_id
) {
12830 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12833 ndr_print_ptr(ndr
, "provider", r
->provider
);
12836 ndr_print_string(ndr
, "provider", r
->provider
);
12842 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12844 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12847 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12849 if (ndr_flags
& NDR_SCALARS
) {
12850 NDR_CHECK(ndr_push_align(ndr
, 8));
12851 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12853 uint32_t _flags_save_string
= ndr
->flags
;
12854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12855 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12856 ndr
->flags
= _flags_save_string
;
12859 uint32_t _flags_save_string
= ndr
->flags
;
12860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12861 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12862 ndr
->flags
= _flags_save_string
;
12865 uint32_t _flags_save_string
= ndr
->flags
;
12866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12867 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12868 ndr
->flags
= _flags_save_string
;
12871 uint32_t _flags_save_string
= ndr
->flags
;
12872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12873 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12874 ndr
->flags
= _flags_save_string
;
12877 uint32_t _flags_save_string
= ndr
->flags
;
12878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12879 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12886 ndr
->flags
= _flags_save_string
;
12889 uint32_t _flags_save_string
= ndr
->flags
;
12890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12891 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12892 ndr
->flags
= _flags_save_string
;
12895 uint32_t _flags_save_string
= ndr
->flags
;
12896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12897 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12898 ndr
->flags
= _flags_save_string
;
12901 uint32_t _flags_save_string_array
= ndr
->flags
;
12902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12903 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12904 ndr
->flags
= _flags_save_string_array
;
12907 uint32_t _flags_save_string_array
= ndr
->flags
;
12908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12909 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12910 ndr
->flags
= _flags_save_string_array
;
12912 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12913 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12915 uint32_t _flags_save_string
= ndr
->flags
;
12916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12917 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12918 ndr
->flags
= _flags_save_string
;
12921 uint32_t _flags_save_string
= ndr
->flags
;
12922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12923 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12924 ndr
->flags
= _flags_save_string
;
12927 uint32_t _flags_save_string
= ndr
->flags
;
12928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12929 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12930 ndr
->flags
= _flags_save_string
;
12933 uint32_t _flags_save_string
= ndr
->flags
;
12934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12935 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12936 ndr
->flags
= _flags_save_string
;
12939 uint32_t _flags_save_string
= ndr
->flags
;
12940 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12941 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12942 ndr
->flags
= _flags_save_string
;
12945 uint32_t _flags_save_string
= ndr
->flags
;
12946 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12947 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12948 ndr
->flags
= _flags_save_string
;
12951 uint32_t _flags_save_string_array
= ndr
->flags
;
12952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12953 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12954 ndr
->flags
= _flags_save_string_array
;
12957 uint32_t _flags_save_string
= ndr
->flags
;
12958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12959 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12960 ndr
->flags
= _flags_save_string
;
12962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12964 uint32_t _flags_save_string_array
= ndr
->flags
;
12965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12966 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12967 ndr
->flags
= _flags_save_string_array
;
12969 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12970 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12971 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12973 if (ndr_flags
& NDR_BUFFERS
) {
12975 uint32_t _flags_save_string
= ndr
->flags
;
12976 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12977 if (r
->driver_name
) {
12978 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12979 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12981 ndr
->flags
= _flags_save_string
;
12984 uint32_t _flags_save_string
= ndr
->flags
;
12985 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12986 if (r
->architecture
) {
12987 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12988 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12990 ndr
->flags
= _flags_save_string
;
12993 uint32_t _flags_save_string
= ndr
->flags
;
12994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12995 if (r
->driver_path
) {
12996 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12997 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12999 ndr
->flags
= _flags_save_string
;
13002 uint32_t _flags_save_string
= ndr
->flags
;
13003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13004 if (r
->data_file
) {
13005 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
13006 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13008 ndr
->flags
= _flags_save_string
;
13011 uint32_t _flags_save_string
= ndr
->flags
;
13012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13013 if (r
->config_file
) {
13014 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
13015 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13017 ndr
->flags
= _flags_save_string
;
13020 uint32_t _flags_save_string
= ndr
->flags
;
13021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13022 if (r
->help_file
) {
13023 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
13024 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13026 ndr
->flags
= _flags_save_string
;
13029 uint32_t _flags_save_string
= ndr
->flags
;
13030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13031 if (r
->monitor_name
) {
13032 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
13033 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13035 ndr
->flags
= _flags_save_string
;
13038 uint32_t _flags_save_string
= ndr
->flags
;
13039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13040 if (r
->default_datatype
) {
13041 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
13042 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13044 ndr
->flags
= _flags_save_string
;
13047 uint32_t _flags_save_string_array
= ndr
->flags
;
13048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13049 if (r
->dependent_files
) {
13050 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
13051 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13053 ndr
->flags
= _flags_save_string_array
;
13056 uint32_t _flags_save_string_array
= ndr
->flags
;
13057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13058 if (r
->previous_names
) {
13059 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
13060 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13062 ndr
->flags
= _flags_save_string_array
;
13065 uint32_t _flags_save_string
= ndr
->flags
;
13066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13067 if (r
->manufacturer_name
) {
13068 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
13069 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13071 ndr
->flags
= _flags_save_string
;
13074 uint32_t _flags_save_string
= ndr
->flags
;
13075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13076 if (r
->manufacturer_url
) {
13077 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
13078 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13080 ndr
->flags
= _flags_save_string
;
13083 uint32_t _flags_save_string
= ndr
->flags
;
13084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13085 if (r
->hardware_id
) {
13086 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
13087 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13089 ndr
->flags
= _flags_save_string
;
13092 uint32_t _flags_save_string
= ndr
->flags
;
13093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13095 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
13096 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
13098 ndr
->flags
= _flags_save_string
;
13101 uint32_t _flags_save_string
= ndr
->flags
;
13102 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13103 if (r
->print_processor
) {
13104 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
13105 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
13107 ndr
->flags
= _flags_save_string
;
13110 uint32_t _flags_save_string
= ndr
->flags
;
13111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13112 if (r
->vendor_setup
) {
13113 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
13114 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
13116 ndr
->flags
= _flags_save_string
;
13119 uint32_t _flags_save_string_array
= ndr
->flags
;
13120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13121 if (r
->color_profiles
) {
13122 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
13123 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
13125 ndr
->flags
= _flags_save_string_array
;
13128 uint32_t _flags_save_string
= ndr
->flags
;
13129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13131 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
13132 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
13134 ndr
->flags
= _flags_save_string
;
13137 uint32_t _flags_save_string_array
= ndr
->flags
;
13138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13139 if (r
->core_driver_dependencies
) {
13140 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13141 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
13143 ndr
->flags
= _flags_save_string_array
;
13146 return NDR_ERR_SUCCESS
;
13149 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
13151 uint32_t _ptr_driver_name
;
13152 TALLOC_CTX
*_mem_save_driver_name_0
;
13153 uint32_t _ptr_architecture
;
13154 TALLOC_CTX
*_mem_save_architecture_0
;
13155 uint32_t _ptr_driver_path
;
13156 TALLOC_CTX
*_mem_save_driver_path_0
;
13157 uint32_t _ptr_data_file
;
13158 TALLOC_CTX
*_mem_save_data_file_0
;
13159 uint32_t _ptr_config_file
;
13160 TALLOC_CTX
*_mem_save_config_file_0
;
13161 uint32_t _ptr_help_file
;
13162 TALLOC_CTX
*_mem_save_help_file_0
;
13163 uint32_t _ptr_monitor_name
;
13164 TALLOC_CTX
*_mem_save_monitor_name_0
;
13165 uint32_t _ptr_default_datatype
;
13166 TALLOC_CTX
*_mem_save_default_datatype_0
;
13167 uint32_t _ptr_dependent_files
;
13168 TALLOC_CTX
*_mem_save_dependent_files_0
;
13169 uint32_t _ptr_previous_names
;
13170 TALLOC_CTX
*_mem_save_previous_names_0
;
13171 uint32_t _ptr_manufacturer_name
;
13172 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13173 uint32_t _ptr_manufacturer_url
;
13174 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13175 uint32_t _ptr_hardware_id
;
13176 TALLOC_CTX
*_mem_save_hardware_id_0
;
13177 uint32_t _ptr_provider
;
13178 TALLOC_CTX
*_mem_save_provider_0
;
13179 uint32_t _ptr_print_processor
;
13180 TALLOC_CTX
*_mem_save_print_processor_0
;
13181 uint32_t _ptr_vendor_setup
;
13182 TALLOC_CTX
*_mem_save_vendor_setup_0
;
13183 uint32_t _ptr_color_profiles
;
13184 TALLOC_CTX
*_mem_save_color_profiles_0
;
13185 uint32_t _ptr_inf_path
;
13186 TALLOC_CTX
*_mem_save_inf_path_0
;
13187 uint32_t _ptr_core_driver_dependencies
;
13188 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
13189 if (ndr_flags
& NDR_SCALARS
) {
13190 NDR_CHECK(ndr_pull_align(ndr
, 8));
13191 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13193 uint32_t _flags_save_string
= ndr
->flags
;
13194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13196 if (_ptr_driver_name
) {
13197 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13198 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13200 r
->driver_name
= NULL
;
13202 ndr
->flags
= _flags_save_string
;
13205 uint32_t _flags_save_string
= ndr
->flags
;
13206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13208 if (_ptr_architecture
) {
13209 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13210 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13212 r
->architecture
= NULL
;
13214 ndr
->flags
= _flags_save_string
;
13217 uint32_t _flags_save_string
= ndr
->flags
;
13218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13220 if (_ptr_driver_path
) {
13221 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13222 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13224 r
->driver_path
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13232 if (_ptr_data_file
) {
13233 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13234 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13236 r
->data_file
= NULL
;
13238 ndr
->flags
= _flags_save_string
;
13241 uint32_t _flags_save_string
= ndr
->flags
;
13242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13243 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13244 if (_ptr_config_file
) {
13245 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13246 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13248 r
->config_file
= NULL
;
13250 ndr
->flags
= _flags_save_string
;
13253 uint32_t _flags_save_string
= ndr
->flags
;
13254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13256 if (_ptr_help_file
) {
13257 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13258 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13260 r
->help_file
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13268 if (_ptr_monitor_name
) {
13269 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13270 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13272 r
->monitor_name
= NULL
;
13274 ndr
->flags
= _flags_save_string
;
13277 uint32_t _flags_save_string
= ndr
->flags
;
13278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13280 if (_ptr_default_datatype
) {
13281 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13282 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13284 r
->default_datatype
= NULL
;
13286 ndr
->flags
= _flags_save_string
;
13289 uint32_t _flags_save_string_array
= ndr
->flags
;
13290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13292 if (_ptr_dependent_files
) {
13293 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13294 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13296 r
->dependent_files
= NULL
;
13298 ndr
->flags
= _flags_save_string_array
;
13301 uint32_t _flags_save_string_array
= ndr
->flags
;
13302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13304 if (_ptr_previous_names
) {
13305 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13306 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13308 r
->previous_names
= NULL
;
13310 ndr
->flags
= _flags_save_string_array
;
13312 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13313 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13315 uint32_t _flags_save_string
= ndr
->flags
;
13316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13318 if (_ptr_manufacturer_name
) {
13319 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13320 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13322 r
->manufacturer_name
= NULL
;
13324 ndr
->flags
= _flags_save_string
;
13327 uint32_t _flags_save_string
= ndr
->flags
;
13328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13329 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13330 if (_ptr_manufacturer_url
) {
13331 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13332 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13334 r
->manufacturer_url
= NULL
;
13336 ndr
->flags
= _flags_save_string
;
13339 uint32_t _flags_save_string
= ndr
->flags
;
13340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13341 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13342 if (_ptr_hardware_id
) {
13343 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13344 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13346 r
->hardware_id
= NULL
;
13348 ndr
->flags
= _flags_save_string
;
13351 uint32_t _flags_save_string
= ndr
->flags
;
13352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13354 if (_ptr_provider
) {
13355 NDR_PULL_ALLOC(ndr
, r
->provider
);
13356 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13358 r
->provider
= NULL
;
13360 ndr
->flags
= _flags_save_string
;
13363 uint32_t _flags_save_string
= ndr
->flags
;
13364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
13366 if (_ptr_print_processor
) {
13367 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
13368 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
13370 r
->print_processor
= NULL
;
13372 ndr
->flags
= _flags_save_string
;
13375 uint32_t _flags_save_string
= ndr
->flags
;
13376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
13378 if (_ptr_vendor_setup
) {
13379 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
13380 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
13382 r
->vendor_setup
= NULL
;
13384 ndr
->flags
= _flags_save_string
;
13387 uint32_t _flags_save_string_array
= ndr
->flags
;
13388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
13390 if (_ptr_color_profiles
) {
13391 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
13392 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
13394 r
->color_profiles
= NULL
;
13396 ndr
->flags
= _flags_save_string_array
;
13399 uint32_t _flags_save_string
= ndr
->flags
;
13400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
13402 if (_ptr_inf_path
) {
13403 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
13404 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
13406 r
->inf_path
= NULL
;
13408 ndr
->flags
= _flags_save_string
;
13410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
13412 uint32_t _flags_save_string_array
= ndr
->flags
;
13413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
13415 if (_ptr_core_driver_dependencies
) {
13416 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
13417 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
13419 r
->core_driver_dependencies
= NULL
;
13421 ndr
->flags
= _flags_save_string_array
;
13423 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
13424 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
13425 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13427 if (ndr_flags
& NDR_BUFFERS
) {
13429 uint32_t _flags_save_string
= ndr
->flags
;
13430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13431 if (r
->driver_name
) {
13432 uint32_t _relative_save_offset
;
13433 _relative_save_offset
= ndr
->offset
;
13434 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13435 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13436 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13439 ndr
->offset
= _relative_save_offset
;
13441 ndr
->flags
= _flags_save_string
;
13444 uint32_t _flags_save_string
= ndr
->flags
;
13445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13446 if (r
->architecture
) {
13447 uint32_t _relative_save_offset
;
13448 _relative_save_offset
= ndr
->offset
;
13449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13450 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13451 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13454 ndr
->offset
= _relative_save_offset
;
13456 ndr
->flags
= _flags_save_string
;
13459 uint32_t _flags_save_string
= ndr
->flags
;
13460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13461 if (r
->driver_path
) {
13462 uint32_t _relative_save_offset
;
13463 _relative_save_offset
= ndr
->offset
;
13464 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13465 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13466 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13467 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13469 ndr
->offset
= _relative_save_offset
;
13471 ndr
->flags
= _flags_save_string
;
13474 uint32_t _flags_save_string
= ndr
->flags
;
13475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13476 if (r
->data_file
) {
13477 uint32_t _relative_save_offset
;
13478 _relative_save_offset
= ndr
->offset
;
13479 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13480 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13481 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13482 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13483 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13484 ndr
->offset
= _relative_save_offset
;
13486 ndr
->flags
= _flags_save_string
;
13489 uint32_t _flags_save_string
= ndr
->flags
;
13490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13491 if (r
->config_file
) {
13492 uint32_t _relative_save_offset
;
13493 _relative_save_offset
= ndr
->offset
;
13494 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13495 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13496 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13497 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13499 ndr
->offset
= _relative_save_offset
;
13501 ndr
->flags
= _flags_save_string
;
13504 uint32_t _flags_save_string
= ndr
->flags
;
13505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13506 if (r
->help_file
) {
13507 uint32_t _relative_save_offset
;
13508 _relative_save_offset
= ndr
->offset
;
13509 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13510 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13511 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13512 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13514 ndr
->offset
= _relative_save_offset
;
13516 ndr
->flags
= _flags_save_string
;
13519 uint32_t _flags_save_string
= ndr
->flags
;
13520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13521 if (r
->monitor_name
) {
13522 uint32_t _relative_save_offset
;
13523 _relative_save_offset
= ndr
->offset
;
13524 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13525 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13526 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13527 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13529 ndr
->offset
= _relative_save_offset
;
13531 ndr
->flags
= _flags_save_string
;
13534 uint32_t _flags_save_string
= ndr
->flags
;
13535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13536 if (r
->default_datatype
) {
13537 uint32_t _relative_save_offset
;
13538 _relative_save_offset
= ndr
->offset
;
13539 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13540 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13541 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13542 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13544 ndr
->offset
= _relative_save_offset
;
13546 ndr
->flags
= _flags_save_string
;
13549 uint32_t _flags_save_string_array
= ndr
->flags
;
13550 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13551 if (r
->dependent_files
) {
13552 uint32_t _relative_save_offset
;
13553 _relative_save_offset
= ndr
->offset
;
13554 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13555 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13556 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13557 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13559 ndr
->offset
= _relative_save_offset
;
13561 ndr
->flags
= _flags_save_string_array
;
13564 uint32_t _flags_save_string_array
= ndr
->flags
;
13565 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13566 if (r
->previous_names
) {
13567 uint32_t _relative_save_offset
;
13568 _relative_save_offset
= ndr
->offset
;
13569 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13570 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13571 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13572 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13574 ndr
->offset
= _relative_save_offset
;
13576 ndr
->flags
= _flags_save_string_array
;
13579 uint32_t _flags_save_string
= ndr
->flags
;
13580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13581 if (r
->manufacturer_name
) {
13582 uint32_t _relative_save_offset
;
13583 _relative_save_offset
= ndr
->offset
;
13584 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13585 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13586 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13587 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13589 ndr
->offset
= _relative_save_offset
;
13591 ndr
->flags
= _flags_save_string
;
13594 uint32_t _flags_save_string
= ndr
->flags
;
13595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13596 if (r
->manufacturer_url
) {
13597 uint32_t _relative_save_offset
;
13598 _relative_save_offset
= ndr
->offset
;
13599 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13600 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13601 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13602 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13604 ndr
->offset
= _relative_save_offset
;
13606 ndr
->flags
= _flags_save_string
;
13609 uint32_t _flags_save_string
= ndr
->flags
;
13610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13611 if (r
->hardware_id
) {
13612 uint32_t _relative_save_offset
;
13613 _relative_save_offset
= ndr
->offset
;
13614 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13615 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13616 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13617 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13619 ndr
->offset
= _relative_save_offset
;
13621 ndr
->flags
= _flags_save_string
;
13624 uint32_t _flags_save_string
= ndr
->flags
;
13625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13627 uint32_t _relative_save_offset
;
13628 _relative_save_offset
= ndr
->offset
;
13629 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13630 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13631 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13632 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13634 ndr
->offset
= _relative_save_offset
;
13636 ndr
->flags
= _flags_save_string
;
13639 uint32_t _flags_save_string
= ndr
->flags
;
13640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13641 if (r
->print_processor
) {
13642 uint32_t _relative_save_offset
;
13643 _relative_save_offset
= ndr
->offset
;
13644 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13645 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13646 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13647 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13648 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13649 ndr
->offset
= _relative_save_offset
;
13651 ndr
->flags
= _flags_save_string
;
13654 uint32_t _flags_save_string
= ndr
->flags
;
13655 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13656 if (r
->vendor_setup
) {
13657 uint32_t _relative_save_offset
;
13658 _relative_save_offset
= ndr
->offset
;
13659 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13660 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13661 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13662 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13664 ndr
->offset
= _relative_save_offset
;
13666 ndr
->flags
= _flags_save_string
;
13669 uint32_t _flags_save_string_array
= ndr
->flags
;
13670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13671 if (r
->color_profiles
) {
13672 uint32_t _relative_save_offset
;
13673 _relative_save_offset
= ndr
->offset
;
13674 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13675 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13676 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13677 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13679 ndr
->offset
= _relative_save_offset
;
13681 ndr
->flags
= _flags_save_string_array
;
13684 uint32_t _flags_save_string
= ndr
->flags
;
13685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13687 uint32_t _relative_save_offset
;
13688 _relative_save_offset
= ndr
->offset
;
13689 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13690 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13691 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13692 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13694 ndr
->offset
= _relative_save_offset
;
13696 ndr
->flags
= _flags_save_string
;
13699 uint32_t _flags_save_string_array
= ndr
->flags
;
13700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13701 if (r
->core_driver_dependencies
) {
13702 uint32_t _relative_save_offset
;
13703 _relative_save_offset
= ndr
->offset
;
13704 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13705 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13706 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13707 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13709 ndr
->offset
= _relative_save_offset
;
13711 ndr
->flags
= _flags_save_string_array
;
13714 return NDR_ERR_SUCCESS
;
13717 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13719 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13721 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13722 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13724 if (r
->driver_name
) {
13725 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13728 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13730 if (r
->architecture
) {
13731 ndr_print_string(ndr
, "architecture", r
->architecture
);
13734 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13736 if (r
->driver_path
) {
13737 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13740 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13742 if (r
->data_file
) {
13743 ndr_print_string(ndr
, "data_file", r
->data_file
);
13746 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13748 if (r
->config_file
) {
13749 ndr_print_string(ndr
, "config_file", r
->config_file
);
13752 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13754 if (r
->help_file
) {
13755 ndr_print_string(ndr
, "help_file", r
->help_file
);
13758 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13760 if (r
->monitor_name
) {
13761 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13764 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13766 if (r
->default_datatype
) {
13767 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13770 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13772 if (r
->dependent_files
) {
13773 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13776 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13778 if (r
->previous_names
) {
13779 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13782 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13783 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13784 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13786 if (r
->manufacturer_name
) {
13787 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13790 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13792 if (r
->manufacturer_url
) {
13793 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13796 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13798 if (r
->hardware_id
) {
13799 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13802 ndr_print_ptr(ndr
, "provider", r
->provider
);
13805 ndr_print_string(ndr
, "provider", r
->provider
);
13808 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13810 if (r
->print_processor
) {
13811 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13814 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13816 if (r
->vendor_setup
) {
13817 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13820 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13822 if (r
->color_profiles
) {
13823 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13826 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13829 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13832 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13833 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13835 if (r
->core_driver_dependencies
) {
13836 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13839 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13840 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13844 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13846 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13849 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13851 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
13852 return NDR_ERR_SUCCESS
;
13855 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13858 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
13860 return NDR_ERR_SUCCESS
;
13863 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13865 const char *val
= NULL
;
13868 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13869 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13870 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13871 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13872 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13874 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13877 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13879 if (ndr_flags
& NDR_SCALARS
) {
13880 NDR_CHECK(ndr_push_align(ndr
, 5));
13882 uint32_t _flags_save_string
= ndr
->flags
;
13883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13884 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13885 ndr
->flags
= _flags_save_string
;
13887 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13889 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
13891 if (ndr_flags
& NDR_BUFFERS
) {
13893 uint32_t _flags_save_string
= ndr
->flags
;
13894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13895 if (r
->file_name
) {
13896 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13897 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13899 ndr
->flags
= _flags_save_string
;
13902 return NDR_ERR_SUCCESS
;
13905 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13907 uint32_t _ptr_file_name
;
13908 TALLOC_CTX
*_mem_save_file_name_0
;
13909 if (ndr_flags
& NDR_SCALARS
) {
13910 NDR_CHECK(ndr_pull_align(ndr
, 5));
13912 uint32_t _flags_save_string
= ndr
->flags
;
13913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13915 if (_ptr_file_name
) {
13916 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13917 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13919 r
->file_name
= NULL
;
13921 ndr
->flags
= _flags_save_string
;
13923 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13925 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
13927 if (ndr_flags
& NDR_BUFFERS
) {
13929 uint32_t _flags_save_string
= ndr
->flags
;
13930 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13931 if (r
->file_name
) {
13932 uint32_t _relative_save_offset
;
13933 _relative_save_offset
= ndr
->offset
;
13934 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13935 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13936 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13937 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13939 ndr
->offset
= _relative_save_offset
;
13941 ndr
->flags
= _flags_save_string
;
13944 return NDR_ERR_SUCCESS
;
13947 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13949 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13951 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13953 if (r
->file_name
) {
13954 ndr_print_string(ndr
, "file_name", r
->file_name
);
13957 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13958 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13962 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13964 uint32_t cntr_file_info_1
;
13965 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13967 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13968 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13970 if (r
->driver_name
) {
13971 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13974 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13976 if (r
->architecture
) {
13977 ndr_print_string(ndr
, "architecture", r
->architecture
);
13980 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13982 if (r
->file_info
) {
13983 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13985 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13987 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13988 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13995 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13996 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13998 if (r
->monitor_name
) {
13999 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14002 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14004 if (r
->default_datatype
) {
14005 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14008 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14010 if (r
->previous_names
) {
14011 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14014 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14015 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14016 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14018 if (r
->manufacturer_name
) {
14019 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14022 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14024 if (r
->manufacturer_url
) {
14025 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14028 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14030 if (r
->hardware_id
) {
14031 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14034 ndr_print_ptr(ndr
, "provider", r
->provider
);
14037 ndr_print_string(ndr
, "provider", r
->provider
);
14043 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14045 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
14048 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
14050 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14051 if (ndr_flags
& NDR_SCALARS
) {
14052 int level
= ndr_push_get_switch_value(ndr
, r
);
14053 NDR_CHECK(ndr_push_union_align(ndr
, 8));
14056 NDR_CHECK(ndr_push_align(ndr
, 5));
14057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14058 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14062 NDR_CHECK(ndr_push_align(ndr
, 5));
14063 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14064 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14068 NDR_CHECK(ndr_push_align(ndr
, 5));
14069 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14070 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14074 NDR_CHECK(ndr_push_align(ndr
, 5));
14075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14076 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14080 NDR_CHECK(ndr_push_align(ndr
, 5));
14081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14082 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14086 NDR_CHECK(ndr_push_align(ndr
, 8));
14087 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14088 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14092 NDR_CHECK(ndr_push_align(ndr
, 8));
14093 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14094 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14098 NDR_CHECK(ndr_push_align(ndr
, 8));
14099 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14100 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14108 if (ndr_flags
& NDR_BUFFERS
) {
14109 int level
= ndr_push_get_switch_value(ndr
, r
);
14110 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14113 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14117 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14121 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14125 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14129 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14133 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14137 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14141 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14149 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14150 return NDR_ERR_SUCCESS
;
14153 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
14155 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14157 level
= ndr_pull_get_switch_value(ndr
, r
);
14158 if (ndr_flags
& NDR_SCALARS
) {
14159 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
14162 NDR_CHECK(ndr_pull_align(ndr
, 5));
14163 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14164 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14168 NDR_CHECK(ndr_pull_align(ndr
, 5));
14169 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14170 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14174 NDR_CHECK(ndr_pull_align(ndr
, 5));
14175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14176 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14180 NDR_CHECK(ndr_pull_align(ndr
, 5));
14181 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14182 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14186 NDR_CHECK(ndr_pull_align(ndr
, 5));
14187 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14188 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14192 NDR_CHECK(ndr_pull_align(ndr
, 8));
14193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14194 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14198 NDR_CHECK(ndr_pull_align(ndr
, 8));
14199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14200 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14204 NDR_CHECK(ndr_pull_align(ndr
, 8));
14205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14206 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14214 if (ndr_flags
& NDR_BUFFERS
) {
14215 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14218 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14222 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14226 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14230 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14234 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14238 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14242 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14246 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14254 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14255 return NDR_ERR_SUCCESS
;
14258 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
14261 level
= ndr_print_get_switch_value(ndr
, r
);
14262 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
14265 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
14269 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
14273 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
14277 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
14281 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
14285 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
14289 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
14293 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
14302 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14304 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
14307 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
14309 if (ndr_flags
& NDR_SCALARS
) {
14310 NDR_CHECK(ndr_push_align(ndr
, 4));
14312 uint32_t _flags_save_string
= ndr
->flags
;
14313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14314 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14315 ndr
->flags
= _flags_save_string
;
14317 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14319 if (ndr_flags
& NDR_BUFFERS
) {
14321 return NDR_ERR_SUCCESS
;
14324 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
14326 if (ndr_flags
& NDR_SCALARS
) {
14327 NDR_CHECK(ndr_pull_align(ndr
, 4));
14329 uint32_t _flags_save_string
= ndr
->flags
;
14330 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14331 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14332 ndr
->flags
= _flags_save_string
;
14334 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14336 if (ndr_flags
& NDR_BUFFERS
) {
14338 return NDR_ERR_SUCCESS
;
14341 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
14343 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
14345 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14349 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14351 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
14354 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
14356 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14357 if (ndr_flags
& NDR_SCALARS
) {
14358 int level
= ndr_push_get_switch_value(ndr
, r
);
14359 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14362 NDR_CHECK(ndr_push_align(ndr
, 4));
14363 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14364 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14368 NDR_CHECK(ndr_push_align(ndr
, 4));
14369 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14370 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14375 if (ndr_flags
& NDR_BUFFERS
) {
14376 int level
= ndr_push_get_switch_value(ndr
, r
);
14377 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14387 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14388 return NDR_ERR_SUCCESS
;
14391 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
14393 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14395 level
= ndr_pull_get_switch_value(ndr
, r
);
14396 if (ndr_flags
& NDR_SCALARS
) {
14397 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14400 NDR_CHECK(ndr_pull_align(ndr
, 4));
14401 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14402 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14406 NDR_CHECK(ndr_pull_align(ndr
, 4));
14407 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14408 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14413 if (ndr_flags
& NDR_BUFFERS
) {
14414 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14424 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14425 return NDR_ERR_SUCCESS
;
14428 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
14431 level
= ndr_print_get_switch_value(ndr
, r
);
14432 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
14435 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14439 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14445 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14447 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
14450 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
14452 if (ndr_flags
& NDR_SCALARS
) {
14453 NDR_CHECK(ndr_push_align(ndr
, 5));
14455 uint32_t _flags_save_string
= ndr
->flags
;
14456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14457 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
14458 ndr
->flags
= _flags_save_string
;
14460 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14462 if (ndr_flags
& NDR_BUFFERS
) {
14464 uint32_t _flags_save_string
= ndr
->flags
;
14465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14466 if (r
->print_processor_name
) {
14467 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
14468 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
14470 ndr
->flags
= _flags_save_string
;
14473 return NDR_ERR_SUCCESS
;
14476 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
14478 uint32_t _ptr_print_processor_name
;
14479 TALLOC_CTX
*_mem_save_print_processor_name_0
;
14480 if (ndr_flags
& NDR_SCALARS
) {
14481 NDR_CHECK(ndr_pull_align(ndr
, 5));
14483 uint32_t _flags_save_string
= ndr
->flags
;
14484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
14486 if (_ptr_print_processor_name
) {
14487 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
14488 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
14490 r
->print_processor_name
= NULL
;
14492 ndr
->flags
= _flags_save_string
;
14494 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14496 if (ndr_flags
& NDR_BUFFERS
) {
14498 uint32_t _flags_save_string
= ndr
->flags
;
14499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14500 if (r
->print_processor_name
) {
14501 uint32_t _relative_save_offset
;
14502 _relative_save_offset
= ndr
->offset
;
14503 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
14504 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14505 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
14506 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
14507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
14508 ndr
->offset
= _relative_save_offset
;
14510 ndr
->flags
= _flags_save_string
;
14513 return NDR_ERR_SUCCESS
;
14516 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
14518 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
14520 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
14522 if (r
->print_processor_name
) {
14523 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
14529 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14531 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
14534 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
14536 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14537 if (ndr_flags
& NDR_SCALARS
) {
14538 int level
= ndr_push_get_switch_value(ndr
, r
);
14539 NDR_CHECK(ndr_push_union_align(ndr
, 5));
14542 NDR_CHECK(ndr_push_align(ndr
, 5));
14543 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14544 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14552 if (ndr_flags
& NDR_BUFFERS
) {
14553 int level
= ndr_push_get_switch_value(ndr
, r
);
14554 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14557 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14565 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14566 return NDR_ERR_SUCCESS
;
14569 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
14571 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14573 level
= ndr_pull_get_switch_value(ndr
, r
);
14574 if (ndr_flags
& NDR_SCALARS
) {
14575 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
14578 NDR_CHECK(ndr_pull_align(ndr
, 5));
14579 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14580 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14588 if (ndr_flags
& NDR_BUFFERS
) {
14589 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14592 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14600 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14601 return NDR_ERR_SUCCESS
;
14604 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14607 level
= ndr_print_get_switch_value(ndr
, r
);
14608 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14611 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14620 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14622 if (ndr_flags
& NDR_SCALARS
) {
14623 NDR_CHECK(ndr_push_align(ndr
, 4));
14625 uint32_t _flags_save_string
= ndr
->flags
;
14626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14628 ndr
->flags
= _flags_save_string
;
14630 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14632 if (ndr_flags
& NDR_BUFFERS
) {
14634 return NDR_ERR_SUCCESS
;
14637 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14639 if (ndr_flags
& NDR_SCALARS
) {
14640 NDR_CHECK(ndr_pull_align(ndr
, 4));
14642 uint32_t _flags_save_string
= ndr
->flags
;
14643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14644 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14645 ndr
->flags
= _flags_save_string
;
14647 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14649 if (ndr_flags
& NDR_BUFFERS
) {
14651 return NDR_ERR_SUCCESS
;
14654 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14656 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14658 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14662 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14664 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14667 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14669 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14670 if (ndr_flags
& NDR_SCALARS
) {
14671 int level
= ndr_push_get_switch_value(ndr
, r
);
14672 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14675 NDR_CHECK(ndr_push_align(ndr
, 4));
14676 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14677 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14681 NDR_CHECK(ndr_push_align(ndr
, 4));
14682 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14683 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14688 if (ndr_flags
& NDR_BUFFERS
) {
14689 int level
= ndr_push_get_switch_value(ndr
, r
);
14690 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14700 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14701 return NDR_ERR_SUCCESS
;
14704 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14706 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14708 level
= ndr_pull_get_switch_value(ndr
, r
);
14709 if (ndr_flags
& NDR_SCALARS
) {
14710 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14713 NDR_CHECK(ndr_pull_align(ndr
, 4));
14714 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14715 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14719 NDR_CHECK(ndr_pull_align(ndr
, 4));
14720 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14721 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14726 if (ndr_flags
& NDR_BUFFERS
) {
14727 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14737 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14738 return NDR_ERR_SUCCESS
;
14741 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14744 level
= ndr_print_get_switch_value(ndr
, r
);
14745 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14748 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14752 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14758 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14760 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14763 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14765 if (ndr_flags
& NDR_SCALARS
) {
14766 NDR_CHECK(ndr_push_align(ndr
, 5));
14767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14768 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14769 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14770 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14772 if (ndr_flags
& NDR_BUFFERS
) {
14773 if (r
->document_name
) {
14774 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14775 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14776 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14777 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14779 if (r
->output_file
) {
14780 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14781 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14782 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14783 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14787 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14788 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14789 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14792 return NDR_ERR_SUCCESS
;
14795 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14797 uint32_t _ptr_document_name
;
14798 TALLOC_CTX
*_mem_save_document_name_0
;
14799 uint32_t _ptr_output_file
;
14800 TALLOC_CTX
*_mem_save_output_file_0
;
14801 uint32_t _ptr_datatype
;
14802 TALLOC_CTX
*_mem_save_datatype_0
;
14803 if (ndr_flags
& NDR_SCALARS
) {
14804 NDR_CHECK(ndr_pull_align(ndr
, 5));
14805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14806 if (_ptr_document_name
) {
14807 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14809 r
->document_name
= NULL
;
14811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14812 if (_ptr_output_file
) {
14813 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14815 r
->output_file
= NULL
;
14817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14818 if (_ptr_datatype
) {
14819 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14821 r
->datatype
= NULL
;
14823 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14825 if (ndr_flags
& NDR_BUFFERS
) {
14826 if (r
->document_name
) {
14827 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14828 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14831 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14832 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
));
14834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14838 if (r
->output_file
) {
14839 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14840 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14843 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14844 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
));
14846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14847 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14851 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14852 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14855 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14856 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
));
14858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14863 return NDR_ERR_SUCCESS
;
14866 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14868 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14870 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14872 if (r
->document_name
) {
14873 ndr_print_string(ndr
, "document_name", r
->document_name
);
14876 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14878 if (r
->output_file
) {
14879 ndr_print_string(ndr
, "output_file", r
->output_file
);
14882 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14885 ndr_print_string(ndr
, "datatype", r
->datatype
);
14891 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14893 if (ndr_flags
& NDR_SCALARS
) {
14894 int level
= ndr_push_get_switch_value(ndr
, r
);
14895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14896 NDR_CHECK(ndr_push_union_align(ndr
, 5));
14899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14913 if (ndr_flags
& NDR_BUFFERS
) {
14914 int level
= ndr_push_get_switch_value(ndr
, r
);
14918 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14933 return NDR_ERR_SUCCESS
;
14936 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14940 TALLOC_CTX
*_mem_save_info1_0
;
14941 level
= ndr_pull_get_switch_value(ndr
, r
);
14942 if (ndr_flags
& NDR_SCALARS
) {
14943 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14944 if (_level
!= level
) {
14945 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
14947 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
14950 uint32_t _ptr_info1
;
14951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14953 NDR_PULL_ALLOC(ndr
, r
->info1
);
14970 if (ndr_flags
& NDR_BUFFERS
) {
14974 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14975 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14976 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14992 return NDR_ERR_SUCCESS
;
14995 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14998 level
= ndr_print_get_switch_value(ndr
, r
);
14999 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
15002 ndr_print_ptr(ndr
, "info1", r
->info1
);
15005 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
15022 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
15024 if (ndr_flags
& NDR_SCALARS
) {
15025 NDR_CHECK(ndr_push_align(ndr
, 4));
15026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15032 uint32_t _flags_save_string
= ndr
->flags
;
15033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15035 struct ndr_push
*_ndr_extra_string
;
15036 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15037 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15038 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15040 ndr
->flags
= _flags_save_string
;
15042 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15044 if (ndr_flags
& NDR_BUFFERS
) {
15046 return NDR_ERR_SUCCESS
;
15049 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
15051 if (ndr_flags
& NDR_SCALARS
) {
15052 NDR_CHECK(ndr_pull_align(ndr
, 4));
15053 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15055 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15057 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15059 uint32_t _flags_save_string
= ndr
->flags
;
15060 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15062 struct ndr_pull
*_ndr_extra_string
;
15063 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15064 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15065 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15067 ndr
->flags
= _flags_save_string
;
15069 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15071 if (ndr_flags
& NDR_BUFFERS
) {
15073 return NDR_ERR_SUCCESS
;
15076 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
15078 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
15080 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
);
15081 ndr_print_uint32(ndr
, "major", r
->major
);
15082 ndr_print_uint32(ndr
, "minor", r
->minor
);
15083 ndr_print_uint32(ndr
, "build", r
->build
);
15084 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15085 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15089 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15091 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
15094 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
15096 if (ndr_flags
& NDR_SCALARS
) {
15097 NDR_CHECK(ndr_push_align(ndr
, 4));
15098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15104 uint32_t _flags_save_string
= ndr
->flags
;
15105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15107 struct ndr_push
*_ndr_extra_string
;
15108 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15109 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15110 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15112 ndr
->flags
= _flags_save_string
;
15114 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
15115 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
15116 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
15117 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
15118 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
15119 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15121 if (ndr_flags
& NDR_BUFFERS
) {
15123 return NDR_ERR_SUCCESS
;
15126 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
15128 if (ndr_flags
& NDR_SCALARS
) {
15129 NDR_CHECK(ndr_pull_align(ndr
, 4));
15130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15132 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15136 uint32_t _flags_save_string
= ndr
->flags
;
15137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15139 struct ndr_pull
*_ndr_extra_string
;
15140 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15141 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15142 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15144 ndr
->flags
= _flags_save_string
;
15146 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
15147 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
15148 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
15149 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
15150 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
15151 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15153 if (ndr_flags
& NDR_BUFFERS
) {
15155 return NDR_ERR_SUCCESS
;
15158 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
15160 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
15162 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
);
15163 ndr_print_uint32(ndr
, "major", r
->major
);
15164 ndr_print_uint32(ndr
, "minor", r
->minor
);
15165 ndr_print_uint32(ndr
, "build", r
->build
);
15166 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15167 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15168 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
15169 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
15170 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
15171 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
15172 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
15176 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15178 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
15181 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
15183 if (ndr_flags
& NDR_SCALARS
) {
15184 int level
= ndr_push_get_switch_value(ndr
, r
);
15185 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15192 uint32_t _flags_save_string
= ndr
->flags
;
15193 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15194 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
15195 ndr
->flags
= _flags_save_string
;
15201 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15203 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
15204 ndr
->flags
= _flags_save_DATA_BLOB
;
15209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
15212 case REG_MULTI_SZ
: {
15214 uint32_t _flags_save_string_array
= ndr
->flags
;
15215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15216 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
15217 ndr
->flags
= _flags_save_string_array
;
15223 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15224 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15225 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
15226 ndr
->flags
= _flags_save_DATA_BLOB
;
15232 if (ndr_flags
& NDR_BUFFERS
) {
15233 int level
= ndr_push_get_switch_value(ndr
, r
);
15255 return NDR_ERR_SUCCESS
;
15258 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
15261 level
= ndr_pull_get_switch_value(ndr
, r
);
15262 if (ndr_flags
& NDR_SCALARS
) {
15263 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15270 uint32_t _flags_save_string
= ndr
->flags
;
15271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15272 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
15273 ndr
->flags
= _flags_save_string
;
15279 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15280 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15281 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
15282 ndr
->flags
= _flags_save_DATA_BLOB
;
15287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
15290 case REG_MULTI_SZ
: {
15292 uint32_t _flags_save_string_array
= ndr
->flags
;
15293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15294 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
15295 ndr
->flags
= _flags_save_string_array
;
15301 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15303 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
15304 ndr
->flags
= _flags_save_DATA_BLOB
;
15310 if (ndr_flags
& NDR_BUFFERS
) {
15332 return NDR_ERR_SUCCESS
;
15335 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
15338 level
= ndr_print_get_switch_value(ndr
, r
);
15339 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
15345 ndr_print_string(ndr
, "string", r
->string
);
15349 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
15353 ndr_print_uint32(ndr
, "value", r
->value
);
15357 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
15361 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
15367 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15369 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
15372 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
15374 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
15375 return NDR_ERR_SUCCESS
;
15378 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
15381 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
15383 return NDR_ERR_SUCCESS
;
15386 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
15388 const char *val
= NULL
;
15391 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
15392 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
15393 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
15395 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15398 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
15400 if (ndr_flags
& NDR_SCALARS
) {
15401 NDR_CHECK(ndr_push_align(ndr
, 4));
15402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
15403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
15404 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15406 if (ndr_flags
& NDR_BUFFERS
) {
15408 return NDR_ERR_SUCCESS
;
15411 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
15413 if (ndr_flags
& NDR_SCALARS
) {
15414 NDR_CHECK(ndr_pull_align(ndr
, 4));
15415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
15416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
15417 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15419 if (ndr_flags
& NDR_BUFFERS
) {
15421 return NDR_ERR_SUCCESS
;
15424 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
15426 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
15428 ndr_print_uint32(ndr
, "width", r
->width
);
15429 ndr_print_uint32(ndr
, "height", r
->height
);
15433 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
15435 if (ndr_flags
& NDR_SCALARS
) {
15436 NDR_CHECK(ndr_push_align(ndr
, 4));
15437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
15438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
15439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
15440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
15441 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15443 if (ndr_flags
& NDR_BUFFERS
) {
15445 return NDR_ERR_SUCCESS
;
15448 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
15450 if (ndr_flags
& NDR_SCALARS
) {
15451 NDR_CHECK(ndr_pull_align(ndr
, 4));
15452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
15453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
15454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
15455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
15456 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15458 if (ndr_flags
& NDR_BUFFERS
) {
15460 return NDR_ERR_SUCCESS
;
15463 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
15465 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
15467 ndr_print_uint32(ndr
, "left", r
->left
);
15468 ndr_print_uint32(ndr
, "top", r
->top
);
15469 ndr_print_uint32(ndr
, "right", r
->right
);
15470 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
15474 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
15476 if (ndr_flags
& NDR_SCALARS
) {
15477 NDR_CHECK(ndr_push_align(ndr
, 5));
15478 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15480 uint32_t _flags_save_string
= ndr
->flags
;
15481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15482 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15483 ndr
->flags
= _flags_save_string
;
15485 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15486 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15487 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15489 if (ndr_flags
& NDR_BUFFERS
) {
15491 uint32_t _flags_save_string
= ndr
->flags
;
15492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15493 if (r
->form_name
) {
15494 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15495 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15497 ndr
->flags
= _flags_save_string
;
15500 return NDR_ERR_SUCCESS
;
15503 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
15505 uint32_t _ptr_form_name
;
15506 TALLOC_CTX
*_mem_save_form_name_0
;
15507 if (ndr_flags
& NDR_SCALARS
) {
15508 NDR_CHECK(ndr_pull_align(ndr
, 5));
15509 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15511 uint32_t _flags_save_string
= ndr
->flags
;
15512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15513 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15514 if (_ptr_form_name
) {
15515 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15516 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15518 r
->form_name
= NULL
;
15520 ndr
->flags
= _flags_save_string
;
15522 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15523 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15524 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15526 if (ndr_flags
& NDR_BUFFERS
) {
15528 uint32_t _flags_save_string
= ndr
->flags
;
15529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15530 if (r
->form_name
) {
15531 uint32_t _relative_save_offset
;
15532 _relative_save_offset
= ndr
->offset
;
15533 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15534 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15535 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15536 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15538 ndr
->offset
= _relative_save_offset
;
15540 ndr
->flags
= _flags_save_string
;
15543 return NDR_ERR_SUCCESS
;
15546 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
15548 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
15550 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15551 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15553 if (r
->form_name
) {
15554 ndr_print_string(ndr
, "form_name", r
->form_name
);
15557 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15558 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15562 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15564 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
15567 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15570 return NDR_ERR_SUCCESS
;
15573 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15578 return NDR_ERR_SUCCESS
;
15581 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15583 ndr_print_uint32(ndr
, name
, r
);
15585 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
15586 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
15587 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
15591 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
15593 if (ndr_flags
& NDR_SCALARS
) {
15594 NDR_CHECK(ndr_push_align(ndr
, 5));
15595 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15597 uint32_t _flags_save_string
= ndr
->flags
;
15598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15600 ndr
->flags
= _flags_save_string
;
15602 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15603 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15605 uint32_t _flags_save_string
= ndr
->flags
;
15606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15607 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
15608 ndr
->flags
= _flags_save_string
;
15610 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15612 uint32_t _flags_save_string
= ndr
->flags
;
15613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15614 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
15615 ndr
->flags
= _flags_save_string
;
15617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15619 uint32_t _flags_save_string
= ndr
->flags
;
15620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15621 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
15622 ndr
->flags
= _flags_save_string
;
15624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15625 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15627 if (ndr_flags
& NDR_BUFFERS
) {
15629 uint32_t _flags_save_string
= ndr
->flags
;
15630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15631 if (r
->form_name
) {
15632 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15633 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15635 ndr
->flags
= _flags_save_string
;
15638 uint32_t _flags_save_string
= ndr
->flags
;
15639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15641 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15642 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15644 ndr
->flags
= _flags_save_string
;
15647 uint32_t _flags_save_string
= ndr
->flags
;
15648 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15650 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15651 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15653 ndr
->flags
= _flags_save_string
;
15656 uint32_t _flags_save_string
= ndr
->flags
;
15657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15658 if (r
->display_name
) {
15659 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15660 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15662 ndr
->flags
= _flags_save_string
;
15665 return NDR_ERR_SUCCESS
;
15668 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15670 uint32_t _ptr_form_name
;
15671 TALLOC_CTX
*_mem_save_form_name_0
;
15672 uint32_t _ptr_keyword
;
15673 TALLOC_CTX
*_mem_save_keyword_0
;
15674 uint32_t _ptr_mui_dll
;
15675 TALLOC_CTX
*_mem_save_mui_dll_0
;
15676 uint32_t _ptr_display_name
;
15677 TALLOC_CTX
*_mem_save_display_name_0
;
15678 if (ndr_flags
& NDR_SCALARS
) {
15679 NDR_CHECK(ndr_pull_align(ndr
, 5));
15680 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15682 uint32_t _flags_save_string
= ndr
->flags
;
15683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15685 if (_ptr_form_name
) {
15686 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15687 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15689 r
->form_name
= NULL
;
15691 ndr
->flags
= _flags_save_string
;
15693 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15694 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15696 uint32_t _flags_save_string
= ndr
->flags
;
15697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15699 if (_ptr_keyword
) {
15700 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15701 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15705 ndr
->flags
= _flags_save_string
;
15707 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15709 uint32_t _flags_save_string
= ndr
->flags
;
15710 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15712 if (_ptr_mui_dll
) {
15713 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15714 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15718 ndr
->flags
= _flags_save_string
;
15720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15722 uint32_t _flags_save_string
= ndr
->flags
;
15723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15725 if (_ptr_display_name
) {
15726 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15727 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15729 r
->display_name
= NULL
;
15731 ndr
->flags
= _flags_save_string
;
15733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15734 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15736 if (ndr_flags
& NDR_BUFFERS
) {
15738 uint32_t _flags_save_string
= ndr
->flags
;
15739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15740 if (r
->form_name
) {
15741 uint32_t _relative_save_offset
;
15742 _relative_save_offset
= ndr
->offset
;
15743 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15744 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15745 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15746 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15748 ndr
->offset
= _relative_save_offset
;
15750 ndr
->flags
= _flags_save_string
;
15753 uint32_t _flags_save_string
= ndr
->flags
;
15754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15756 uint32_t _relative_save_offset
;
15757 _relative_save_offset
= ndr
->offset
;
15758 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15759 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15760 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15763 ndr
->offset
= _relative_save_offset
;
15765 ndr
->flags
= _flags_save_string
;
15768 uint32_t _flags_save_string
= ndr
->flags
;
15769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15771 uint32_t _relative_save_offset
;
15772 _relative_save_offset
= ndr
->offset
;
15773 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15774 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15775 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15776 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15778 ndr
->offset
= _relative_save_offset
;
15780 ndr
->flags
= _flags_save_string
;
15783 uint32_t _flags_save_string
= ndr
->flags
;
15784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15785 if (r
->display_name
) {
15786 uint32_t _relative_save_offset
;
15787 _relative_save_offset
= ndr
->offset
;
15788 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15789 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15790 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15791 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15793 ndr
->offset
= _relative_save_offset
;
15795 ndr
->flags
= _flags_save_string
;
15798 return NDR_ERR_SUCCESS
;
15801 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15803 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15805 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15806 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15808 if (r
->form_name
) {
15809 ndr_print_string(ndr
, "form_name", r
->form_name
);
15812 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15813 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15814 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15817 ndr_print_string(ndr
, "keyword", r
->keyword
);
15820 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15821 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15824 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15827 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15828 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15830 if (r
->display_name
) {
15831 ndr_print_string(ndr
, "display_name", r
->display_name
);
15834 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15838 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15840 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15843 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15845 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15846 if (ndr_flags
& NDR_SCALARS
) {
15847 int level
= ndr_push_get_switch_value(ndr
, r
);
15848 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15851 NDR_CHECK(ndr_push_align(ndr
, 5));
15852 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15853 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15857 NDR_CHECK(ndr_push_align(ndr
, 5));
15858 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15859 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15867 if (ndr_flags
& NDR_BUFFERS
) {
15868 int level
= ndr_push_get_switch_value(ndr
, r
);
15869 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15872 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15876 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15884 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15885 return NDR_ERR_SUCCESS
;
15888 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15890 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15892 level
= ndr_pull_get_switch_value(ndr
, r
);
15893 if (ndr_flags
& NDR_SCALARS
) {
15894 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15897 NDR_CHECK(ndr_pull_align(ndr
, 5));
15898 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15899 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15903 NDR_CHECK(ndr_pull_align(ndr
, 5));
15904 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15905 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15913 if (ndr_flags
& NDR_BUFFERS
) {
15914 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15917 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15921 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15929 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15930 return NDR_ERR_SUCCESS
;
15933 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15936 level
= ndr_print_get_switch_value(ndr
, r
);
15937 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15940 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15944 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15953 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15955 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15958 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15960 if (ndr_flags
& NDR_SCALARS
) {
15961 NDR_CHECK(ndr_push_align(ndr
, 5));
15962 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15964 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15965 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15966 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15968 if (ndr_flags
& NDR_BUFFERS
) {
15969 if (r
->form_name
) {
15970 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15973 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15976 return NDR_ERR_SUCCESS
;
15979 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15981 uint32_t _ptr_form_name
;
15982 TALLOC_CTX
*_mem_save_form_name_0
;
15983 if (ndr_flags
& NDR_SCALARS
) {
15984 NDR_CHECK(ndr_pull_align(ndr
, 5));
15985 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15986 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15987 if (_ptr_form_name
) {
15988 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15990 r
->form_name
= NULL
;
15992 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15993 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15994 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15996 if (ndr_flags
& NDR_BUFFERS
) {
15997 if (r
->form_name
) {
15998 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15999 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16000 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16001 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16002 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16003 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
));
16005 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16006 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16010 return NDR_ERR_SUCCESS
;
16013 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
16015 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
16017 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16018 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16020 if (r
->form_name
) {
16021 ndr_print_string(ndr
, "form_name", r
->form_name
);
16024 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16025 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16029 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
16031 if (ndr_flags
& NDR_SCALARS
) {
16032 NDR_CHECK(ndr_push_align(ndr
, 5));
16033 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16035 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16036 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
16038 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
16040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
16042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
16043 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16045 if (ndr_flags
& NDR_BUFFERS
) {
16046 if (r
->form_name
) {
16047 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16048 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16049 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16050 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16053 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16054 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16055 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
16059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16060 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16061 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16064 if (r
->display_name
) {
16065 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16066 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16071 return NDR_ERR_SUCCESS
;
16074 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
16076 uint32_t _ptr_form_name
;
16077 TALLOC_CTX
*_mem_save_form_name_0
;
16078 uint32_t _ptr_keyword
;
16079 TALLOC_CTX
*_mem_save_keyword_0
;
16080 uint32_t _ptr_mui_dll
;
16081 TALLOC_CTX
*_mem_save_mui_dll_0
;
16082 uint32_t _ptr_display_name
;
16083 TALLOC_CTX
*_mem_save_display_name_0
;
16084 if (ndr_flags
& NDR_SCALARS
) {
16085 NDR_CHECK(ndr_pull_align(ndr
, 5));
16086 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16088 if (_ptr_form_name
) {
16089 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16091 r
->form_name
= NULL
;
16093 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16094 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16096 if (_ptr_keyword
) {
16097 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16101 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16103 if (_ptr_mui_dll
) {
16104 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16110 if (_ptr_display_name
) {
16111 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16113 r
->display_name
= NULL
;
16115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
16116 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16118 if (ndr_flags
& NDR_BUFFERS
) {
16119 if (r
->form_name
) {
16120 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16121 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16122 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16123 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16124 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16125 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
));
16127 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16128 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16132 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16133 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16134 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
16135 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
16136 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
16137 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
));
16139 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
16140 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
16141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16144 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16145 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
16147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
16148 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
16149 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
));
16151 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
16152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
16153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16155 if (r
->display_name
) {
16156 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16157 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16158 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
16159 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
16160 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
16161 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
));
16163 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
16164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
16165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16168 return NDR_ERR_SUCCESS
;
16171 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
16173 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
16175 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16176 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16178 if (r
->form_name
) {
16179 ndr_print_string(ndr
, "form_name", r
->form_name
);
16182 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16183 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16184 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16187 ndr_print_string(ndr
, "keyword", r
->keyword
);
16190 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16191 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16194 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16197 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16198 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16200 if (r
->display_name
) {
16201 ndr_print_string(ndr
, "display_name", r
->display_name
);
16204 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
16208 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
16210 if (ndr_flags
& NDR_SCALARS
) {
16211 int level
= ndr_push_get_switch_value(ndr
, r
);
16212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
16213 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16216 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
16220 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
16224 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16227 if (ndr_flags
& NDR_BUFFERS
) {
16228 int level
= ndr_push_get_switch_value(ndr
, r
);
16232 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16238 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16243 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16246 return NDR_ERR_SUCCESS
;
16249 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
16253 TALLOC_CTX
*_mem_save_info1_0
;
16254 TALLOC_CTX
*_mem_save_info2_0
;
16255 level
= ndr_pull_get_switch_value(ndr
, r
);
16256 if (ndr_flags
& NDR_SCALARS
) {
16257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16258 if (_level
!= level
) {
16259 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
16261 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16264 uint32_t _ptr_info1
;
16265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16267 NDR_PULL_ALLOC(ndr
, r
->info1
);
16274 uint32_t _ptr_info2
;
16275 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
16277 NDR_PULL_ALLOC(ndr
, r
->info2
);
16284 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16287 if (ndr_flags
& NDR_BUFFERS
) {
16291 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16292 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16293 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16294 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16300 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16301 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
16302 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
16308 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16311 return NDR_ERR_SUCCESS
;
16314 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
16317 level
= ndr_print_get_switch_value(ndr
, r
);
16318 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
16321 ndr_print_ptr(ndr
, "info1", r
->info1
);
16324 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
16330 ndr_print_ptr(ndr
, "info2", r
->info2
);
16333 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
16339 ndr_print_bad_level(ndr
, name
, level
);
16343 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
16345 if (ndr_flags
& NDR_SCALARS
) {
16346 NDR_CHECK(ndr_push_align(ndr
, 5));
16348 uint32_t _flags_save_string
= ndr
->flags
;
16349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16350 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16351 ndr
->flags
= _flags_save_string
;
16353 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16355 if (ndr_flags
& NDR_BUFFERS
) {
16357 uint32_t _flags_save_string
= ndr
->flags
;
16358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16359 if (r
->port_name
) {
16360 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16361 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16363 ndr
->flags
= _flags_save_string
;
16366 return NDR_ERR_SUCCESS
;
16369 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
16371 uint32_t _ptr_port_name
;
16372 TALLOC_CTX
*_mem_save_port_name_0
;
16373 if (ndr_flags
& NDR_SCALARS
) {
16374 NDR_CHECK(ndr_pull_align(ndr
, 5));
16376 uint32_t _flags_save_string
= ndr
->flags
;
16377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16379 if (_ptr_port_name
) {
16380 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16381 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16383 r
->port_name
= NULL
;
16385 ndr
->flags
= _flags_save_string
;
16387 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16389 if (ndr_flags
& NDR_BUFFERS
) {
16391 uint32_t _flags_save_string
= ndr
->flags
;
16392 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16393 if (r
->port_name
) {
16394 uint32_t _relative_save_offset
;
16395 _relative_save_offset
= ndr
->offset
;
16396 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16397 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16398 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16399 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16401 ndr
->offset
= _relative_save_offset
;
16403 ndr
->flags
= _flags_save_string
;
16406 return NDR_ERR_SUCCESS
;
16409 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
16411 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
16413 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16415 if (r
->port_name
) {
16416 ndr_print_string(ndr
, "port_name", r
->port_name
);
16422 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16424 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
16427 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16430 return NDR_ERR_SUCCESS
;
16433 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16438 return NDR_ERR_SUCCESS
;
16441 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16443 ndr_print_uint32(ndr
, name
, r
);
16445 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
16446 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
16447 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
16448 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
16452 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
16454 if (ndr_flags
& NDR_SCALARS
) {
16455 NDR_CHECK(ndr_push_align(ndr
, 5));
16457 uint32_t _flags_save_string
= ndr
->flags
;
16458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16459 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16460 ndr
->flags
= _flags_save_string
;
16463 uint32_t _flags_save_string
= ndr
->flags
;
16464 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16465 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16466 ndr
->flags
= _flags_save_string
;
16469 uint32_t _flags_save_string
= ndr
->flags
;
16470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16471 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
16472 ndr
->flags
= _flags_save_string
;
16474 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
16475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16476 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16478 if (ndr_flags
& NDR_BUFFERS
) {
16480 uint32_t _flags_save_string
= ndr
->flags
;
16481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16482 if (r
->port_name
) {
16483 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16484 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16486 ndr
->flags
= _flags_save_string
;
16489 uint32_t _flags_save_string
= ndr
->flags
;
16490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16491 if (r
->monitor_name
) {
16492 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16493 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16495 ndr
->flags
= _flags_save_string
;
16498 uint32_t _flags_save_string
= ndr
->flags
;
16499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16500 if (r
->description
) {
16501 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
16502 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
16504 ndr
->flags
= _flags_save_string
;
16507 return NDR_ERR_SUCCESS
;
16510 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
16512 uint32_t _ptr_port_name
;
16513 TALLOC_CTX
*_mem_save_port_name_0
;
16514 uint32_t _ptr_monitor_name
;
16515 TALLOC_CTX
*_mem_save_monitor_name_0
;
16516 uint32_t _ptr_description
;
16517 TALLOC_CTX
*_mem_save_description_0
;
16518 if (ndr_flags
& NDR_SCALARS
) {
16519 NDR_CHECK(ndr_pull_align(ndr
, 5));
16521 uint32_t _flags_save_string
= ndr
->flags
;
16522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16524 if (_ptr_port_name
) {
16525 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16526 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16528 r
->port_name
= NULL
;
16530 ndr
->flags
= _flags_save_string
;
16533 uint32_t _flags_save_string
= ndr
->flags
;
16534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16536 if (_ptr_monitor_name
) {
16537 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16538 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16540 r
->monitor_name
= NULL
;
16542 ndr
->flags
= _flags_save_string
;
16545 uint32_t _flags_save_string
= ndr
->flags
;
16546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
16548 if (_ptr_description
) {
16549 NDR_PULL_ALLOC(ndr
, r
->description
);
16550 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
16552 r
->description
= NULL
;
16554 ndr
->flags
= _flags_save_string
;
16556 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
16557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16558 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16560 if (ndr_flags
& NDR_BUFFERS
) {
16562 uint32_t _flags_save_string
= ndr
->flags
;
16563 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16564 if (r
->port_name
) {
16565 uint32_t _relative_save_offset
;
16566 _relative_save_offset
= ndr
->offset
;
16567 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16568 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16569 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16570 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16572 ndr
->offset
= _relative_save_offset
;
16574 ndr
->flags
= _flags_save_string
;
16577 uint32_t _flags_save_string
= ndr
->flags
;
16578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16579 if (r
->monitor_name
) {
16580 uint32_t _relative_save_offset
;
16581 _relative_save_offset
= ndr
->offset
;
16582 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16583 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16584 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16585 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16587 ndr
->offset
= _relative_save_offset
;
16589 ndr
->flags
= _flags_save_string
;
16592 uint32_t _flags_save_string
= ndr
->flags
;
16593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16594 if (r
->description
) {
16595 uint32_t _relative_save_offset
;
16596 _relative_save_offset
= ndr
->offset
;
16597 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
16598 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16599 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
16600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
16601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
16602 ndr
->offset
= _relative_save_offset
;
16604 ndr
->flags
= _flags_save_string
;
16607 return NDR_ERR_SUCCESS
;
16610 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
16612 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
16614 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16616 if (r
->port_name
) {
16617 ndr_print_string(ndr
, "port_name", r
->port_name
);
16620 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16622 if (r
->monitor_name
) {
16623 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16626 ndr_print_ptr(ndr
, "description", r
->description
);
16628 if (r
->description
) {
16629 ndr_print_string(ndr
, "description", r
->description
);
16632 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
16633 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16637 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16639 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
16642 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
16644 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16645 return NDR_ERR_SUCCESS
;
16648 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16651 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16653 return NDR_ERR_SUCCESS
;
16656 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16658 const char *val
= NULL
;
16661 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16662 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16663 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16664 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16665 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16666 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16667 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16668 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16669 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16670 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16671 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16672 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16673 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16675 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16678 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16680 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16681 return NDR_ERR_SUCCESS
;
16684 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16687 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16689 return NDR_ERR_SUCCESS
;
16692 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16694 const char *val
= NULL
;
16697 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16698 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16699 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16701 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16704 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16706 if (ndr_flags
& NDR_SCALARS
) {
16707 NDR_CHECK(ndr_push_align(ndr
, 5));
16708 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16710 uint32_t _flags_save_string
= ndr
->flags
;
16711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16712 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16713 ndr
->flags
= _flags_save_string
;
16715 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16716 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16718 if (ndr_flags
& NDR_BUFFERS
) {
16720 uint32_t _flags_save_string
= ndr
->flags
;
16721 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16722 if (r
->status_string
) {
16723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16724 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16726 ndr
->flags
= _flags_save_string
;
16729 return NDR_ERR_SUCCESS
;
16732 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16734 uint32_t _ptr_status_string
;
16735 TALLOC_CTX
*_mem_save_status_string_0
;
16736 if (ndr_flags
& NDR_SCALARS
) {
16737 NDR_CHECK(ndr_pull_align(ndr
, 5));
16738 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16740 uint32_t _flags_save_string
= ndr
->flags
;
16741 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16743 if (_ptr_status_string
) {
16744 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16745 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16747 r
->status_string
= NULL
;
16749 ndr
->flags
= _flags_save_string
;
16751 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16752 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16754 if (ndr_flags
& NDR_BUFFERS
) {
16756 uint32_t _flags_save_string
= ndr
->flags
;
16757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16758 if (r
->status_string
) {
16759 uint32_t _relative_save_offset
;
16760 _relative_save_offset
= ndr
->offset
;
16761 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16762 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16763 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16764 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16766 ndr
->offset
= _relative_save_offset
;
16768 ndr
->flags
= _flags_save_string
;
16771 return NDR_ERR_SUCCESS
;
16774 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16776 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16778 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16779 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16781 if (r
->status_string
) {
16782 ndr_print_string(ndr
, "status_string", r
->status_string
);
16785 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16789 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16791 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16794 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16796 if (ndr_flags
& NDR_SCALARS
) {
16797 NDR_CHECK(ndr_push_align(ndr
, 5));
16799 uint32_t _flags_save_string
= ndr
->flags
;
16800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16801 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16802 ndr
->flags
= _flags_save_string
;
16804 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16805 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16807 if (ndr_flags
& NDR_BUFFERS
) {
16809 uint32_t _flags_save_string
= ndr
->flags
;
16810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16811 if (r
->port_name
) {
16812 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16813 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16815 ndr
->flags
= _flags_save_string
;
16818 return NDR_ERR_SUCCESS
;
16821 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16823 uint32_t _ptr_port_name
;
16824 TALLOC_CTX
*_mem_save_port_name_0
;
16825 if (ndr_flags
& NDR_SCALARS
) {
16826 NDR_CHECK(ndr_pull_align(ndr
, 5));
16828 uint32_t _flags_save_string
= ndr
->flags
;
16829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16830 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16831 if (_ptr_port_name
) {
16832 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16833 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16835 r
->port_name
= NULL
;
16837 ndr
->flags
= _flags_save_string
;
16839 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16840 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16842 if (ndr_flags
& NDR_BUFFERS
) {
16844 uint32_t _flags_save_string
= ndr
->flags
;
16845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16846 if (r
->port_name
) {
16847 uint32_t _relative_save_offset
;
16848 _relative_save_offset
= ndr
->offset
;
16849 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16850 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16851 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16852 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16853 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16854 ndr
->offset
= _relative_save_offset
;
16856 ndr
->flags
= _flags_save_string
;
16859 return NDR_ERR_SUCCESS
;
16862 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16864 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16866 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16868 if (r
->port_name
) {
16869 ndr_print_string(ndr
, "port_name", r
->port_name
);
16872 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16876 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16878 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16881 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16883 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16884 if (ndr_flags
& NDR_SCALARS
) {
16885 int level
= ndr_push_get_switch_value(ndr
, r
);
16886 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16889 NDR_CHECK(ndr_push_align(ndr
, 5));
16890 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16891 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16895 NDR_CHECK(ndr_push_align(ndr
, 5));
16896 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16897 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16901 NDR_CHECK(ndr_push_align(ndr
, 5));
16902 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16903 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16907 NDR_CHECK(ndr_push_align(ndr
, 5));
16908 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16909 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16917 if (ndr_flags
& NDR_BUFFERS
) {
16918 int level
= ndr_push_get_switch_value(ndr
, r
);
16919 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16922 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16926 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16930 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16934 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16942 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16943 return NDR_ERR_SUCCESS
;
16946 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16948 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16950 level
= ndr_pull_get_switch_value(ndr
, r
);
16951 if (ndr_flags
& NDR_SCALARS
) {
16952 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16955 NDR_CHECK(ndr_pull_align(ndr
, 5));
16956 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16957 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16961 NDR_CHECK(ndr_pull_align(ndr
, 5));
16962 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16963 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16967 NDR_CHECK(ndr_pull_align(ndr
, 5));
16968 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16969 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16973 NDR_CHECK(ndr_pull_align(ndr
, 5));
16974 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16975 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16983 if (ndr_flags
& NDR_BUFFERS
) {
16984 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16987 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16991 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16995 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16999 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17007 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17008 return NDR_ERR_SUCCESS
;
17011 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
17014 level
= ndr_print_get_switch_value(ndr
, r
);
17015 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
17018 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
17022 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
17026 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
17030 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
17039 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
17041 if (ndr_flags
& NDR_SCALARS
) {
17042 NDR_CHECK(ndr_push_align(ndr
, 5));
17044 uint32_t _flags_save_string
= ndr
->flags
;
17045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17046 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17047 ndr
->flags
= _flags_save_string
;
17049 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17051 if (ndr_flags
& NDR_BUFFERS
) {
17053 uint32_t _flags_save_string
= ndr
->flags
;
17054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17055 if (r
->monitor_name
) {
17056 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17057 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17059 ndr
->flags
= _flags_save_string
;
17062 return NDR_ERR_SUCCESS
;
17065 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
17067 uint32_t _ptr_monitor_name
;
17068 TALLOC_CTX
*_mem_save_monitor_name_0
;
17069 if (ndr_flags
& NDR_SCALARS
) {
17070 NDR_CHECK(ndr_pull_align(ndr
, 5));
17072 uint32_t _flags_save_string
= ndr
->flags
;
17073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17074 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17075 if (_ptr_monitor_name
) {
17076 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17077 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17079 r
->monitor_name
= NULL
;
17081 ndr
->flags
= _flags_save_string
;
17083 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17085 if (ndr_flags
& NDR_BUFFERS
) {
17087 uint32_t _flags_save_string
= ndr
->flags
;
17088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17089 if (r
->monitor_name
) {
17090 uint32_t _relative_save_offset
;
17091 _relative_save_offset
= ndr
->offset
;
17092 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17093 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17094 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17095 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17097 ndr
->offset
= _relative_save_offset
;
17099 ndr
->flags
= _flags_save_string
;
17102 return NDR_ERR_SUCCESS
;
17105 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
17107 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
17109 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17111 if (r
->monitor_name
) {
17112 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17118 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17120 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
17123 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
17125 if (ndr_flags
& NDR_SCALARS
) {
17126 NDR_CHECK(ndr_push_align(ndr
, 5));
17128 uint32_t _flags_save_string
= ndr
->flags
;
17129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17130 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17131 ndr
->flags
= _flags_save_string
;
17134 uint32_t _flags_save_string
= ndr
->flags
;
17135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17136 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
17137 ndr
->flags
= _flags_save_string
;
17140 uint32_t _flags_save_string
= ndr
->flags
;
17141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17142 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
17143 ndr
->flags
= _flags_save_string
;
17145 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17147 if (ndr_flags
& NDR_BUFFERS
) {
17149 uint32_t _flags_save_string
= ndr
->flags
;
17150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17151 if (r
->monitor_name
) {
17152 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17153 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17155 ndr
->flags
= _flags_save_string
;
17158 uint32_t _flags_save_string
= ndr
->flags
;
17159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17160 if (r
->environment
) {
17161 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
17162 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
17164 ndr
->flags
= _flags_save_string
;
17167 uint32_t _flags_save_string
= ndr
->flags
;
17168 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17170 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
17171 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
17173 ndr
->flags
= _flags_save_string
;
17176 return NDR_ERR_SUCCESS
;
17179 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
17181 uint32_t _ptr_monitor_name
;
17182 TALLOC_CTX
*_mem_save_monitor_name_0
;
17183 uint32_t _ptr_environment
;
17184 TALLOC_CTX
*_mem_save_environment_0
;
17185 uint32_t _ptr_dll_name
;
17186 TALLOC_CTX
*_mem_save_dll_name_0
;
17187 if (ndr_flags
& NDR_SCALARS
) {
17188 NDR_CHECK(ndr_pull_align(ndr
, 5));
17190 uint32_t _flags_save_string
= ndr
->flags
;
17191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17193 if (_ptr_monitor_name
) {
17194 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17195 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17197 r
->monitor_name
= NULL
;
17199 ndr
->flags
= _flags_save_string
;
17202 uint32_t _flags_save_string
= ndr
->flags
;
17203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
17205 if (_ptr_environment
) {
17206 NDR_PULL_ALLOC(ndr
, r
->environment
);
17207 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
17209 r
->environment
= NULL
;
17211 ndr
->flags
= _flags_save_string
;
17214 uint32_t _flags_save_string
= ndr
->flags
;
17215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
17217 if (_ptr_dll_name
) {
17218 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
17219 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
17221 r
->dll_name
= NULL
;
17223 ndr
->flags
= _flags_save_string
;
17225 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17227 if (ndr_flags
& NDR_BUFFERS
) {
17229 uint32_t _flags_save_string
= ndr
->flags
;
17230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17231 if (r
->monitor_name
) {
17232 uint32_t _relative_save_offset
;
17233 _relative_save_offset
= ndr
->offset
;
17234 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17235 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17236 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17237 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17239 ndr
->offset
= _relative_save_offset
;
17241 ndr
->flags
= _flags_save_string
;
17244 uint32_t _flags_save_string
= ndr
->flags
;
17245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17246 if (r
->environment
) {
17247 uint32_t _relative_save_offset
;
17248 _relative_save_offset
= ndr
->offset
;
17249 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
17250 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17251 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
17252 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
17253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
17254 ndr
->offset
= _relative_save_offset
;
17256 ndr
->flags
= _flags_save_string
;
17259 uint32_t _flags_save_string
= ndr
->flags
;
17260 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17262 uint32_t _relative_save_offset
;
17263 _relative_save_offset
= ndr
->offset
;
17264 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
17265 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17266 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
17267 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
17268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
17269 ndr
->offset
= _relative_save_offset
;
17271 ndr
->flags
= _flags_save_string
;
17274 return NDR_ERR_SUCCESS
;
17277 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
17279 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
17281 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17283 if (r
->monitor_name
) {
17284 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17287 ndr_print_ptr(ndr
, "environment", r
->environment
);
17289 if (r
->environment
) {
17290 ndr_print_string(ndr
, "environment", r
->environment
);
17293 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
17296 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
17302 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17304 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
17307 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
17309 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17310 if (ndr_flags
& NDR_SCALARS
) {
17311 int level
= ndr_push_get_switch_value(ndr
, r
);
17312 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17315 NDR_CHECK(ndr_push_align(ndr
, 5));
17316 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17317 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17321 NDR_CHECK(ndr_push_align(ndr
, 5));
17322 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17323 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17331 if (ndr_flags
& NDR_BUFFERS
) {
17332 int level
= ndr_push_get_switch_value(ndr
, r
);
17333 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17336 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17340 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17348 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17349 return NDR_ERR_SUCCESS
;
17352 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
17354 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17356 level
= ndr_pull_get_switch_value(ndr
, r
);
17357 if (ndr_flags
& NDR_SCALARS
) {
17358 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17361 NDR_CHECK(ndr_pull_align(ndr
, 5));
17362 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17363 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17367 NDR_CHECK(ndr_pull_align(ndr
, 5));
17368 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17369 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17377 if (ndr_flags
& NDR_BUFFERS
) {
17378 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17381 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17385 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17393 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17394 return NDR_ERR_SUCCESS
;
17397 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
17400 level
= ndr_print_get_switch_value(ndr
, r
);
17401 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
17404 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
17408 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
17417 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17419 if (ndr_flags
& NDR_SCALARS
) {
17420 NDR_CHECK(ndr_push_align(ndr
, 5));
17422 uint32_t _flags_save_string
= ndr
->flags
;
17423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17424 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
17425 ndr
->flags
= _flags_save_string
;
17427 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17429 if (ndr_flags
& NDR_BUFFERS
) {
17431 uint32_t _flags_save_string
= ndr
->flags
;
17432 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17433 if (r
->name_array
) {
17434 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
17435 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
17437 ndr
->flags
= _flags_save_string
;
17440 return NDR_ERR_SUCCESS
;
17443 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
17445 uint32_t _ptr_name_array
;
17446 TALLOC_CTX
*_mem_save_name_array_0
;
17447 if (ndr_flags
& NDR_SCALARS
) {
17448 NDR_CHECK(ndr_pull_align(ndr
, 5));
17450 uint32_t _flags_save_string
= ndr
->flags
;
17451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17452 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
17453 if (_ptr_name_array
) {
17454 NDR_PULL_ALLOC(ndr
, r
->name_array
);
17455 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
17457 r
->name_array
= NULL
;
17459 ndr
->flags
= _flags_save_string
;
17461 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17463 if (ndr_flags
& NDR_BUFFERS
) {
17465 uint32_t _flags_save_string
= ndr
->flags
;
17466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17467 if (r
->name_array
) {
17468 uint32_t _relative_save_offset
;
17469 _relative_save_offset
= ndr
->offset
;
17470 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
17471 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17472 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
17473 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
17474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
17475 ndr
->offset
= _relative_save_offset
;
17477 ndr
->flags
= _flags_save_string
;
17480 return NDR_ERR_SUCCESS
;
17483 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17485 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
17487 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
17489 if (r
->name_array
) {
17490 ndr_print_string(ndr
, "name_array", r
->name_array
);
17496 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17498 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
17501 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
17503 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17504 if (ndr_flags
& NDR_SCALARS
) {
17505 int level
= ndr_push_get_switch_value(ndr
, r
);
17506 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17509 NDR_CHECK(ndr_push_align(ndr
, 5));
17510 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17511 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17519 if (ndr_flags
& NDR_BUFFERS
) {
17520 int level
= ndr_push_get_switch_value(ndr
, r
);
17521 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17524 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17532 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17533 return NDR_ERR_SUCCESS
;
17536 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
17538 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17540 level
= ndr_pull_get_switch_value(ndr
, r
);
17541 if (ndr_flags
& NDR_SCALARS
) {
17542 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17545 NDR_CHECK(ndr_pull_align(ndr
, 5));
17546 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17547 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17555 if (ndr_flags
& NDR_BUFFERS
) {
17556 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17559 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17567 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17568 return NDR_ERR_SUCCESS
;
17571 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
17574 level
= ndr_print_get_switch_value(ndr
, r
);
17575 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
17578 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
17587 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17590 return NDR_ERR_SUCCESS
;
17593 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17598 return NDR_ERR_SUCCESS
;
17601 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17603 ndr_print_uint32(ndr
, name
, r
);
17605 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
17606 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
17607 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
17608 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
17609 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
17610 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
17611 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
17612 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
17613 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
17614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
17615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
17616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
17617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
17618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
17619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
17620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
17621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
17622 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
17623 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
17624 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
17625 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
17629 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
17631 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17632 return NDR_ERR_SUCCESS
;
17635 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
17638 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17640 return NDR_ERR_SUCCESS
;
17643 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
17645 const char *val
= NULL
;
17648 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17649 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17650 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17651 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
17652 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17653 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
17654 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17655 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17656 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17657 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
17658 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
17659 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17660 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17661 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17662 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
17663 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
17664 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17665 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
17666 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17667 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
17668 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17669 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17670 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17671 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17673 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17676 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
17678 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17679 return NDR_ERR_SUCCESS
;
17682 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
17685 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17687 return NDR_ERR_SUCCESS
;
17690 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
17692 const char *val
= NULL
;
17695 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17696 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17697 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17698 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17699 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17700 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17701 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17702 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17703 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17704 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17705 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17706 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17707 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17708 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17709 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17710 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17711 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17712 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17713 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
17714 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17715 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17716 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17717 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17718 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17719 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17720 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17721 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17722 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17724 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17727 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17729 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17730 return NDR_ERR_SUCCESS
;
17733 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17736 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17738 return NDR_ERR_SUCCESS
;
17741 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17743 const char *val
= NULL
;
17746 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17747 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17749 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17752 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
17754 if (ndr_flags
& NDR_SCALARS
) {
17755 int level
= ndr_push_get_switch_value(ndr
, r
);
17756 NDR_CHECK(ndr_push_union_align(ndr
, 2));
17758 case PRINTER_NOTIFY_TYPE
: {
17759 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17762 case JOB_NOTIFY_TYPE
: {
17763 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17767 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17772 if (ndr_flags
& NDR_BUFFERS
) {
17773 int level
= ndr_push_get_switch_value(ndr
, r
);
17775 case PRINTER_NOTIFY_TYPE
:
17778 case JOB_NOTIFY_TYPE
:
17786 return NDR_ERR_SUCCESS
;
17789 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
17792 level
= ndr_pull_get_switch_value(ndr
, r
);
17793 if (ndr_flags
& NDR_SCALARS
) {
17794 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
17796 case PRINTER_NOTIFY_TYPE
: {
17797 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17800 case JOB_NOTIFY_TYPE
: {
17801 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17805 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17810 if (ndr_flags
& NDR_BUFFERS
) {
17812 case PRINTER_NOTIFY_TYPE
:
17815 case JOB_NOTIFY_TYPE
:
17823 return NDR_ERR_SUCCESS
;
17826 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
17828 uint32_t cntr_fields_1
;
17829 if (ndr_flags
& NDR_SCALARS
) {
17830 NDR_CHECK(ndr_push_align(ndr
, 5));
17831 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17832 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17837 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17839 if (ndr_flags
& NDR_BUFFERS
) {
17841 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
17842 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17843 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17844 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17848 return NDR_ERR_SUCCESS
;
17851 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17853 uint32_t _ptr_fields
;
17854 uint32_t cntr_fields_1
;
17855 TALLOC_CTX
*_mem_save_fields_0
;
17856 TALLOC_CTX
*_mem_save_fields_1
;
17857 if (ndr_flags
& NDR_SCALARS
) {
17858 NDR_CHECK(ndr_pull_align(ndr
, 5));
17859 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17860 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17864 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17866 NDR_PULL_ALLOC(ndr
, r
->fields
);
17870 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17872 if (ndr_flags
& NDR_BUFFERS
) {
17874 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17875 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17877 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
17878 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17879 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17880 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17881 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17882 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17888 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17891 return NDR_ERR_SUCCESS
;
17894 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17896 uint32_t cntr_fields_1
;
17897 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17899 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17900 ndr_print_uint16(ndr
, "u1", r
->u1
);
17901 ndr_print_uint32(ndr
, "u2", r
->u2
);
17902 ndr_print_uint32(ndr
, "u3", r
->u3
);
17903 ndr_print_uint32(ndr
, "count", r
->count
);
17904 ndr_print_ptr(ndr
, "fields", r
->fields
);
17907 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17909 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17911 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17912 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
17913 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
17923 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17926 return NDR_ERR_SUCCESS
;
17929 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17934 return NDR_ERR_SUCCESS
;
17937 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17939 ndr_print_uint32(ndr
, name
, r
);
17941 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17945 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17947 uint32_t cntr_types_1
;
17948 if (ndr_flags
& NDR_SCALARS
) {
17949 NDR_CHECK(ndr_push_align(ndr
, 5));
17950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17951 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17954 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17956 if (ndr_flags
& NDR_BUFFERS
) {
17958 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
17959 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17960 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17962 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17963 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17967 return NDR_ERR_SUCCESS
;
17970 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
17972 uint32_t _ptr_types
;
17973 uint32_t cntr_types_1
;
17974 TALLOC_CTX
*_mem_save_types_0
;
17975 TALLOC_CTX
*_mem_save_types_1
;
17976 if (ndr_flags
& NDR_SCALARS
) {
17977 NDR_CHECK(ndr_pull_align(ndr
, 5));
17978 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17979 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
17983 NDR_PULL_ALLOC(ndr
, r
->types
);
17987 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17989 if (ndr_flags
& NDR_BUFFERS
) {
17991 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17992 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17993 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17994 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17995 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17996 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17997 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17998 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18000 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18001 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
18004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
18007 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
18010 return NDR_ERR_SUCCESS
;
18013 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
18015 uint32_t cntr_types_1
;
18016 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
18018 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18019 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
18020 ndr_print_uint32(ndr
, "count", r
->count
);
18021 ndr_print_ptr(ndr
, "types", r
->types
);
18024 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
18026 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
18028 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
18029 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
18039 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
18041 if (ndr_flags
& NDR_SCALARS
) {
18042 NDR_CHECK(ndr_push_align(ndr
, 5));
18043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
18045 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18047 if (ndr_flags
& NDR_BUFFERS
) {
18049 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
18050 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
18053 return NDR_ERR_SUCCESS
;
18056 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
18058 uint32_t _ptr_string
;
18059 TALLOC_CTX
*_mem_save_string_0
;
18060 if (ndr_flags
& NDR_SCALARS
) {
18061 NDR_CHECK(ndr_pull_align(ndr
, 5));
18062 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
18065 NDR_PULL_ALLOC(ndr
, r
->string
);
18069 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18071 if (ndr_flags
& NDR_BUFFERS
) {
18073 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18074 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
18075 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
18076 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
18077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
18080 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
18083 return NDR_ERR_SUCCESS
;
18086 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
18088 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
18090 ndr_print_uint32(ndr
, "size", r
->size
);
18091 ndr_print_ptr(ndr
, "string", r
->string
);
18094 ndr_print_string(ndr
, "string", r
->string
);
18100 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
18102 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
18103 return NDR_ERR_SUCCESS
;
18106 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
18109 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
18111 return NDR_ERR_SUCCESS
;
18114 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
18116 const char *val
= NULL
;
18119 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
18120 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
18121 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
18122 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
18123 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18125 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18128 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
18130 if (ndr_flags
& NDR_SCALARS
) {
18131 int level
= ndr_push_get_switch_value(ndr
, r
);
18132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18133 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18136 uint32_t cntr_integer_0
;
18137 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
18143 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18147 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18151 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18155 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18159 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18162 if (ndr_flags
& NDR_BUFFERS
) {
18163 int level
= ndr_push_get_switch_value(ndr
, r
);
18169 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18173 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18177 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18181 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18185 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18188 return NDR_ERR_SUCCESS
;
18191 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
18195 level
= ndr_pull_get_switch_value(ndr
, r
);
18196 if (ndr_flags
& NDR_SCALARS
) {
18197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18198 if (_level
!= level
) {
18199 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18201 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18204 uint32_t cntr_integer_0
;
18205 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
18211 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18215 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18219 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18223 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18227 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18230 if (ndr_flags
& NDR_BUFFERS
) {
18236 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18240 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18244 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18248 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18252 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18255 return NDR_ERR_SUCCESS
;
18258 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
18261 uint32_t cntr_integer_0
;
18262 level
= ndr_print_get_switch_value(ndr
, r
);
18263 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
18266 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
18268 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
18270 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
18271 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
18279 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
18283 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
18287 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
18291 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
18295 ndr_print_bad_level(ndr
, name
, level
);
18299 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
18301 if (ndr_flags
& NDR_SCALARS
) {
18302 NDR_CHECK(ndr_push_align(ndr
, 5));
18303 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18304 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
18305 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18306 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
18307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
18308 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18309 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18310 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18312 if (ndr_flags
& NDR_BUFFERS
) {
18313 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18315 return NDR_ERR_SUCCESS
;
18318 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
18320 if (ndr_flags
& NDR_SCALARS
) {
18321 NDR_CHECK(ndr_pull_align(ndr
, 5));
18322 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18323 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
18324 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18325 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
18326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
18327 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18328 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18329 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18331 if (ndr_flags
& NDR_BUFFERS
) {
18332 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18334 return NDR_ERR_SUCCESS
;
18337 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
18339 ndr_print_struct(ndr
, name
, "spoolss_Notify");
18341 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18342 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
18343 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
18344 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
18345 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
18346 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
18347 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
18351 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
18353 uint32_t cntr_notifies_0
;
18354 if (ndr_flags
& NDR_SCALARS
) {
18355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18356 NDR_CHECK(ndr_push_align(ndr
, 5));
18357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18360 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18361 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18363 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18365 if (ndr_flags
& NDR_BUFFERS
) {
18366 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18367 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18370 return NDR_ERR_SUCCESS
;
18373 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
18375 uint32_t cntr_notifies_0
;
18376 TALLOC_CTX
*_mem_save_notifies_0
;
18377 if (ndr_flags
& NDR_SCALARS
) {
18378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
18379 NDR_CHECK(ndr_pull_align(ndr
, 5));
18380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18383 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
18384 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18385 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18386 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18387 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18391 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
18393 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18395 if (ndr_flags
& NDR_BUFFERS
) {
18396 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18397 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18398 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18399 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18403 return NDR_ERR_SUCCESS
;
18406 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
18408 uint32_t cntr_notifies_0
;
18409 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
18411 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18412 ndr_print_uint32(ndr
, "flags", r
->flags
);
18413 ndr_print_uint32(ndr
, "count", r
->count
);
18414 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
18416 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
18418 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
18419 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
18427 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
18429 if (ndr_flags
& NDR_SCALARS
) {
18430 int level
= ndr_push_get_switch_value(ndr
, r
);
18431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18432 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18435 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
18439 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18442 if (ndr_flags
& NDR_BUFFERS
) {
18443 int level
= ndr_push_get_switch_value(ndr
, r
);
18447 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18452 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18455 return NDR_ERR_SUCCESS
;
18458 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
18462 TALLOC_CTX
*_mem_save_info0_0
;
18463 level
= ndr_pull_get_switch_value(ndr
, r
);
18464 if (ndr_flags
& NDR_SCALARS
) {
18465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18466 if (_level
!= level
) {
18467 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18469 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18472 uint32_t _ptr_info0
;
18473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
18475 NDR_PULL_ALLOC(ndr
, r
->info0
);
18482 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18485 if (ndr_flags
& NDR_BUFFERS
) {
18489 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18490 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
18491 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
18497 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18500 return NDR_ERR_SUCCESS
;
18503 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
18506 level
= ndr_print_get_switch_value(ndr
, r
);
18507 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
18510 ndr_print_ptr(ndr
, "info0", r
->info0
);
18513 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
18519 ndr_print_bad_level(ndr
, name
, level
);
18523 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18526 return NDR_ERR_SUCCESS
;
18529 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18534 return NDR_ERR_SUCCESS
;
18537 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18539 ndr_print_uint32(ndr
, name
, r
);
18541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
18542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
18543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
18547 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
18549 if (ndr_flags
& NDR_SCALARS
) {
18550 NDR_CHECK(ndr_push_align(ndr
, 5));
18551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18555 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18556 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18557 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18558 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18560 if (ndr_flags
& NDR_BUFFERS
) {
18562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18565 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18568 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18569 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18570 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18571 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18574 return NDR_ERR_SUCCESS
;
18577 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
18579 uint32_t _ptr_client
;
18580 TALLOC_CTX
*_mem_save_client_0
;
18581 uint32_t _ptr_user
;
18582 TALLOC_CTX
*_mem_save_user_0
;
18583 if (ndr_flags
& NDR_SCALARS
) {
18584 NDR_CHECK(ndr_pull_align(ndr
, 5));
18585 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18588 NDR_PULL_ALLOC(ndr
, r
->client
);
18592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18594 NDR_PULL_ALLOC(ndr
, r
->user
);
18598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18599 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18600 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18601 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18602 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18604 if (ndr_flags
& NDR_BUFFERS
) {
18606 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18607 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18608 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18609 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18610 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18611 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
));
18613 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18614 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18618 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18619 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18620 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18621 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18622 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18623 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
));
18625 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18626 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18630 return NDR_ERR_SUCCESS
;
18633 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
18635 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
18637 ndr_print_uint32(ndr
, "size", r
->size
);
18638 ndr_print_ptr(ndr
, "client", r
->client
);
18641 ndr_print_string(ndr
, "client", r
->client
);
18644 ndr_print_ptr(ndr
, "user", r
->user
);
18647 ndr_print_string(ndr
, "user", r
->user
);
18650 ndr_print_uint32(ndr
, "build", r
->build
);
18651 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18652 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18653 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18657 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
18659 if (ndr_flags
& NDR_SCALARS
) {
18660 NDR_CHECK(ndr_push_align(ndr
, 4));
18661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
18662 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
18664 if (ndr_flags
& NDR_BUFFERS
) {
18666 return NDR_ERR_SUCCESS
;
18669 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
18671 if (ndr_flags
& NDR_SCALARS
) {
18672 NDR_CHECK(ndr_pull_align(ndr
, 4));
18673 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
18674 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
18676 if (ndr_flags
& NDR_BUFFERS
) {
18678 return NDR_ERR_SUCCESS
;
18681 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
18683 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
18685 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
18689 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
18691 if (ndr_flags
& NDR_SCALARS
) {
18692 NDR_CHECK(ndr_push_align(ndr
, 5));
18693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
18696 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18697 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18699 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18700 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18701 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18702 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
18703 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18705 if (ndr_flags
& NDR_BUFFERS
) {
18707 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18708 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18709 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18710 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18713 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18714 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18715 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18716 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18719 return NDR_ERR_SUCCESS
;
18722 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
18724 uint32_t _ptr_client
;
18725 TALLOC_CTX
*_mem_save_client_0
;
18726 uint32_t _ptr_user
;
18727 TALLOC_CTX
*_mem_save_user_0
;
18728 if (ndr_flags
& NDR_SCALARS
) {
18729 NDR_CHECK(ndr_pull_align(ndr
, 5));
18730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
18733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18735 NDR_PULL_ALLOC(ndr
, r
->client
);
18739 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18741 NDR_PULL_ALLOC(ndr
, r
->user
);
18745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18746 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18747 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18748 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18749 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
18750 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18752 if (ndr_flags
& NDR_BUFFERS
) {
18754 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18755 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18756 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18757 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18758 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18759 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
));
18761 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18762 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18766 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18767 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18768 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18769 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18770 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18771 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
));
18773 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18774 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18778 return NDR_ERR_SUCCESS
;
18781 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
18783 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
18785 ndr_print_uint32(ndr
, "size", r
->size
);
18786 ndr_print_uint32(ndr
, "flags", r
->flags
);
18787 ndr_print_uint32(ndr
, "size2", r
->size2
);
18788 ndr_print_ptr(ndr
, "client", r
->client
);
18791 ndr_print_string(ndr
, "client", r
->client
);
18794 ndr_print_ptr(ndr
, "user", r
->user
);
18797 ndr_print_string(ndr
, "user", r
->user
);
18800 ndr_print_uint32(ndr
, "build", r
->build
);
18801 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18802 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18803 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18804 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
18808 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
18810 if (ndr_flags
& NDR_SCALARS
) {
18811 int level
= ndr_push_get_switch_value(ndr
, r
);
18812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18813 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
18820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
18824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
18828 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18831 if (ndr_flags
& NDR_BUFFERS
) {
18832 int level
= ndr_push_get_switch_value(ndr
, r
);
18836 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18842 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18848 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18853 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18856 return NDR_ERR_SUCCESS
;
18859 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18863 TALLOC_CTX
*_mem_save_level1_0
;
18864 TALLOC_CTX
*_mem_save_level2_0
;
18865 TALLOC_CTX
*_mem_save_level3_0
;
18866 level
= ndr_pull_get_switch_value(ndr
, r
);
18867 if (ndr_flags
& NDR_SCALARS
) {
18868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18869 if (_level
!= level
) {
18870 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18872 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18875 uint32_t _ptr_level1
;
18876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18878 NDR_PULL_ALLOC(ndr
, r
->level1
);
18885 uint32_t _ptr_level2
;
18886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18888 NDR_PULL_ALLOC(ndr
, r
->level2
);
18895 uint32_t _ptr_level3
;
18896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18898 NDR_PULL_ALLOC(ndr
, r
->level3
);
18905 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18908 if (ndr_flags
& NDR_BUFFERS
) {
18912 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18913 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18914 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18921 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18922 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18923 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18930 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18931 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18932 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18938 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18941 return NDR_ERR_SUCCESS
;
18944 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18947 level
= ndr_print_get_switch_value(ndr
, r
);
18948 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18951 ndr_print_ptr(ndr
, "level1", r
->level1
);
18954 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18960 ndr_print_ptr(ndr
, "level2", r
->level2
);
18963 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
18969 ndr_print_ptr(ndr
, "level3", r
->level3
);
18972 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
18978 ndr_print_bad_level(ndr
, name
, level
);
18982 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
18984 if (ndr_flags
& NDR_SCALARS
) {
18985 NDR_CHECK(ndr_push_align(ndr
, 5));
18986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
18987 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18988 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18989 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18991 if (ndr_flags
& NDR_BUFFERS
) {
18992 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18994 return NDR_ERR_SUCCESS
;
18997 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
18999 if (ndr_flags
& NDR_SCALARS
) {
19000 NDR_CHECK(ndr_pull_align(ndr
, 5));
19001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
19002 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19003 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19004 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19006 if (ndr_flags
& NDR_BUFFERS
) {
19007 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19009 return NDR_ERR_SUCCESS
;
19012 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
19014 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
19016 ndr_print_uint32(ndr
, "level", r
->level
);
19017 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
19018 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
19022 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19025 return NDR_ERR_SUCCESS
;
19028 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19033 return NDR_ERR_SUCCESS
;
19036 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19038 ndr_print_uint32(ndr
, name
, r
);
19040 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
19041 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
19042 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
19043 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
19044 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
19045 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
19049 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
19051 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
19052 if (ndr_flags
& NDR_SCALARS
) {
19053 NDR_CHECK(ndr_push_align(ndr
, 5));
19054 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19056 uint32_t _flags_save_string
= ndr
->flags
;
19057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19058 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
19059 ndr
->flags
= _flags_save_string
;
19061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
19062 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
19063 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
19064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
)));
19065 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19067 if (ndr_flags
& NDR_BUFFERS
) {
19068 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
19070 uint32_t _flags_save_string
= ndr
->flags
;
19071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19072 if (r
->value_name
) {
19073 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->value_name
));
19074 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
19076 ndr
->flags
= _flags_save_string
;
19079 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data
));
19081 struct ndr_push
*_ndr_data
;
19082 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19083 NDR_CHECK(ndr_push_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19084 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19085 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19089 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19090 return NDR_ERR_SUCCESS
;
19093 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
19095 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
19096 uint32_t _ptr_value_name
;
19097 TALLOC_CTX
*_mem_save_value_name_0
;
19098 uint32_t _ptr_data
;
19099 TALLOC_CTX
*_mem_save_data_0
;
19100 if (ndr_flags
& NDR_SCALARS
) {
19101 NDR_CHECK(ndr_pull_align(ndr
, 5));
19102 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19104 uint32_t _flags_save_string
= ndr
->flags
;
19105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
19107 if (_ptr_value_name
) {
19108 NDR_PULL_ALLOC(ndr
, r
->value_name
);
19109 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
19111 r
->value_name
= NULL
;
19113 ndr
->flags
= _flags_save_string
;
19115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
19116 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
19117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
19119 NDR_PULL_ALLOC(ndr
, r
->data
);
19120 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
19124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
19125 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19127 if (ndr_flags
& NDR_BUFFERS
) {
19128 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
19130 uint32_t _flags_save_string
= ndr
->flags
;
19131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19132 if (r
->value_name
) {
19133 uint32_t _relative_save_offset
;
19134 _relative_save_offset
= ndr
->offset
;
19135 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
19136 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19137 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
19138 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
19139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
19140 ndr
->offset
= _relative_save_offset
;
19142 ndr
->flags
= _flags_save_string
;
19145 uint32_t _relative_save_offset
;
19146 _relative_save_offset
= ndr
->offset
;
19147 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
19148 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19149 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
19151 struct ndr_pull
*_ndr_data
;
19152 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19153 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19154 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19155 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
19158 ndr
->offset
= _relative_save_offset
;
19161 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19162 return NDR_ERR_SUCCESS
;
19165 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
19167 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
19169 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
19171 if (r
->value_name
) {
19172 ndr_print_string(ndr
, "value_name", r
->value_name
);
19175 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
19176 ndr_print_winreg_Type(ndr
, "type", r
->type
);
19177 ndr_print_ptr(ndr
, "data", r
->data
);
19180 ndr_print_set_switch_value(ndr
, r
->data
, r
->type
);
19181 ndr_print_spoolss_PrinterData(ndr
, "data", r
->data
);
19184 ndr_print_uint32(ndr
, "data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
):r
->data_length
);
19188 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
19190 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
19193 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19196 return NDR_ERR_SUCCESS
;
19199 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19204 return NDR_ERR_SUCCESS
;
19207 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19209 ndr_print_uint32(ndr
, name
, r
);
19211 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
19212 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
19213 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
19217 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
19219 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
19220 return NDR_ERR_SUCCESS
;
19223 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
19226 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
19228 return NDR_ERR_SUCCESS
;
19231 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
19233 const char *val
= NULL
;
19236 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
19237 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
19239 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19242 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
19244 if (ndr_flags
& NDR_SCALARS
) {
19245 NDR_CHECK(ndr_push_align(ndr
, 4));
19246 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
19248 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19251 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19252 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19254 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19255 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19256 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19257 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19261 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19263 if (ndr_flags
& NDR_BUFFERS
) {
19265 return NDR_ERR_SUCCESS
;
19268 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
19270 if (ndr_flags
& NDR_SCALARS
) {
19271 NDR_CHECK(ndr_pull_align(ndr
, 4));
19272 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19274 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19277 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19278 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19281 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19282 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19283 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19284 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19287 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19289 if (ndr_flags
& NDR_BUFFERS
) {
19291 return NDR_ERR_SUCCESS
;
19294 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
19296 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
19298 ndr_print_string(ndr
, "portname", r
->portname
);
19299 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
19300 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19301 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19302 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19303 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19304 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19305 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19306 ndr_print_string(ndr
, "queue", r
->queue
);
19307 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
19308 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
19309 ndr_print_string(ndr
, "device_type", r
->device_type
);
19310 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19311 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19312 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19316 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
19318 if (ndr_flags
& NDR_SCALARS
) {
19319 NDR_CHECK(ndr_push_align(ndr
, 4));
19320 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
19322 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19325 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19326 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19328 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19329 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
19334 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19336 if (ndr_flags
& NDR_BUFFERS
) {
19338 return NDR_ERR_SUCCESS
;
19341 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
19343 if (ndr_flags
& NDR_SCALARS
) {
19344 NDR_CHECK(ndr_pull_align(ndr
, 4));
19345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19347 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19350 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19351 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19352 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19353 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19357 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
19359 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19361 if (ndr_flags
& NDR_BUFFERS
) {
19363 return NDR_ERR_SUCCESS
;
19366 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
19368 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
19370 ndr_print_string(ndr
, "portname", r
->portname
);
19371 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
19372 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19373 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19374 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19375 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19376 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19377 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19378 ndr_print_string(ndr
, "queue", r
->queue
);
19379 ndr_print_string(ndr
, "device_type", r
->device_type
);
19380 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19381 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19382 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19383 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
19387 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
19389 if (ndr_flags
& NDR_SCALARS
) {
19390 NDR_CHECK(ndr_push_align(ndr
, 4));
19392 uint32_t _flags_save_string
= ndr
->flags
;
19393 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19394 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
19395 ndr
->flags
= _flags_save_string
;
19397 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19399 if (ndr_flags
& NDR_BUFFERS
) {
19401 return NDR_ERR_SUCCESS
;
19404 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
19406 if (ndr_flags
& NDR_SCALARS
) {
19407 NDR_CHECK(ndr_pull_align(ndr
, 4));
19409 uint32_t _flags_save_string
= ndr
->flags
;
19410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19411 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
19412 ndr
->flags
= _flags_save_string
;
19414 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19416 if (ndr_flags
& NDR_BUFFERS
) {
19418 return NDR_ERR_SUCCESS
;
19421 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
19423 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
19425 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
19429 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19432 return NDR_ERR_SUCCESS
;
19435 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19440 return NDR_ERR_SUCCESS
;
19443 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19445 ndr_print_uint32(ndr
, name
, r
);
19447 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
19448 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
19449 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
19450 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
19451 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
19452 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
19453 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
19454 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
19458 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
19460 if (ndr_flags
& NDR_SCALARS
) {
19461 NDR_CHECK(ndr_push_align(ndr
, 8));
19462 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19463 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
19464 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
19465 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19466 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
19468 if (ndr_flags
& NDR_BUFFERS
) {
19470 return NDR_ERR_SUCCESS
;
19473 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
19475 if (ndr_flags
& NDR_SCALARS
) {
19476 NDR_CHECK(ndr_pull_align(ndr
, 8));
19477 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19478 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
19479 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
19480 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19481 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
19483 if (ndr_flags
& NDR_BUFFERS
) {
19485 return NDR_ERR_SUCCESS
;
19488 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
19490 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
19492 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
19493 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
19494 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
19495 ndr_print_string(ndr
, "formname", r
->formname
);
19499 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
19501 if (flags
& NDR_IN
) {
19502 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
19503 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19504 if (r
->in
.server
) {
19505 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19506 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19508 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19512 if (r
->in
.buffer
) {
19513 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19517 if (flags
& NDR_OUT
) {
19518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19520 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19522 if (r
->out
.needed
== NULL
) {
19523 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19526 if (r
->out
.count
== NULL
) {
19527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19530 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19532 return NDR_ERR_SUCCESS
;
19535 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
19537 uint32_t _ptr_server
;
19538 uint32_t _ptr_buffer
;
19539 uint32_t _ptr_info
;
19540 TALLOC_CTX
*_mem_save_server_0
;
19541 TALLOC_CTX
*_mem_save_buffer_0
;
19542 TALLOC_CTX
*_mem_save_info_0
;
19543 TALLOC_CTX
*_mem_save_needed_0
;
19544 TALLOC_CTX
*_mem_save_count_0
;
19545 if (flags
& NDR_IN
) {
19546 ZERO_STRUCT(r
->out
);
19548 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
19549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19551 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19553 r
->in
.server
= NULL
;
19555 if (r
->in
.server
) {
19556 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19557 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19558 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19559 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19560 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19561 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
));
19563 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19564 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19570 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19572 r
->in
.buffer
= NULL
;
19574 if (r
->in
.buffer
) {
19575 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19576 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19577 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19580 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19581 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19582 ZERO_STRUCTP(r
->out
.needed
);
19583 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19584 ZERO_STRUCTP(r
->out
.count
);
19586 if (flags
& NDR_OUT
) {
19587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19589 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19591 r
->out
.info
= NULL
;
19594 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19595 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19596 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19599 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19600 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19602 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19603 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19606 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19607 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19609 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19610 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19611 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19613 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19615 return NDR_ERR_SUCCESS
;
19618 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
19620 uint32_t cntr_info_0
;
19621 if (flags
& NDR_IN
) {
19622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19625 if (flags
& NDR_OUT
) {
19626 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19627 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19628 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19630 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19631 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19634 return NDR_ERR_SUCCESS
;
19637 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
19639 uint32_t cntr_info_0
;
19640 TALLOC_CTX
*_mem_save_info_0
;
19641 if (flags
& NDR_IN
) {
19642 ZERO_STRUCT(r
->out
);
19644 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19647 if (flags
& NDR_OUT
) {
19648 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19649 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19650 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19651 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19652 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19653 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19655 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19656 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19660 return NDR_ERR_SUCCESS
;
19663 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
19665 uint32_t cntr_info_2
;
19666 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
19668 if (flags
& NDR_SET_VALUES
) {
19669 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19671 if (flags
& NDR_IN
) {
19672 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
19674 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
19675 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19677 if (r
->in
.server
) {
19678 ndr_print_string(ndr
, "server", r
->in
.server
);
19681 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19682 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19684 if (r
->in
.buffer
) {
19685 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19688 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19691 if (flags
& NDR_OUT
) {
19692 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
19694 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19696 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19698 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19700 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19702 if (*r
->out
.info
) {
19703 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19705 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19707 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19708 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19709 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19717 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19719 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19721 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19727 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
19729 if (flags
& NDR_IN
) {
19730 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
19731 if (r
->in
.printername
) {
19732 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19734 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19735 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19737 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
19738 if (r
->in
.datatype
) {
19739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19740 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19741 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19742 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19744 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19745 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
19747 if (flags
& NDR_OUT
) {
19748 if (r
->out
.handle
== NULL
) {
19749 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19751 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19752 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19754 return NDR_ERR_SUCCESS
;
19757 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
19759 uint32_t _ptr_printername
;
19760 uint32_t _ptr_datatype
;
19761 TALLOC_CTX
*_mem_save_printername_0
;
19762 TALLOC_CTX
*_mem_save_datatype_0
;
19763 TALLOC_CTX
*_mem_save_handle_0
;
19764 if (flags
& NDR_IN
) {
19765 ZERO_STRUCT(r
->out
);
19767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
19768 if (_ptr_printername
) {
19769 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
19771 r
->in
.printername
= NULL
;
19773 if (r
->in
.printername
) {
19774 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19775 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
19776 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
19777 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
19778 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
19779 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
));
19781 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
19782 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
19783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
19785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
19786 if (_ptr_datatype
) {
19787 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
19789 r
->in
.datatype
= NULL
;
19791 if (r
->in
.datatype
) {
19792 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
19794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
19795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
19796 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
19797 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
));
19799 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
19800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
19801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
19803 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19804 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
19805 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19806 ZERO_STRUCTP(r
->out
.handle
);
19808 if (flags
& NDR_OUT
) {
19809 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19810 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19812 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19813 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19814 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19816 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19818 return NDR_ERR_SUCCESS
;
19821 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
19823 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
19825 if (flags
& NDR_SET_VALUES
) {
19826 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19828 if (flags
& NDR_IN
) {
19829 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
19831 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
19833 if (r
->in
.printername
) {
19834 ndr_print_string(ndr
, "printername", r
->in
.printername
);
19837 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
19839 if (r
->in
.datatype
) {
19840 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
19843 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
19844 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
19847 if (flags
& NDR_OUT
) {
19848 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
19850 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
19852 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
19854 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19860 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
19862 if (flags
& NDR_IN
) {
19863 if (r
->in
.handle
== NULL
) {
19864 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19866 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
19868 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
19870 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
19872 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19874 if (flags
& NDR_OUT
) {
19875 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19877 return NDR_ERR_SUCCESS
;
19880 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
19883 TALLOC_CTX
*_mem_save_handle_0
;
19884 TALLOC_CTX
*_mem_save_ctr_0
;
19885 if (flags
& NDR_IN
) {
19886 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19887 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19889 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19890 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19891 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
19894 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
19896 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
19901 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19902 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
19903 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
19904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
19906 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19908 if (flags
& NDR_OUT
) {
19909 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19911 return NDR_ERR_SUCCESS
;
19914 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
19916 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
19918 if (flags
& NDR_SET_VALUES
) {
19919 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19921 if (flags
& NDR_IN
) {
19922 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
19924 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19926 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19928 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
19929 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
19932 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
19935 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
19938 if (flags
& NDR_OUT
) {
19939 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
19941 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19947 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
19949 if (flags
& NDR_IN
) {
19950 if (r
->in
.handle
== NULL
) {
19951 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19953 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
19955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19957 if (r
->in
.buffer
) {
19958 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19962 if (flags
& NDR_OUT
) {
19963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19966 struct ndr_push
*_ndr_info
;
19967 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19968 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19969 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19970 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19973 if (r
->out
.needed
== NULL
) {
19974 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19977 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19979 return NDR_ERR_SUCCESS
;
19982 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
19984 uint32_t _ptr_buffer
;
19985 uint32_t _ptr_info
;
19986 TALLOC_CTX
*_mem_save_handle_0
;
19987 TALLOC_CTX
*_mem_save_buffer_0
;
19988 TALLOC_CTX
*_mem_save_info_0
;
19989 TALLOC_CTX
*_mem_save_needed_0
;
19990 if (flags
& NDR_IN
) {
19991 ZERO_STRUCT(r
->out
);
19993 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19994 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19996 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19997 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19998 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19999 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20002 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20004 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20006 r
->in
.buffer
= NULL
;
20008 if (r
->in
.buffer
) {
20009 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20010 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20011 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20014 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20015 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20016 ZERO_STRUCTP(r
->out
.needed
);
20018 if (flags
& NDR_OUT
) {
20019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20021 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20023 r
->out
.info
= NULL
;
20026 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20027 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20029 struct ndr_pull
*_ndr_info
;
20030 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20031 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20032 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20033 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20037 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20038 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20040 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20041 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20044 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20046 return NDR_ERR_SUCCESS
;
20049 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
20051 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
20053 if (flags
& NDR_SET_VALUES
) {
20054 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20056 if (flags
& NDR_IN
) {
20057 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
20059 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20061 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20063 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20064 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20065 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20067 if (r
->in
.buffer
) {
20068 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20071 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20074 if (flags
& NDR_OUT
) {
20075 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
20077 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20080 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20081 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
20084 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20086 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20088 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20094 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
20096 if (flags
& NDR_IN
) {
20097 if (r
->in
.handle
== NULL
) {
20098 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20100 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
20102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
20103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20104 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20105 if (r
->in
.buffer
) {
20106 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20110 if (flags
& NDR_OUT
) {
20111 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20113 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20115 if (r
->out
.needed
== NULL
) {
20116 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20119 if (r
->out
.count
== NULL
) {
20120 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20123 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20125 return NDR_ERR_SUCCESS
;
20128 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
20130 uint32_t _ptr_buffer
;
20131 uint32_t _ptr_info
;
20132 TALLOC_CTX
*_mem_save_handle_0
;
20133 TALLOC_CTX
*_mem_save_buffer_0
;
20134 TALLOC_CTX
*_mem_save_info_0
;
20135 TALLOC_CTX
*_mem_save_needed_0
;
20136 TALLOC_CTX
*_mem_save_count_0
;
20137 if (flags
& NDR_IN
) {
20138 ZERO_STRUCT(r
->out
);
20140 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20141 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20143 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20144 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20145 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20147 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
20148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
20149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20150 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20152 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20154 r
->in
.buffer
= NULL
;
20156 if (r
->in
.buffer
) {
20157 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20158 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20159 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20160 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20162 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20163 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20164 ZERO_STRUCTP(r
->out
.needed
);
20165 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20166 ZERO_STRUCTP(r
->out
.count
);
20168 if (flags
& NDR_OUT
) {
20169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20171 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20173 r
->out
.info
= NULL
;
20176 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20177 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20178 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20181 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20182 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20184 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20185 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20188 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20189 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20191 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20192 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20195 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20197 return NDR_ERR_SUCCESS
;
20200 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
20202 uint32_t cntr_info_0
;
20203 if (flags
& NDR_IN
) {
20204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20207 if (flags
& NDR_OUT
) {
20208 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20209 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20210 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20212 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20213 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20216 return NDR_ERR_SUCCESS
;
20219 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
20221 uint32_t cntr_info_0
;
20222 TALLOC_CTX
*_mem_save_info_0
;
20223 if (flags
& NDR_IN
) {
20224 ZERO_STRUCT(r
->out
);
20226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20229 if (flags
& NDR_OUT
) {
20230 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20231 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20232 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20233 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20234 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20235 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20237 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20238 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20242 return NDR_ERR_SUCCESS
;
20245 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
20247 uint32_t cntr_info_2
;
20248 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
20250 if (flags
& NDR_SET_VALUES
) {
20251 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20253 if (flags
& NDR_IN
) {
20254 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
20256 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20258 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20260 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
20261 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
20262 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20263 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20265 if (r
->in
.buffer
) {
20266 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20269 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20272 if (flags
& NDR_OUT
) {
20273 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
20275 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20277 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20279 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20281 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20283 if (*r
->out
.info
) {
20284 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20286 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20288 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20289 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20290 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20298 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20300 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20302 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20308 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
20310 if (flags
& NDR_IN
) {
20311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20312 if (r
->in
.server
) {
20313 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20315 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20316 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20318 if (r
->in
.info_ctr
== NULL
) {
20319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20321 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20322 if (r
->in
.devmode_ctr
== NULL
) {
20323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20325 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20326 if (r
->in
.secdesc_ctr
== NULL
) {
20327 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20329 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20331 if (flags
& NDR_OUT
) {
20332 if (r
->out
.handle
== NULL
) {
20333 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20335 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20336 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20338 return NDR_ERR_SUCCESS
;
20341 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
20343 uint32_t _ptr_server
;
20344 TALLOC_CTX
*_mem_save_server_0
;
20345 TALLOC_CTX
*_mem_save_info_ctr_0
;
20346 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20347 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20348 TALLOC_CTX
*_mem_save_handle_0
;
20349 if (flags
& NDR_IN
) {
20350 ZERO_STRUCT(r
->out
);
20352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20354 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20356 r
->in
.server
= NULL
;
20358 if (r
->in
.server
) {
20359 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20360 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20361 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20362 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20363 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20364 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
));
20366 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20367 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20368 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20370 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20371 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20373 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20374 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20375 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20377 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20378 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20380 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20381 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20382 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20384 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20385 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20387 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20388 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20389 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20391 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20392 ZERO_STRUCTP(r
->out
.handle
);
20394 if (flags
& NDR_OUT
) {
20395 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20396 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20398 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20399 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20400 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20402 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20404 return NDR_ERR_SUCCESS
;
20407 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
20409 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
20411 if (flags
& NDR_SET_VALUES
) {
20412 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20414 if (flags
& NDR_IN
) {
20415 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
20417 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20419 if (r
->in
.server
) {
20420 ndr_print_string(ndr
, "server", r
->in
.server
);
20423 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20425 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20427 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20429 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20431 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20433 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20437 if (flags
& NDR_OUT
) {
20438 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
20440 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20442 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20444 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20450 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
20452 if (flags
& NDR_IN
) {
20453 if (r
->in
.handle
== NULL
) {
20454 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20456 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20458 if (flags
& NDR_OUT
) {
20459 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20461 return NDR_ERR_SUCCESS
;
20464 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
20466 TALLOC_CTX
*_mem_save_handle_0
;
20467 if (flags
& NDR_IN
) {
20468 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20469 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20471 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20472 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20473 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20476 if (flags
& NDR_OUT
) {
20477 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20479 return NDR_ERR_SUCCESS
;
20482 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
20484 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
20486 if (flags
& NDR_SET_VALUES
) {
20487 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20489 if (flags
& NDR_IN
) {
20490 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
20492 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20494 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20498 if (flags
& NDR_OUT
) {
20499 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
20501 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20507 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
20509 if (flags
& NDR_IN
) {
20510 if (r
->in
.handle
== NULL
) {
20511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20513 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20514 if (r
->in
.info_ctr
== NULL
) {
20515 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20517 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20518 if (r
->in
.devmode_ctr
== NULL
) {
20519 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20521 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20522 if (r
->in
.secdesc_ctr
== NULL
) {
20523 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20525 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20526 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20528 if (flags
& NDR_OUT
) {
20529 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20531 return NDR_ERR_SUCCESS
;
20534 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
20536 TALLOC_CTX
*_mem_save_handle_0
;
20537 TALLOC_CTX
*_mem_save_info_ctr_0
;
20538 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20539 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20540 if (flags
& NDR_IN
) {
20541 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20542 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20544 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20546 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20548 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20549 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20551 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20553 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20556 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20558 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20559 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20560 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20562 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20563 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20565 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20566 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20567 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20569 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20571 if (flags
& NDR_OUT
) {
20572 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20574 return NDR_ERR_SUCCESS
;
20577 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
20579 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
20581 if (flags
& NDR_SET_VALUES
) {
20582 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20584 if (flags
& NDR_IN
) {
20585 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
20587 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20589 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20591 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20593 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20595 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20597 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20599 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20601 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20603 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
20606 if (flags
& NDR_OUT
) {
20607 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
20609 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20615 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
20617 if (flags
& NDR_IN
) {
20618 if (r
->in
.handle
== NULL
) {
20619 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20621 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20623 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20624 if (r
->in
.buffer
) {
20625 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20629 if (flags
& NDR_OUT
) {
20630 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20633 struct ndr_push
*_ndr_info
;
20634 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20635 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20636 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20637 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20640 if (r
->out
.needed
== NULL
) {
20641 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20644 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20646 return NDR_ERR_SUCCESS
;
20649 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
20651 uint32_t _ptr_buffer
;
20652 uint32_t _ptr_info
;
20653 TALLOC_CTX
*_mem_save_handle_0
;
20654 TALLOC_CTX
*_mem_save_buffer_0
;
20655 TALLOC_CTX
*_mem_save_info_0
;
20656 TALLOC_CTX
*_mem_save_needed_0
;
20657 if (flags
& NDR_IN
) {
20658 ZERO_STRUCT(r
->out
);
20660 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20661 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20663 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20664 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20665 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20670 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20672 r
->in
.buffer
= NULL
;
20674 if (r
->in
.buffer
) {
20675 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20676 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20681 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20682 ZERO_STRUCTP(r
->out
.needed
);
20684 if (flags
& NDR_OUT
) {
20685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20687 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20689 r
->out
.info
= NULL
;
20692 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20693 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20695 struct ndr_pull
*_ndr_info
;
20696 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20697 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20698 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20699 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20703 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20704 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20706 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20707 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20708 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20710 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20712 return NDR_ERR_SUCCESS
;
20715 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
20717 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
20719 if (flags
& NDR_SET_VALUES
) {
20720 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20722 if (flags
& NDR_IN
) {
20723 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
20725 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20727 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20729 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20730 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20732 if (r
->in
.buffer
) {
20733 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20736 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20739 if (flags
& NDR_OUT
) {
20740 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
20742 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20745 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20746 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
20749 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20751 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20753 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20759 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20761 if (flags
& NDR_IN
) {
20762 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20763 if (r
->in
.servername
) {
20764 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20765 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20766 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20767 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20769 if (r
->in
.info_ctr
== NULL
) {
20770 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20772 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20774 if (flags
& NDR_OUT
) {
20775 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20777 return NDR_ERR_SUCCESS
;
20780 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
20782 uint32_t _ptr_servername
;
20783 TALLOC_CTX
*_mem_save_servername_0
;
20784 TALLOC_CTX
*_mem_save_info_ctr_0
;
20785 if (flags
& NDR_IN
) {
20786 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20787 if (_ptr_servername
) {
20788 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20790 r
->in
.servername
= NULL
;
20792 if (r
->in
.servername
) {
20793 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20794 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20795 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20796 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20797 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20798 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
));
20800 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20801 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20802 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20804 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20805 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20807 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20808 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20809 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20812 if (flags
& NDR_OUT
) {
20813 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20815 return NDR_ERR_SUCCESS
;
20818 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20820 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
20822 if (flags
& NDR_SET_VALUES
) {
20823 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20825 if (flags
& NDR_IN
) {
20826 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
20828 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20830 if (r
->in
.servername
) {
20831 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20834 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20836 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20840 if (flags
& NDR_OUT
) {
20841 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
20843 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20849 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
20851 if (flags
& NDR_IN
) {
20852 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20853 if (r
->in
.server
) {
20854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20855 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20856 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20857 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20860 if (r
->in
.environment
) {
20861 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20862 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20863 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20864 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20867 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20868 if (r
->in
.buffer
) {
20869 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20873 if (flags
& NDR_OUT
) {
20874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20876 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20878 if (r
->out
.needed
== NULL
) {
20879 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20882 if (r
->out
.count
== NULL
) {
20883 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20886 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20888 return NDR_ERR_SUCCESS
;
20891 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
20893 uint32_t _ptr_server
;
20894 uint32_t _ptr_environment
;
20895 uint32_t _ptr_buffer
;
20896 uint32_t _ptr_info
;
20897 TALLOC_CTX
*_mem_save_server_0
;
20898 TALLOC_CTX
*_mem_save_environment_0
;
20899 TALLOC_CTX
*_mem_save_buffer_0
;
20900 TALLOC_CTX
*_mem_save_info_0
;
20901 TALLOC_CTX
*_mem_save_needed_0
;
20902 TALLOC_CTX
*_mem_save_count_0
;
20903 if (flags
& NDR_IN
) {
20904 ZERO_STRUCT(r
->out
);
20906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20908 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20910 r
->in
.server
= NULL
;
20912 if (r
->in
.server
) {
20913 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20914 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20917 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20918 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
));
20920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20925 if (_ptr_environment
) {
20926 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20928 r
->in
.environment
= NULL
;
20930 if (r
->in
.environment
) {
20931 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20932 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20933 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20934 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20935 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20936 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
));
20938 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20939 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20943 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20945 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20947 r
->in
.buffer
= NULL
;
20949 if (r
->in
.buffer
) {
20950 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20951 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20952 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20956 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20957 ZERO_STRUCTP(r
->out
.needed
);
20958 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20959 ZERO_STRUCTP(r
->out
.count
);
20961 if (flags
& NDR_OUT
) {
20962 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20964 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20966 r
->out
.info
= NULL
;
20969 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20970 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20971 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20975 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20977 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20978 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20981 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20982 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20984 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20985 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20988 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20990 return NDR_ERR_SUCCESS
;
20993 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
20995 uint32_t cntr_info_0
;
20996 if (flags
& NDR_IN
) {
20997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21000 if (flags
& NDR_OUT
) {
21001 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21002 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21003 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21005 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21006 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21009 return NDR_ERR_SUCCESS
;
21012 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
21014 uint32_t cntr_info_0
;
21015 TALLOC_CTX
*_mem_save_info_0
;
21016 if (flags
& NDR_IN
) {
21017 ZERO_STRUCT(r
->out
);
21019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21022 if (flags
& NDR_OUT
) {
21023 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21024 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21025 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21026 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21027 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21028 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21030 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21031 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21035 return NDR_ERR_SUCCESS
;
21038 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
21040 uint32_t cntr_info_2
;
21041 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
21043 if (flags
& NDR_SET_VALUES
) {
21044 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21046 if (flags
& NDR_IN
) {
21047 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
21049 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21051 if (r
->in
.server
) {
21052 ndr_print_string(ndr
, "server", r
->in
.server
);
21055 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21057 if (r
->in
.environment
) {
21058 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21061 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21062 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21064 if (r
->in
.buffer
) {
21065 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21068 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21071 if (flags
& NDR_OUT
) {
21072 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
21074 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21076 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21078 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21080 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21082 if (*r
->out
.info
) {
21083 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21085 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21087 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21088 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21089 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21097 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21099 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21101 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21107 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21109 if (flags
& NDR_IN
) {
21110 if (r
->in
.handle
== NULL
) {
21111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21113 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21114 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
21115 if (r
->in
.architecture
) {
21116 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21117 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21118 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21119 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21122 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21123 if (r
->in
.buffer
) {
21124 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21128 if (flags
& NDR_OUT
) {
21129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21132 struct ndr_push
*_ndr_info
;
21133 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21134 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21135 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21136 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21139 if (r
->out
.needed
== NULL
) {
21140 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21143 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21145 return NDR_ERR_SUCCESS
;
21148 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
21150 uint32_t _ptr_architecture
;
21151 uint32_t _ptr_buffer
;
21152 uint32_t _ptr_info
;
21153 TALLOC_CTX
*_mem_save_handle_0
;
21154 TALLOC_CTX
*_mem_save_architecture_0
;
21155 TALLOC_CTX
*_mem_save_buffer_0
;
21156 TALLOC_CTX
*_mem_save_info_0
;
21157 TALLOC_CTX
*_mem_save_needed_0
;
21158 if (flags
& NDR_IN
) {
21159 ZERO_STRUCT(r
->out
);
21161 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21162 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21164 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21165 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21166 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21167 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21168 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
21169 if (_ptr_architecture
) {
21170 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
21172 r
->in
.architecture
= NULL
;
21174 if (r
->in
.architecture
) {
21175 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21176 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
21177 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21178 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21179 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21180 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
));
21182 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21183 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
21186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21189 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21191 r
->in
.buffer
= NULL
;
21193 if (r
->in
.buffer
) {
21194 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21196 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21199 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21200 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21201 ZERO_STRUCTP(r
->out
.needed
);
21203 if (flags
& NDR_OUT
) {
21204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21206 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21208 r
->out
.info
= NULL
;
21211 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21212 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21214 struct ndr_pull
*_ndr_info
;
21215 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21216 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21217 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21218 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21222 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21223 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21225 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21226 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21229 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21231 return NDR_ERR_SUCCESS
;
21234 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21236 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
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_GetPrinterDriver");
21244 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21246 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21248 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
21250 if (r
->in
.architecture
) {
21251 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21254 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21255 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21257 if (r
->in
.buffer
) {
21258 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21261 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21264 if (flags
& NDR_OUT
) {
21265 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
21267 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21270 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21271 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
21274 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21276 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21278 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21284 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21286 if (flags
& NDR_IN
) {
21287 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21288 if (r
->in
.server
) {
21289 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21290 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21291 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21292 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21294 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21295 if (r
->in
.environment
) {
21296 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21297 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21298 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21299 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21302 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21303 if (r
->in
.buffer
) {
21304 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21308 if (flags
& NDR_OUT
) {
21309 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21312 struct ndr_push
*_ndr_info
;
21313 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21314 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21315 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21316 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21319 if (r
->out
.needed
== NULL
) {
21320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21323 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21325 return NDR_ERR_SUCCESS
;
21328 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
21330 uint32_t _ptr_server
;
21331 uint32_t _ptr_environment
;
21332 uint32_t _ptr_buffer
;
21333 uint32_t _ptr_info
;
21334 TALLOC_CTX
*_mem_save_server_0
;
21335 TALLOC_CTX
*_mem_save_environment_0
;
21336 TALLOC_CTX
*_mem_save_buffer_0
;
21337 TALLOC_CTX
*_mem_save_info_0
;
21338 TALLOC_CTX
*_mem_save_needed_0
;
21339 if (flags
& NDR_IN
) {
21340 ZERO_STRUCT(r
->out
);
21342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21344 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21346 r
->in
.server
= NULL
;
21348 if (r
->in
.server
) {
21349 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21353 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21354 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
));
21356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21361 if (_ptr_environment
) {
21362 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21364 r
->in
.environment
= NULL
;
21366 if (r
->in
.environment
) {
21367 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21369 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21370 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21371 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21372 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
));
21374 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21375 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21379 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21381 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21383 r
->in
.buffer
= NULL
;
21385 if (r
->in
.buffer
) {
21386 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21387 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21388 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21392 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21393 ZERO_STRUCTP(r
->out
.needed
);
21395 if (flags
& NDR_OUT
) {
21396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21398 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21400 r
->out
.info
= NULL
;
21403 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21404 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21406 struct ndr_pull
*_ndr_info
;
21407 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21408 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21409 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21410 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21414 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21415 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21417 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21418 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21421 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21423 return NDR_ERR_SUCCESS
;
21426 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21428 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
21430 if (flags
& NDR_SET_VALUES
) {
21431 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21433 if (flags
& NDR_IN
) {
21434 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
21436 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21438 if (r
->in
.server
) {
21439 ndr_print_string(ndr
, "server", r
->in
.server
);
21442 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21444 if (r
->in
.environment
) {
21445 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21448 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21449 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21451 if (r
->in
.buffer
) {
21452 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21455 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21458 if (flags
& NDR_OUT
) {
21459 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
21461 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21464 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21465 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
21468 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21470 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21478 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21480 if (flags
& NDR_IN
) {
21481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21482 if (r
->in
.server
) {
21483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21484 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21485 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21491 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21492 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21495 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21497 if (flags
& NDR_OUT
) {
21498 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21500 return NDR_ERR_SUCCESS
;
21503 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
21505 uint32_t _ptr_server
;
21506 TALLOC_CTX
*_mem_save_server_0
;
21507 if (flags
& NDR_IN
) {
21508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21510 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21512 r
->in
.server
= NULL
;
21514 if (r
->in
.server
) {
21515 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21516 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21517 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21518 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21519 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21520 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
));
21522 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21523 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21526 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21527 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21528 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21529 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
));
21531 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21532 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21533 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
21534 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
21535 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
21536 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
));
21538 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
21539 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
21541 if (flags
& NDR_OUT
) {
21542 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21544 return NDR_ERR_SUCCESS
;
21547 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21549 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
21551 if (flags
& NDR_SET_VALUES
) {
21552 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21554 if (flags
& NDR_IN
) {
21555 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
21557 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21559 if (r
->in
.server
) {
21560 ndr_print_string(ndr
, "server", r
->in
.server
);
21563 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21564 ndr_print_string(ndr
, "driver", r
->in
.driver
);
21567 if (flags
& NDR_OUT
) {
21568 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
21570 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21576 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21578 if (flags
& NDR_IN
) {
21579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21580 if (r
->in
.server
) {
21581 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21582 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21583 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21584 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21587 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21588 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21589 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21590 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21591 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21592 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21593 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
));
21594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21596 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21597 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
));
21599 if (flags
& NDR_OUT
) {
21600 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21602 return NDR_ERR_SUCCESS
;
21605 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
21607 uint32_t _ptr_server
;
21608 TALLOC_CTX
*_mem_save_server_0
;
21609 if (flags
& NDR_IN
) {
21610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21612 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21614 r
->in
.server
= NULL
;
21616 if (r
->in
.server
) {
21617 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21621 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21622 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
));
21624 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21628 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21629 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21630 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21631 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
));
21633 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21634 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21635 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
21636 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
21637 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
21638 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
));
21640 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
21641 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
));
21642 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
21643 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
21644 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
21645 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
));
21647 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
21648 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
));
21650 if (flags
& NDR_OUT
) {
21651 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21653 return NDR_ERR_SUCCESS
;
21656 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21658 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
21660 if (flags
& NDR_SET_VALUES
) {
21661 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21663 if (flags
& NDR_IN
) {
21664 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
21666 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21668 if (r
->in
.server
) {
21669 ndr_print_string(ndr
, "server", r
->in
.server
);
21672 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21673 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
21674 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
21677 if (flags
& NDR_OUT
) {
21678 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
21680 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21686 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
21688 if (flags
& NDR_IN
) {
21689 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
21690 if (r
->in
.servername
) {
21691 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21692 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21694 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21696 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21697 if (r
->in
.environment
) {
21698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21700 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21701 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21704 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21705 if (r
->in
.buffer
) {
21706 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21710 if (flags
& NDR_OUT
) {
21711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21713 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21715 if (r
->out
.needed
== NULL
) {
21716 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21719 if (r
->out
.count
== NULL
) {
21720 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21723 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21725 return NDR_ERR_SUCCESS
;
21728 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
21730 uint32_t _ptr_servername
;
21731 uint32_t _ptr_environment
;
21732 uint32_t _ptr_buffer
;
21733 uint32_t _ptr_info
;
21734 TALLOC_CTX
*_mem_save_servername_0
;
21735 TALLOC_CTX
*_mem_save_environment_0
;
21736 TALLOC_CTX
*_mem_save_buffer_0
;
21737 TALLOC_CTX
*_mem_save_info_0
;
21738 TALLOC_CTX
*_mem_save_needed_0
;
21739 TALLOC_CTX
*_mem_save_count_0
;
21740 if (flags
& NDR_IN
) {
21741 ZERO_STRUCT(r
->out
);
21743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
21744 if (_ptr_servername
) {
21745 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
21747 r
->in
.servername
= NULL
;
21749 if (r
->in
.servername
) {
21750 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21751 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
21752 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
21753 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
21754 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
21755 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
));
21757 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
21758 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
21759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
21761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21762 if (_ptr_environment
) {
21763 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21765 r
->in
.environment
= NULL
;
21767 if (r
->in
.environment
) {
21768 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21769 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21772 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21773 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
));
21775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21780 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21782 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21784 r
->in
.buffer
= NULL
;
21786 if (r
->in
.buffer
) {
21787 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21788 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21789 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21793 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21794 ZERO_STRUCTP(r
->out
.needed
);
21795 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21796 ZERO_STRUCTP(r
->out
.count
);
21798 if (flags
& NDR_OUT
) {
21799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21801 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21803 r
->out
.info
= NULL
;
21806 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21807 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21808 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21809 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21811 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21812 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21814 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21815 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21818 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21819 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21821 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21822 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21823 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21825 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21827 return NDR_ERR_SUCCESS
;
21830 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
21832 uint32_t cntr_info_0
;
21833 if (flags
& NDR_IN
) {
21834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21837 if (flags
& NDR_OUT
) {
21838 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21839 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21840 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21842 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21843 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21846 return NDR_ERR_SUCCESS
;
21849 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
21851 uint32_t cntr_info_0
;
21852 TALLOC_CTX
*_mem_save_info_0
;
21853 if (flags
& NDR_IN
) {
21854 ZERO_STRUCT(r
->out
);
21856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21859 if (flags
& NDR_OUT
) {
21860 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21861 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21862 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21863 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21864 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21865 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21867 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21868 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21872 return NDR_ERR_SUCCESS
;
21875 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
21877 uint32_t cntr_info_2
;
21878 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
21880 if (flags
& NDR_SET_VALUES
) {
21881 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21883 if (flags
& NDR_IN
) {
21884 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
21886 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21888 if (r
->in
.servername
) {
21889 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21892 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21894 if (r
->in
.environment
) {
21895 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21898 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21899 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21901 if (r
->in
.buffer
) {
21902 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21905 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21908 if (flags
& NDR_OUT
) {
21909 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
21911 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21913 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21915 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21917 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21919 if (*r
->out
.info
) {
21920 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21922 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21924 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21925 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21926 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21934 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21936 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21938 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21944 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
21946 if (flags
& NDR_IN
) {
21947 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21948 if (r
->in
.server
) {
21949 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21950 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21951 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21952 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21955 if (r
->in
.environment
) {
21956 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21957 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21958 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21959 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21963 if (r
->in
.buffer
) {
21964 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21968 if (flags
& NDR_OUT
) {
21969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21972 struct ndr_push
*_ndr_info
;
21973 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21974 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21975 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21976 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21979 if (r
->out
.needed
== NULL
) {
21980 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21983 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21985 return NDR_ERR_SUCCESS
;
21988 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
21990 uint32_t _ptr_server
;
21991 uint32_t _ptr_environment
;
21992 uint32_t _ptr_buffer
;
21993 uint32_t _ptr_info
;
21994 TALLOC_CTX
*_mem_save_server_0
;
21995 TALLOC_CTX
*_mem_save_environment_0
;
21996 TALLOC_CTX
*_mem_save_buffer_0
;
21997 TALLOC_CTX
*_mem_save_info_0
;
21998 TALLOC_CTX
*_mem_save_needed_0
;
21999 if (flags
& NDR_IN
) {
22000 ZERO_STRUCT(r
->out
);
22002 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22004 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22006 r
->in
.server
= NULL
;
22008 if (r
->in
.server
) {
22009 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22010 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22011 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22012 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22013 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22014 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
));
22016 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22017 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22020 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22021 if (_ptr_environment
) {
22022 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22024 r
->in
.environment
= NULL
;
22026 if (r
->in
.environment
) {
22027 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22028 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22029 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22030 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22031 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22032 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
));
22034 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22035 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22038 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22041 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22043 r
->in
.buffer
= NULL
;
22045 if (r
->in
.buffer
) {
22046 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22048 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22052 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22053 ZERO_STRUCTP(r
->out
.needed
);
22055 if (flags
& NDR_OUT
) {
22056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22058 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22060 r
->out
.info
= NULL
;
22063 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22064 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22066 struct ndr_pull
*_ndr_info
;
22067 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22068 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22069 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22070 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22074 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22075 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22077 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22078 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22079 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22081 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22083 return NDR_ERR_SUCCESS
;
22086 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22088 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
22090 if (flags
& NDR_SET_VALUES
) {
22091 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22093 if (flags
& NDR_IN
) {
22094 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
22096 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22098 if (r
->in
.server
) {
22099 ndr_print_string(ndr
, "server", r
->in
.server
);
22102 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22104 if (r
->in
.environment
) {
22105 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22108 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22109 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22111 if (r
->in
.buffer
) {
22112 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22115 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22118 if (flags
& NDR_OUT
) {
22119 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
22121 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22124 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22125 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
22128 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22130 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22132 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22138 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22140 if (flags
& NDR_IN
) {
22141 if (r
->in
.handle
== NULL
) {
22142 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22144 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22146 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22147 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22149 if (flags
& NDR_OUT
) {
22150 if (r
->out
.job_id
== NULL
) {
22151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
22154 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22156 return NDR_ERR_SUCCESS
;
22159 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
22161 TALLOC_CTX
*_mem_save_handle_0
;
22162 TALLOC_CTX
*_mem_save_job_id_0
;
22163 if (flags
& NDR_IN
) {
22164 ZERO_STRUCT(r
->out
);
22166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22167 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22169 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22170 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22171 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22173 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22174 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22175 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22176 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22177 ZERO_STRUCTP(r
->out
.job_id
);
22179 if (flags
& NDR_OUT
) {
22180 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22181 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22183 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22184 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
22185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
22186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
22187 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22189 return NDR_ERR_SUCCESS
;
22192 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22194 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
22196 if (flags
& NDR_SET_VALUES
) {
22197 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22199 if (flags
& NDR_IN
) {
22200 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
22202 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22204 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22206 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22207 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22208 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
22211 if (flags
& NDR_OUT
) {
22212 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
22214 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
22216 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
22218 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22224 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22226 if (flags
& NDR_IN
) {
22227 if (r
->in
.handle
== NULL
) {
22228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22230 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22232 if (flags
& NDR_OUT
) {
22233 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22235 return NDR_ERR_SUCCESS
;
22238 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
22240 TALLOC_CTX
*_mem_save_handle_0
;
22241 if (flags
& NDR_IN
) {
22242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22243 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22245 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22246 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22247 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22250 if (flags
& NDR_OUT
) {
22251 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22253 return NDR_ERR_SUCCESS
;
22256 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22258 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
22260 if (flags
& NDR_SET_VALUES
) {
22261 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22263 if (flags
& NDR_IN
) {
22264 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
22266 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22268 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22272 if (flags
& NDR_OUT
) {
22273 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
22275 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22281 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
22283 if (flags
& NDR_IN
) {
22284 if (r
->in
.handle
== NULL
) {
22285 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22287 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22288 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
22289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
22291 if (flags
& NDR_OUT
) {
22292 if (r
->out
.num_written
== NULL
) {
22293 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
22296 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22298 return NDR_ERR_SUCCESS
;
22301 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
22303 TALLOC_CTX
*_mem_save_handle_0
;
22304 TALLOC_CTX
*_mem_save_num_written_0
;
22305 if (flags
& NDR_IN
) {
22306 ZERO_STRUCT(r
->out
);
22308 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22309 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22311 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22312 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22313 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
22316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
22317 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22318 ZERO_STRUCTP(r
->out
.num_written
);
22320 if (flags
& NDR_OUT
) {
22321 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22322 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22324 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22325 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
22326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
22327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
22328 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22330 return NDR_ERR_SUCCESS
;
22333 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
22335 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
22337 if (flags
& NDR_SET_VALUES
) {
22338 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22340 if (flags
& NDR_IN
) {
22341 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
22343 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22345 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22347 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
22348 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
22351 if (flags
& NDR_OUT
) {
22352 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
22354 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
22356 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
22358 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22364 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22366 if (flags
& NDR_IN
) {
22367 if (r
->in
.handle
== NULL
) {
22368 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22370 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22372 if (flags
& NDR_OUT
) {
22373 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22375 return NDR_ERR_SUCCESS
;
22378 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
22380 TALLOC_CTX
*_mem_save_handle_0
;
22381 if (flags
& NDR_IN
) {
22382 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22383 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22385 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22386 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22387 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22390 if (flags
& NDR_OUT
) {
22391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22393 return NDR_ERR_SUCCESS
;
22396 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22398 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
22400 if (flags
& NDR_SET_VALUES
) {
22401 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22403 if (flags
& NDR_IN
) {
22404 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
22406 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22408 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22412 if (flags
& NDR_OUT
) {
22413 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
22415 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22421 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
22423 if (flags
& NDR_IN
) {
22424 if (r
->in
.handle
== NULL
) {
22425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22427 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22429 if (flags
& NDR_OUT
) {
22430 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22432 return NDR_ERR_SUCCESS
;
22435 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
22437 TALLOC_CTX
*_mem_save_handle_0
;
22438 if (flags
& NDR_IN
) {
22439 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22440 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22442 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22443 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22444 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22447 if (flags
& NDR_OUT
) {
22448 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22450 return NDR_ERR_SUCCESS
;
22453 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
22455 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
22457 if (flags
& NDR_SET_VALUES
) {
22458 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22460 if (flags
& NDR_IN
) {
22461 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
22463 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22465 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22469 if (flags
& NDR_OUT
) {
22470 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
22472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22478 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
22480 if (flags
& NDR_IN
) {
22481 if (r
->in
.handle
== NULL
) {
22482 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22484 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22487 if (flags
& NDR_OUT
) {
22488 if (r
->out
.data
== NULL
) {
22489 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22492 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
22493 if (r
->out
._data_size
== NULL
) {
22494 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
22497 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22499 return NDR_ERR_SUCCESS
;
22502 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
22504 TALLOC_CTX
*_mem_save_handle_0
;
22505 TALLOC_CTX
*_mem_save__data_size_0
;
22506 if (flags
& NDR_IN
) {
22507 ZERO_STRUCT(r
->out
);
22509 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22510 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22512 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22513 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22514 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22516 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
22517 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
22518 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
22519 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22520 ZERO_STRUCTP(r
->out
._data_size
);
22522 if (flags
& NDR_OUT
) {
22523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
22524 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22525 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
22527 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
22528 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22529 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22531 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22532 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
22533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
22534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
22535 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22537 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
22540 return NDR_ERR_SUCCESS
;
22543 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
22545 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
22547 if (flags
& NDR_SET_VALUES
) {
22548 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22550 if (flags
& NDR_IN
) {
22551 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
22553 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22555 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22557 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
22560 if (flags
& NDR_OUT
) {
22561 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
22563 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22565 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
22567 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
22569 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
22571 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22577 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22579 if (flags
& NDR_IN
) {
22580 if (r
->in
.handle
== NULL
) {
22581 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22583 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22585 if (flags
& NDR_OUT
) {
22586 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22588 return NDR_ERR_SUCCESS
;
22591 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
22593 TALLOC_CTX
*_mem_save_handle_0
;
22594 if (flags
& NDR_IN
) {
22595 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22596 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22598 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22599 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22600 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22603 if (flags
& NDR_OUT
) {
22604 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22606 return NDR_ERR_SUCCESS
;
22609 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22611 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
22613 if (flags
& NDR_SET_VALUES
) {
22614 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22616 if (flags
& NDR_IN
) {
22617 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
22619 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22621 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22625 if (flags
& NDR_OUT
) {
22626 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
22628 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22634 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
22636 if (flags
& NDR_IN
) {
22637 if (r
->in
.handle
== NULL
) {
22638 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22640 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22643 if (r
->in
.buffer
) {
22644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22645 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
22647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22649 if (flags
& NDR_OUT
) {
22650 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
22651 if (r
->out
.buffer
) {
22652 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22653 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
22655 if (r
->out
.needed
== NULL
) {
22656 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22659 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22661 return NDR_ERR_SUCCESS
;
22664 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
22666 uint32_t _ptr_buffer
;
22667 TALLOC_CTX
*_mem_save_handle_0
;
22668 TALLOC_CTX
*_mem_save_buffer_0
;
22669 TALLOC_CTX
*_mem_save_needed_0
;
22670 if (flags
& NDR_IN
) {
22671 ZERO_STRUCT(r
->out
);
22673 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22674 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22676 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22677 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22678 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22683 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22685 r
->in
.buffer
= NULL
;
22687 if (r
->in
.buffer
) {
22688 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22689 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22690 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
22691 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
22692 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
22693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22695 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22696 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22697 ZERO_STRUCTP(r
->out
.needed
);
22698 if (r
->in
.buffer
) {
22699 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
22702 if (flags
& NDR_OUT
) {
22703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22705 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
22707 r
->out
.buffer
= NULL
;
22709 if (r
->out
.buffer
) {
22710 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
22712 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
22713 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
22714 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
22715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22717 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22718 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22720 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22721 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22722 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22724 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22725 if (r
->out
.buffer
) {
22726 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
22729 return NDR_ERR_SUCCESS
;
22732 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
22734 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
22736 if (flags
& NDR_SET_VALUES
) {
22737 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22739 if (flags
& NDR_IN
) {
22740 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
22742 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22744 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22746 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22747 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22749 if (r
->in
.buffer
) {
22750 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
22753 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22756 if (flags
& NDR_OUT
) {
22757 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
22759 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
22761 if (r
->out
.buffer
) {
22762 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
22765 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22767 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22769 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22775 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
22777 if (flags
& NDR_IN
) {
22778 if (r
->in
.handle
== NULL
) {
22779 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22781 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
22784 if (flags
& NDR_OUT
) {
22785 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22787 return NDR_ERR_SUCCESS
;
22790 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
22792 TALLOC_CTX
*_mem_save_handle_0
;
22793 if (flags
& NDR_IN
) {
22794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22795 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22797 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22798 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22799 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
22803 if (flags
& NDR_OUT
) {
22804 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22806 return NDR_ERR_SUCCESS
;
22809 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
22811 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
22813 if (flags
& NDR_SET_VALUES
) {
22814 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22816 if (flags
& NDR_IN
) {
22817 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
22819 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22821 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22823 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
22826 if (flags
& NDR_OUT
) {
22827 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
22829 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22835 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
22837 if (flags
& NDR_IN
) {
22838 if (r
->in
.handle
== NULL
) {
22839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22841 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22842 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22843 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22844 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22845 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
));
22846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22848 if (flags
& NDR_OUT
) {
22849 if (r
->out
.type
== NULL
) {
22850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22852 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
22853 if (r
->out
.data
== NULL
) {
22854 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22856 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
22857 if (r
->out
.needed
== NULL
) {
22858 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22860 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22861 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22863 return NDR_ERR_SUCCESS
;
22866 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
22868 TALLOC_CTX
*_mem_save_handle_0
;
22869 TALLOC_CTX
*_mem_save_type_0
;
22870 TALLOC_CTX
*_mem_save_data_0
;
22871 TALLOC_CTX
*_mem_save_needed_0
;
22872 if (flags
& NDR_IN
) {
22873 ZERO_STRUCT(r
->out
);
22875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22876 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22878 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22880 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22882 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22883 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22884 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
22885 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
));
22887 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
22888 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
));
22889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22890 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22891 ZERO_STRUCTP(r
->out
.type
);
22892 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22893 ZERO_STRUCTP(r
->out
.data
);
22894 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22895 ZERO_STRUCTP(r
->out
.needed
);
22897 if (flags
& NDR_OUT
) {
22898 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22899 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22901 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22902 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
22903 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
22904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
22905 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22906 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22908 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22909 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
22910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
22911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
22912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22913 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22915 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22916 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22919 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22921 return NDR_ERR_SUCCESS
;
22924 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
22926 if (flags
& NDR_IN
) {
22927 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22929 if (flags
& NDR_OUT
) {
22930 if (r
->out
.data
== NULL
) {
22931 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22933 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
22934 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
22936 return NDR_ERR_SUCCESS
;
22939 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
22941 TALLOC_CTX
*_mem_save_data_0
;
22942 if (flags
& NDR_IN
) {
22943 ZERO_STRUCT(r
->out
);
22945 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
22946 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22947 ZERO_STRUCTP(r
->out
.data
);
22949 if (flags
& NDR_OUT
) {
22950 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22951 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22953 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22954 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
22955 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
22956 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
22957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
22959 return NDR_ERR_SUCCESS
;
22962 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
22964 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
22966 if (flags
& NDR_SET_VALUES
) {
22967 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22969 if (flags
& NDR_IN
) {
22970 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
22972 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22974 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22976 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
22977 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22980 if (flags
& NDR_OUT
) {
22981 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
22983 ndr_print_ptr(ndr
, "type", r
->out
.type
);
22985 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
22987 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22989 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
22990 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
22992 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22994 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22996 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23002 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
23004 if (flags
& NDR_IN
) {
23005 if (r
->in
.handle
== NULL
) {
23006 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23008 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23010 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23012 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
));
23013 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23014 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
23017 if (flags
& NDR_OUT
) {
23018 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23020 return NDR_ERR_SUCCESS
;
23023 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
23025 if (flags
& NDR_IN
) {
23026 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23028 if (flags
& NDR_OUT
) {
23029 if (r
->out
.data
== NULL
) {
23030 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23032 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23033 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23035 return NDR_ERR_SUCCESS
;
23038 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
23040 TALLOC_CTX
*_mem_save_handle_0
;
23041 if (flags
& NDR_IN
) {
23042 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23043 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23045 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23046 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23047 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23050 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23051 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23052 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
));
23054 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23055 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
));
23056 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23058 struct ndr_pull
*_ndr_data
;
23059 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
23060 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
23061 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
23062 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
23064 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
23066 if (flags
& NDR_OUT
) {
23067 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23069 return NDR_ERR_SUCCESS
;
23072 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
23074 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
23076 if (flags
& NDR_SET_VALUES
) {
23077 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23079 if (flags
& NDR_IN
) {
23080 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
23082 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23084 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23086 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23087 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
23088 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
23089 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
23090 ndr_print_uint32(ndr
, "_offered", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(&r
->in
.data
, r
->in
.type
, ndr
->iconv_convenience
, flags
):r
->in
._offered
);
23093 if (flags
& NDR_OUT
) {
23094 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
23096 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23102 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23104 if (flags
& NDR_IN
) {
23106 if (flags
& NDR_OUT
) {
23107 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23109 return NDR_ERR_SUCCESS
;
23112 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
23114 if (flags
& NDR_IN
) {
23116 if (flags
& NDR_OUT
) {
23117 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23119 return NDR_ERR_SUCCESS
;
23122 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23124 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
23126 if (flags
& NDR_SET_VALUES
) {
23127 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23129 if (flags
& NDR_IN
) {
23130 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
23134 if (flags
& NDR_OUT
) {
23135 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
23137 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23143 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
23145 if (flags
& NDR_IN
) {
23146 if (r
->in
.handle
== NULL
) {
23147 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23149 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23151 if (flags
& NDR_OUT
) {
23152 if (r
->out
.handle
== NULL
) {
23153 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23155 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23156 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23158 return NDR_ERR_SUCCESS
;
23161 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
23163 TALLOC_CTX
*_mem_save_handle_0
;
23164 if (flags
& NDR_IN
) {
23165 ZERO_STRUCT(r
->out
);
23167 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23168 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23170 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23171 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23172 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23174 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23175 *r
->out
.handle
= *r
->in
.handle
;
23177 if (flags
& NDR_OUT
) {
23178 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23179 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23181 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23182 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23183 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23185 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23187 return NDR_ERR_SUCCESS
;
23190 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
23192 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
23194 if (flags
& NDR_SET_VALUES
) {
23195 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23197 if (flags
& NDR_IN
) {
23198 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
23200 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23202 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23206 if (flags
& NDR_OUT
) {
23207 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
23209 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23211 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23213 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23219 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
23221 if (flags
& NDR_IN
) {
23222 if (r
->in
.handle
== NULL
) {
23223 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23225 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23227 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23228 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23230 if (flags
& NDR_OUT
) {
23231 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23233 return NDR_ERR_SUCCESS
;
23236 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
23238 TALLOC_CTX
*_mem_save_handle_0
;
23239 if (flags
& NDR_IN
) {
23240 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23241 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23243 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23244 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23245 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23247 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23248 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23249 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23251 if (flags
& NDR_OUT
) {
23252 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23254 return NDR_ERR_SUCCESS
;
23257 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
23259 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
23261 if (flags
& NDR_SET_VALUES
) {
23262 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23264 if (flags
& NDR_IN
) {
23265 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
23267 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23269 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23271 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23272 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23273 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23276 if (flags
& NDR_OUT
) {
23277 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
23279 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23285 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
23287 if (flags
& NDR_IN
) {
23288 if (r
->in
.handle
== NULL
) {
23289 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23291 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23293 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23295 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
));
23297 if (flags
& NDR_OUT
) {
23298 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23300 return NDR_ERR_SUCCESS
;
23303 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
23305 TALLOC_CTX
*_mem_save_handle_0
;
23306 if (flags
& NDR_IN
) {
23307 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23308 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23310 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23311 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23312 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23316 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23317 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
));
23319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23320 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
));
23322 if (flags
& NDR_OUT
) {
23323 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23325 return NDR_ERR_SUCCESS
;
23328 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
23330 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
23332 if (flags
& NDR_SET_VALUES
) {
23333 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23335 if (flags
& NDR_IN
) {
23336 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
23338 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23340 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23342 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23345 if (flags
& NDR_OUT
) {
23346 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
23348 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23354 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
23356 if (flags
& NDR_IN
) {
23357 if (r
->in
.handle
== NULL
) {
23358 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23360 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23361 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23362 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23363 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23364 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
));
23365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23366 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23367 if (r
->in
.buffer
) {
23368 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23372 if (flags
& NDR_OUT
) {
23373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23376 struct ndr_push
*_ndr_info
;
23377 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23378 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23379 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23380 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23383 if (r
->out
.needed
== NULL
) {
23384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23387 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23389 return NDR_ERR_SUCCESS
;
23392 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
23394 uint32_t _ptr_buffer
;
23395 uint32_t _ptr_info
;
23396 TALLOC_CTX
*_mem_save_handle_0
;
23397 TALLOC_CTX
*_mem_save_buffer_0
;
23398 TALLOC_CTX
*_mem_save_info_0
;
23399 TALLOC_CTX
*_mem_save_needed_0
;
23400 if (flags
& NDR_IN
) {
23401 ZERO_STRUCT(r
->out
);
23403 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23404 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23406 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23407 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23408 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23410 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23411 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23412 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23413 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
));
23415 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23416 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
));
23417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23420 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23422 r
->in
.buffer
= NULL
;
23424 if (r
->in
.buffer
) {
23425 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23427 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23431 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23432 ZERO_STRUCTP(r
->out
.needed
);
23434 if (flags
& NDR_OUT
) {
23435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23437 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23439 r
->out
.info
= NULL
;
23442 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23443 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23445 struct ndr_pull
*_ndr_info
;
23446 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23447 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23448 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23449 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23453 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23454 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23456 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23457 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23458 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23462 return NDR_ERR_SUCCESS
;
23465 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
23467 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
23469 if (flags
& NDR_SET_VALUES
) {
23470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23472 if (flags
& NDR_IN
) {
23473 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
23475 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23477 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23479 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23480 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23481 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23483 if (r
->in
.buffer
) {
23484 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23487 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23490 if (flags
& NDR_OUT
) {
23491 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
23493 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23496 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23497 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
23500 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23502 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23504 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23510 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
23512 if (flags
& NDR_IN
) {
23513 if (r
->in
.handle
== NULL
) {
23514 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23516 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23517 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23518 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23519 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23520 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
));
23521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23522 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23523 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23525 if (flags
& NDR_OUT
) {
23526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23528 return NDR_ERR_SUCCESS
;
23531 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
23533 TALLOC_CTX
*_mem_save_handle_0
;
23534 if (flags
& NDR_IN
) {
23535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23536 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23538 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23539 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23540 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23542 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23543 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23544 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23545 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
));
23547 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23548 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
));
23549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23550 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23551 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23553 if (flags
& NDR_OUT
) {
23554 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23556 return NDR_ERR_SUCCESS
;
23559 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
23561 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
23563 if (flags
& NDR_SET_VALUES
) {
23564 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23566 if (flags
& NDR_IN
) {
23567 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
23569 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23571 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23573 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23574 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23575 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23576 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23579 if (flags
& NDR_OUT
) {
23580 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
23582 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23588 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
23590 if (flags
& NDR_IN
) {
23591 if (r
->in
.handle
== NULL
) {
23592 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23594 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23597 if (r
->in
.buffer
) {
23598 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23602 if (flags
& NDR_OUT
) {
23603 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23605 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23607 if (r
->out
.needed
== NULL
) {
23608 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23611 if (r
->out
.count
== NULL
) {
23612 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23615 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23617 return NDR_ERR_SUCCESS
;
23620 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
23622 uint32_t _ptr_buffer
;
23623 uint32_t _ptr_info
;
23624 TALLOC_CTX
*_mem_save_handle_0
;
23625 TALLOC_CTX
*_mem_save_buffer_0
;
23626 TALLOC_CTX
*_mem_save_info_0
;
23627 TALLOC_CTX
*_mem_save_needed_0
;
23628 TALLOC_CTX
*_mem_save_count_0
;
23629 if (flags
& NDR_IN
) {
23630 ZERO_STRUCT(r
->out
);
23632 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23633 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23635 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23636 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23637 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23642 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23644 r
->in
.buffer
= NULL
;
23646 if (r
->in
.buffer
) {
23647 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23648 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23649 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23653 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23654 ZERO_STRUCTP(r
->out
.needed
);
23655 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23656 ZERO_STRUCTP(r
->out
.count
);
23658 if (flags
& NDR_OUT
) {
23659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23661 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23663 r
->out
.info
= NULL
;
23666 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23667 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23668 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23671 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23672 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23674 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23675 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23678 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23679 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23681 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23682 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23683 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23685 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23687 return NDR_ERR_SUCCESS
;
23690 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
23692 uint32_t cntr_info_0
;
23693 if (flags
& NDR_IN
) {
23694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23697 if (flags
& NDR_OUT
) {
23698 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23699 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23700 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23702 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23703 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23706 return NDR_ERR_SUCCESS
;
23709 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
23711 uint32_t cntr_info_0
;
23712 TALLOC_CTX
*_mem_save_info_0
;
23713 if (flags
& NDR_IN
) {
23714 ZERO_STRUCT(r
->out
);
23716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23719 if (flags
& NDR_OUT
) {
23720 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23721 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23722 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23723 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23724 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23725 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23727 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23728 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23732 return NDR_ERR_SUCCESS
;
23735 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
23737 uint32_t cntr_info_2
;
23738 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
23740 if (flags
& NDR_SET_VALUES
) {
23741 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23743 if (flags
& NDR_IN
) {
23744 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
23746 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23748 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23750 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23751 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23753 if (r
->in
.buffer
) {
23754 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23757 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23760 if (flags
& NDR_OUT
) {
23761 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
23763 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23765 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23767 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23769 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23771 if (*r
->out
.info
) {
23772 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23774 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23776 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23777 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23778 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23786 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23788 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23790 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23796 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
23798 if (flags
& NDR_IN
) {
23799 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23800 if (r
->in
.servername
) {
23801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23803 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23804 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23807 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23808 if (r
->in
.buffer
) {
23809 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23813 if (flags
& NDR_OUT
) {
23814 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23816 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23818 if (r
->out
.needed
== NULL
) {
23819 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23822 if (r
->out
.count
== NULL
) {
23823 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23826 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23828 return NDR_ERR_SUCCESS
;
23831 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
23833 uint32_t _ptr_servername
;
23834 uint32_t _ptr_buffer
;
23835 uint32_t _ptr_info
;
23836 TALLOC_CTX
*_mem_save_servername_0
;
23837 TALLOC_CTX
*_mem_save_buffer_0
;
23838 TALLOC_CTX
*_mem_save_info_0
;
23839 TALLOC_CTX
*_mem_save_needed_0
;
23840 TALLOC_CTX
*_mem_save_count_0
;
23841 if (flags
& NDR_IN
) {
23842 ZERO_STRUCT(r
->out
);
23844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23845 if (_ptr_servername
) {
23846 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23848 r
->in
.servername
= NULL
;
23850 if (r
->in
.servername
) {
23851 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23852 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23855 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23856 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
));
23858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23865 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23867 r
->in
.buffer
= NULL
;
23869 if (r
->in
.buffer
) {
23870 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23871 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23872 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23876 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23877 ZERO_STRUCTP(r
->out
.needed
);
23878 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23879 ZERO_STRUCTP(r
->out
.count
);
23881 if (flags
& NDR_OUT
) {
23882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23884 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23886 r
->out
.info
= NULL
;
23889 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23890 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23895 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23897 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23898 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23902 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23904 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23905 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23908 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23910 return NDR_ERR_SUCCESS
;
23913 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
23915 uint32_t cntr_info_0
;
23916 if (flags
& NDR_IN
) {
23917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23920 if (flags
& NDR_OUT
) {
23921 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23922 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23923 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23925 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23926 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23929 return NDR_ERR_SUCCESS
;
23932 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
23934 uint32_t cntr_info_0
;
23935 TALLOC_CTX
*_mem_save_info_0
;
23936 if (flags
& NDR_IN
) {
23937 ZERO_STRUCT(r
->out
);
23939 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23942 if (flags
& NDR_OUT
) {
23943 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23944 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23945 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23946 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23947 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23948 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23950 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23951 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23955 return NDR_ERR_SUCCESS
;
23958 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
23960 uint32_t cntr_info_2
;
23961 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
23963 if (flags
& NDR_SET_VALUES
) {
23964 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23966 if (flags
& NDR_IN
) {
23967 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
23969 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23971 if (r
->in
.servername
) {
23972 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23975 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23976 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23978 if (r
->in
.buffer
) {
23979 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23982 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23985 if (flags
& NDR_OUT
) {
23986 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
23988 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23990 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23992 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23994 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23996 if (*r
->out
.info
) {
23997 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23999 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24001 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24002 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24003 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24011 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24013 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24015 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24021 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
24023 if (flags
& NDR_IN
) {
24024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24025 if (r
->in
.servername
) {
24026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24028 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24029 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24033 if (r
->in
.buffer
) {
24034 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24038 if (flags
& NDR_OUT
) {
24039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24041 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24043 if (r
->out
.needed
== NULL
) {
24044 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24047 if (r
->out
.count
== NULL
) {
24048 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24051 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24053 return NDR_ERR_SUCCESS
;
24056 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
24058 uint32_t _ptr_servername
;
24059 uint32_t _ptr_buffer
;
24060 uint32_t _ptr_info
;
24061 TALLOC_CTX
*_mem_save_servername_0
;
24062 TALLOC_CTX
*_mem_save_buffer_0
;
24063 TALLOC_CTX
*_mem_save_info_0
;
24064 TALLOC_CTX
*_mem_save_needed_0
;
24065 TALLOC_CTX
*_mem_save_count_0
;
24066 if (flags
& NDR_IN
) {
24067 ZERO_STRUCT(r
->out
);
24069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24070 if (_ptr_servername
) {
24071 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24073 r
->in
.servername
= NULL
;
24075 if (r
->in
.servername
) {
24076 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24077 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24078 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24079 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24080 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24081 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
));
24083 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24084 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24087 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24090 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24092 r
->in
.buffer
= NULL
;
24094 if (r
->in
.buffer
) {
24095 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24097 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24101 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24102 ZERO_STRUCTP(r
->out
.needed
);
24103 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24104 ZERO_STRUCTP(r
->out
.count
);
24106 if (flags
& NDR_OUT
) {
24107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24109 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24111 r
->out
.info
= NULL
;
24114 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24115 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24116 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24119 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24120 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24122 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24123 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24126 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24127 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24129 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24130 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24133 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24135 return NDR_ERR_SUCCESS
;
24138 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
24140 uint32_t cntr_info_0
;
24141 if (flags
& NDR_IN
) {
24142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24145 if (flags
& NDR_OUT
) {
24146 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24147 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24148 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24150 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24151 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24154 return NDR_ERR_SUCCESS
;
24157 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
24159 uint32_t cntr_info_0
;
24160 TALLOC_CTX
*_mem_save_info_0
;
24161 if (flags
& NDR_IN
) {
24162 ZERO_STRUCT(r
->out
);
24164 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24165 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24167 if (flags
& NDR_OUT
) {
24168 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24169 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24170 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24171 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24172 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24173 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24175 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24176 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24180 return NDR_ERR_SUCCESS
;
24183 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
24185 uint32_t cntr_info_2
;
24186 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
24188 if (flags
& NDR_SET_VALUES
) {
24189 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24191 if (flags
& NDR_IN
) {
24192 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
24194 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24196 if (r
->in
.servername
) {
24197 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24200 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24201 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24203 if (r
->in
.buffer
) {
24204 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24207 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24210 if (flags
& NDR_OUT
) {
24211 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
24213 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24215 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24217 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24219 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24221 if (*r
->out
.info
) {
24222 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24224 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24226 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24227 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24228 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24236 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24238 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24240 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24246 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
24248 if (flags
& NDR_IN
) {
24249 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
24250 if (r
->in
.server_name
) {
24251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24252 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24253 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24254 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
));
24256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
24257 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24258 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24259 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24260 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
));
24262 if (flags
& NDR_OUT
) {
24263 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24265 return NDR_ERR_SUCCESS
;
24268 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
24270 uint32_t _ptr_server_name
;
24271 TALLOC_CTX
*_mem_save_server_name_0
;
24272 if (flags
& NDR_IN
) {
24273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
24274 if (_ptr_server_name
) {
24275 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
24277 r
->in
.server_name
= NULL
;
24279 if (r
->in
.server_name
) {
24280 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24281 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
24282 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24283 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24284 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24285 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
));
24287 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24288 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
));
24289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
24291 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
24292 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
24293 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
24294 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
24295 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
));
24297 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
24298 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
));
24300 if (flags
& NDR_OUT
) {
24301 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24303 return NDR_ERR_SUCCESS
;
24306 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
24308 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
24310 if (flags
& NDR_SET_VALUES
) {
24311 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24313 if (flags
& NDR_IN
) {
24314 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
24316 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
24318 if (r
->in
.server_name
) {
24319 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24322 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
24323 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
24326 if (flags
& NDR_OUT
) {
24327 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
24329 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24335 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
24337 if (flags
& NDR_IN
) {
24339 if (flags
& NDR_OUT
) {
24340 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24342 return NDR_ERR_SUCCESS
;
24345 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
24347 if (flags
& NDR_IN
) {
24349 if (flags
& NDR_OUT
) {
24350 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24352 return NDR_ERR_SUCCESS
;
24355 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
24357 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
24359 if (flags
& NDR_SET_VALUES
) {
24360 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24362 if (flags
& NDR_IN
) {
24363 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
24367 if (flags
& NDR_OUT
) {
24368 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
24370 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24376 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*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_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*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_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
24398 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
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_DeletePort");
24408 if (flags
& NDR_OUT
) {
24409 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
24411 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24417 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*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
));
24424 if (r
->in
.devmode_ctr
== NULL
) {
24425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24427 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24429 if (flags
& NDR_OUT
) {
24430 if (r
->out
.gdi_handle
== NULL
) {
24431 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24433 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24434 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24436 return NDR_ERR_SUCCESS
;
24439 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
24441 TALLOC_CTX
*_mem_save_handle_0
;
24442 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24443 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
24444 if (flags
& NDR_IN
) {
24445 ZERO_STRUCT(r
->out
);
24447 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24448 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24450 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24451 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24452 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24454 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24455 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
24457 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24458 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24459 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24461 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24462 ZERO_STRUCTP(r
->out
.gdi_handle
);
24464 if (flags
& NDR_OUT
) {
24465 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24466 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24468 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24469 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24470 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24472 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24474 return NDR_ERR_SUCCESS
;
24477 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24479 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
24481 if (flags
& NDR_SET_VALUES
) {
24482 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24484 if (flags
& NDR_IN
) {
24485 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
24487 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24489 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24491 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24493 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24497 if (flags
& NDR_OUT
) {
24498 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
24500 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24502 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24504 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24510 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24512 if (flags
& NDR_IN
) {
24514 if (flags
& NDR_OUT
) {
24515 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24517 return NDR_ERR_SUCCESS
;
24520 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24522 if (flags
& NDR_IN
) {
24524 if (flags
& NDR_OUT
) {
24525 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24527 return NDR_ERR_SUCCESS
;
24530 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24532 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
24534 if (flags
& NDR_SET_VALUES
) {
24535 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24537 if (flags
& NDR_IN
) {
24538 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24542 if (flags
& NDR_OUT
) {
24543 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24545 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24551 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24553 if (flags
& NDR_IN
) {
24554 if (r
->in
.gdi_handle
== NULL
) {
24555 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24557 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24559 if (flags
& NDR_OUT
) {
24560 if (r
->out
.gdi_handle
== NULL
) {
24561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24563 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24564 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24566 return NDR_ERR_SUCCESS
;
24569 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
24571 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24572 if (flags
& NDR_IN
) {
24573 ZERO_STRUCT(r
->out
);
24575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24576 NDR_PULL_ALLOC(ndr
, r
->in
.gdi_handle
);
24578 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24580 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24582 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24583 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
24585 if (flags
& NDR_OUT
) {
24586 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24587 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24589 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24590 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24591 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24593 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24595 return NDR_ERR_SUCCESS
;
24598 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24600 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
24602 if (flags
& NDR_SET_VALUES
) {
24603 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24605 if (flags
& NDR_IN
) {
24606 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
24608 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24610 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24614 if (flags
& NDR_OUT
) {
24615 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
24617 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24619 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24621 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24627 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24629 if (flags
& NDR_IN
) {
24631 if (flags
& NDR_OUT
) {
24632 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24634 return NDR_ERR_SUCCESS
;
24637 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
24639 if (flags
& NDR_IN
) {
24641 if (flags
& NDR_OUT
) {
24642 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24644 return NDR_ERR_SUCCESS
;
24647 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24649 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
24651 if (flags
& NDR_SET_VALUES
) {
24652 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24654 if (flags
& NDR_IN
) {
24655 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
24659 if (flags
& NDR_OUT
) {
24660 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
24662 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24668 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24670 if (flags
& NDR_IN
) {
24672 if (flags
& NDR_OUT
) {
24673 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24675 return NDR_ERR_SUCCESS
;
24678 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
24680 if (flags
& NDR_IN
) {
24682 if (flags
& NDR_OUT
) {
24683 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24685 return NDR_ERR_SUCCESS
;
24688 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24690 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
24692 if (flags
& NDR_SET_VALUES
) {
24693 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24695 if (flags
& NDR_IN
) {
24696 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
24700 if (flags
& NDR_OUT
) {
24701 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
24703 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24709 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24711 if (flags
& NDR_IN
) {
24713 if (flags
& NDR_OUT
) {
24714 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24716 return NDR_ERR_SUCCESS
;
24719 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
24721 if (flags
& NDR_IN
) {
24723 if (flags
& NDR_OUT
) {
24724 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24726 return NDR_ERR_SUCCESS
;
24729 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24731 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
24733 if (flags
& NDR_SET_VALUES
) {
24734 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24736 if (flags
& NDR_IN
) {
24737 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
24741 if (flags
& NDR_OUT
) {
24742 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
24744 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24750 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
24752 if (flags
& NDR_IN
) {
24754 if (flags
& NDR_OUT
) {
24755 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24757 return NDR_ERR_SUCCESS
;
24760 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
24762 if (flags
& NDR_IN
) {
24764 if (flags
& NDR_OUT
) {
24765 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24767 return NDR_ERR_SUCCESS
;
24770 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
24772 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
24774 if (flags
& NDR_SET_VALUES
) {
24775 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24777 if (flags
& NDR_IN
) {
24778 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
24782 if (flags
& NDR_OUT
) {
24783 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
24785 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24791 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24793 if (flags
& NDR_IN
) {
24795 if (flags
& NDR_OUT
) {
24796 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24798 return NDR_ERR_SUCCESS
;
24801 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
24803 if (flags
& NDR_IN
) {
24805 if (flags
& NDR_OUT
) {
24806 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24808 return NDR_ERR_SUCCESS
;
24811 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24813 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
24815 if (flags
& NDR_SET_VALUES
) {
24816 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24818 if (flags
& NDR_IN
) {
24819 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
24823 if (flags
& NDR_OUT
) {
24824 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
24826 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24832 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24834 if (flags
& NDR_IN
) {
24836 if (flags
& NDR_OUT
) {
24837 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24839 return NDR_ERR_SUCCESS
;
24842 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
24844 if (flags
& NDR_IN
) {
24846 if (flags
& NDR_OUT
) {
24847 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24849 return NDR_ERR_SUCCESS
;
24852 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24854 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
24856 if (flags
& NDR_SET_VALUES
) {
24857 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24859 if (flags
& NDR_IN
) {
24860 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
24864 if (flags
& NDR_OUT
) {
24865 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
24867 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24873 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24875 if (flags
& NDR_IN
) {
24877 if (flags
& NDR_OUT
) {
24878 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24880 return NDR_ERR_SUCCESS
;
24883 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
24885 if (flags
& NDR_IN
) {
24887 if (flags
& NDR_OUT
) {
24888 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24890 return NDR_ERR_SUCCESS
;
24893 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24895 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
24897 if (flags
& NDR_SET_VALUES
) {
24898 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24900 if (flags
& NDR_IN
) {
24901 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
24905 if (flags
& NDR_OUT
) {
24906 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
24908 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24914 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
24916 if (flags
& NDR_IN
) {
24918 if (flags
& NDR_OUT
) {
24919 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24921 return NDR_ERR_SUCCESS
;
24924 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
24926 if (flags
& NDR_IN
) {
24928 if (flags
& NDR_OUT
) {
24929 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24931 return NDR_ERR_SUCCESS
;
24934 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
24936 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
24938 if (flags
& NDR_SET_VALUES
) {
24939 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24941 if (flags
& NDR_IN
) {
24942 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
24946 if (flags
& NDR_OUT
) {
24947 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
24949 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24955 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
24957 if (flags
& NDR_IN
) {
24958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24959 if (r
->in
.servername
) {
24960 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24961 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24962 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24963 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
24966 if (r
->in
.print_processor_name
) {
24967 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24968 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24969 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24970 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
));
24972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24973 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24974 if (r
->in
.buffer
) {
24975 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24979 if (flags
& NDR_OUT
) {
24980 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24982 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24984 if (r
->out
.needed
== NULL
) {
24985 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24988 if (r
->out
.count
== NULL
) {
24989 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24992 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24994 return NDR_ERR_SUCCESS
;
24997 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
24999 uint32_t _ptr_servername
;
25000 uint32_t _ptr_print_processor_name
;
25001 uint32_t _ptr_buffer
;
25002 uint32_t _ptr_info
;
25003 TALLOC_CTX
*_mem_save_servername_0
;
25004 TALLOC_CTX
*_mem_save_print_processor_name_0
;
25005 TALLOC_CTX
*_mem_save_buffer_0
;
25006 TALLOC_CTX
*_mem_save_info_0
;
25007 TALLOC_CTX
*_mem_save_needed_0
;
25008 TALLOC_CTX
*_mem_save_count_0
;
25009 if (flags
& NDR_IN
) {
25010 ZERO_STRUCT(r
->out
);
25012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25013 if (_ptr_servername
) {
25014 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25016 r
->in
.servername
= NULL
;
25018 if (r
->in
.servername
) {
25019 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25020 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25021 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25022 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25023 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25024 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
));
25026 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25027 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
25031 if (_ptr_print_processor_name
) {
25032 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
25034 r
->in
.print_processor_name
= NULL
;
25036 if (r
->in
.print_processor_name
) {
25037 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25038 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
25039 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
25040 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
25041 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
25042 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
));
25044 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
25045 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
));
25046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
25048 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25051 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25053 r
->in
.buffer
= NULL
;
25055 if (r
->in
.buffer
) {
25056 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25057 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25058 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25061 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25062 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25063 ZERO_STRUCTP(r
->out
.needed
);
25064 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25065 ZERO_STRUCTP(r
->out
.count
);
25067 if (flags
& NDR_OUT
) {
25068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25070 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25072 r
->out
.info
= NULL
;
25075 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25076 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25077 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25080 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25081 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25083 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25084 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25085 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25087 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25088 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25090 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25091 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25094 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25096 return NDR_ERR_SUCCESS
;
25099 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
25101 uint32_t cntr_info_0
;
25102 if (flags
& NDR_IN
) {
25103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25106 if (flags
& NDR_OUT
) {
25107 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25108 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25109 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25111 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25112 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25115 return NDR_ERR_SUCCESS
;
25118 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
25120 uint32_t cntr_info_0
;
25121 TALLOC_CTX
*_mem_save_info_0
;
25122 if (flags
& NDR_IN
) {
25123 ZERO_STRUCT(r
->out
);
25125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25128 if (flags
& NDR_OUT
) {
25129 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25130 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25131 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25132 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25133 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25134 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25136 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25137 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25141 return NDR_ERR_SUCCESS
;
25144 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
25146 uint32_t cntr_info_2
;
25147 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
25149 if (flags
& NDR_SET_VALUES
) {
25150 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25152 if (flags
& NDR_IN
) {
25153 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
25155 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25157 if (r
->in
.servername
) {
25158 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25161 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25163 if (r
->in
.print_processor_name
) {
25164 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25167 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25168 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25170 if (r
->in
.buffer
) {
25171 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25174 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25177 if (flags
& NDR_OUT
) {
25178 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
25180 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25182 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25184 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25186 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25188 if (*r
->out
.info
) {
25189 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25191 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25193 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25194 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25195 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25203 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25205 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25207 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25213 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
25215 if (flags
& NDR_IN
) {
25216 if (r
->in
.handle
== NULL
) {
25217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25219 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25220 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
25221 if (r
->in
.data_type
) {
25222 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25223 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25224 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25225 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
));
25227 if (r
->in
.devmode_ctr
== NULL
) {
25228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25230 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25232 if (flags
& NDR_OUT
) {
25233 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25235 return NDR_ERR_SUCCESS
;
25238 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
25240 uint32_t _ptr_data_type
;
25241 TALLOC_CTX
*_mem_save_handle_0
;
25242 TALLOC_CTX
*_mem_save_data_type_0
;
25243 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25244 if (flags
& NDR_IN
) {
25245 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25246 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25248 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25249 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25250 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
25253 if (_ptr_data_type
) {
25254 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
25256 r
->in
.data_type
= NULL
;
25258 if (r
->in
.data_type
) {
25259 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
25261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
25262 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
25263 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
25264 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
));
25266 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
25267 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
));
25268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
25270 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25271 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25273 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25274 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25275 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25278 if (flags
& NDR_OUT
) {
25279 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25281 return NDR_ERR_SUCCESS
;
25284 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
25286 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
25288 if (flags
& NDR_SET_VALUES
) {
25289 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25291 if (flags
& NDR_IN
) {
25292 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
25294 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25296 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25298 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
25300 if (r
->in
.data_type
) {
25301 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
25304 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25306 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25310 if (flags
& NDR_OUT
) {
25311 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
25313 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25319 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25321 if (flags
& NDR_IN
) {
25322 if (r
->in
.handle
== NULL
) {
25323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25325 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25326 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
25327 if (r
->in
.architecture
) {
25328 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25329 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25330 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25331 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25334 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25335 if (r
->in
.buffer
) {
25336 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
25340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
25342 if (flags
& NDR_OUT
) {
25343 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25346 struct ndr_push
*_ndr_info
;
25347 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25348 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25349 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25350 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25353 if (r
->out
.needed
== NULL
) {
25354 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25357 if (r
->out
.server_major_version
== NULL
) {
25358 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
25361 if (r
->out
.server_minor_version
== NULL
) {
25362 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
25365 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25367 return NDR_ERR_SUCCESS
;
25370 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
25372 uint32_t _ptr_architecture
;
25373 uint32_t _ptr_buffer
;
25374 uint32_t _ptr_info
;
25375 TALLOC_CTX
*_mem_save_handle_0
;
25376 TALLOC_CTX
*_mem_save_architecture_0
;
25377 TALLOC_CTX
*_mem_save_buffer_0
;
25378 TALLOC_CTX
*_mem_save_info_0
;
25379 TALLOC_CTX
*_mem_save_needed_0
;
25380 TALLOC_CTX
*_mem_save_server_major_version_0
;
25381 TALLOC_CTX
*_mem_save_server_minor_version_0
;
25382 if (flags
& NDR_IN
) {
25383 ZERO_STRUCT(r
->out
);
25385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25386 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25388 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25389 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25390 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
25393 if (_ptr_architecture
) {
25394 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
25396 r
->in
.architecture
= NULL
;
25398 if (r
->in
.architecture
) {
25399 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25400 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
25401 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
25402 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
25403 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
25404 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
));
25406 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
25407 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
25408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
25410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25413 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25415 r
->in
.buffer
= NULL
;
25417 if (r
->in
.buffer
) {
25418 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25419 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25420 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
25425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
25426 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25427 ZERO_STRUCTP(r
->out
.needed
);
25428 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25429 ZERO_STRUCTP(r
->out
.server_major_version
);
25430 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25431 ZERO_STRUCTP(r
->out
.server_minor_version
);
25433 if (flags
& NDR_OUT
) {
25434 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25436 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25438 r
->out
.info
= NULL
;
25441 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25442 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25444 struct ndr_pull
*_ndr_info
;
25445 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25446 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25447 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25448 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25452 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25453 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25455 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25456 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25459 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25460 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25462 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25463 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
25464 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
25465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25466 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25467 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25469 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25470 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
25471 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
25472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25473 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25475 return NDR_ERR_SUCCESS
;
25478 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25480 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
25482 if (flags
& NDR_SET_VALUES
) {
25483 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25485 if (flags
& NDR_IN
) {
25486 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
25488 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25490 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25492 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
25494 if (r
->in
.architecture
) {
25495 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
25498 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25499 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25501 if (r
->in
.buffer
) {
25502 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25505 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25506 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
25507 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
25510 if (flags
& NDR_OUT
) {
25511 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
25513 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25516 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
25517 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
25520 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25522 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25524 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
25526 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
25528 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
25530 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
25532 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25538 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25540 if (flags
& NDR_IN
) {
25542 if (flags
& NDR_OUT
) {
25543 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25545 return NDR_ERR_SUCCESS
;
25548 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
25550 if (flags
& NDR_IN
) {
25552 if (flags
& NDR_OUT
) {
25553 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25555 return NDR_ERR_SUCCESS
;
25558 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25560 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
25562 if (flags
& NDR_SET_VALUES
) {
25563 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25565 if (flags
& NDR_IN
) {
25566 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
25570 if (flags
& NDR_OUT
) {
25571 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
25573 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25579 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25581 if (flags
& NDR_IN
) {
25583 if (flags
& NDR_OUT
) {
25584 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25586 return NDR_ERR_SUCCESS
;
25589 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
25591 if (flags
& NDR_IN
) {
25593 if (flags
& NDR_OUT
) {
25594 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25596 return NDR_ERR_SUCCESS
;
25599 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25601 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
25603 if (flags
& NDR_SET_VALUES
) {
25604 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25606 if (flags
& NDR_IN
) {
25607 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
25611 if (flags
& NDR_OUT
) {
25612 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
25614 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25620 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25622 if (flags
& NDR_IN
) {
25623 if (r
->in
.handle
== NULL
) {
25624 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25626 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25628 if (flags
& NDR_OUT
) {
25629 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25631 return NDR_ERR_SUCCESS
;
25634 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
25636 TALLOC_CTX
*_mem_save_handle_0
;
25637 if (flags
& NDR_IN
) {
25638 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25639 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25641 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25642 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25643 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25646 if (flags
& NDR_OUT
) {
25647 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25649 return NDR_ERR_SUCCESS
;
25652 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25654 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
25656 if (flags
& NDR_SET_VALUES
) {
25657 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25659 if (flags
& NDR_IN
) {
25660 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
25662 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25664 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25668 if (flags
& NDR_OUT
) {
25669 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
25671 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25677 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25679 if (flags
& NDR_IN
) {
25681 if (flags
& NDR_OUT
) {
25682 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25684 return NDR_ERR_SUCCESS
;
25687 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25689 if (flags
& NDR_IN
) {
25691 if (flags
& NDR_OUT
) {
25692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25694 return NDR_ERR_SUCCESS
;
25697 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25699 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25701 if (flags
& NDR_SET_VALUES
) {
25702 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25704 if (flags
& NDR_IN
) {
25705 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25709 if (flags
& NDR_OUT
) {
25710 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25712 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25718 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25720 if (flags
& NDR_IN
) {
25721 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25722 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25723 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25724 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
));
25725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
25726 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
25727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25728 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25729 if (r
->in
.buffer
) {
25730 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25731 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25734 if (flags
& NDR_OUT
) {
25735 if (r
->out
.handle
== NULL
) {
25736 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25738 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25739 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25741 return NDR_ERR_SUCCESS
;
25744 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
25746 uint32_t _ptr_buffer
;
25747 TALLOC_CTX
*_mem_save_buffer_0
;
25748 TALLOC_CTX
*_mem_save_handle_0
;
25749 if (flags
& NDR_IN
) {
25750 ZERO_STRUCT(r
->out
);
25752 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25753 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25754 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
25755 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
));
25757 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
25758 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
));
25759 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
25760 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
25761 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25762 if (r
->in
.bufsize
> 512) {
25763 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25767 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25769 r
->in
.buffer
= NULL
;
25771 if (r
->in
.buffer
) {
25772 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25773 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25774 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25775 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25776 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25779 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25780 ZERO_STRUCTP(r
->out
.handle
);
25781 if (r
->in
.buffer
) {
25782 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25785 if (flags
& NDR_OUT
) {
25786 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25787 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25789 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25790 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25791 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25793 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25795 return NDR_ERR_SUCCESS
;
25798 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25800 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
25802 if (flags
& NDR_SET_VALUES
) {
25803 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25805 if (flags
& NDR_IN
) {
25806 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
25808 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25809 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
25810 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
25811 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
25812 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25814 if (r
->in
.buffer
) {
25815 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
25820 if (flags
& NDR_OUT
) {
25821 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
25823 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25825 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25827 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25833 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
25835 if (flags
& NDR_IN
) {
25836 if (r
->in
.handle
== NULL
) {
25837 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25839 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25840 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
25841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25842 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25843 if (r
->in
.buffer
) {
25844 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25845 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25848 if (flags
& NDR_OUT
) {
25849 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25851 return NDR_ERR_SUCCESS
;
25854 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
25856 uint32_t _ptr_buffer
;
25857 TALLOC_CTX
*_mem_save_handle_0
;
25858 TALLOC_CTX
*_mem_save_buffer_0
;
25859 if (flags
& NDR_IN
) {
25860 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25861 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25863 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25864 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25865 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25867 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25869 if (r
->in
.bufsize
> 512) {
25870 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25872 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25874 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25876 r
->in
.buffer
= NULL
;
25878 if (r
->in
.buffer
) {
25879 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25880 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25881 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25882 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25883 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25886 if (r
->in
.buffer
) {
25887 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25890 if (flags
& NDR_OUT
) {
25891 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25893 return NDR_ERR_SUCCESS
;
25896 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
25898 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
25900 if (flags
& NDR_SET_VALUES
) {
25901 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25903 if (flags
& NDR_IN
) {
25904 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
25906 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25908 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25910 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
25911 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
25912 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25914 if (r
->in
.buffer
) {
25915 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
25920 if (flags
& NDR_OUT
) {
25921 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
25923 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25929 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
25931 if (flags
& NDR_IN
) {
25932 if (r
->in
.handle
== NULL
) {
25933 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25935 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25937 if (flags
& NDR_OUT
) {
25938 if (r
->out
.handle
== NULL
) {
25939 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25941 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25942 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25944 return NDR_ERR_SUCCESS
;
25947 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
25949 TALLOC_CTX
*_mem_save_handle_0
;
25950 if (flags
& NDR_IN
) {
25951 ZERO_STRUCT(r
->out
);
25953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25954 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25956 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25958 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25960 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25961 *r
->out
.handle
= *r
->in
.handle
;
25963 if (flags
& NDR_OUT
) {
25964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25965 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25967 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25968 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25969 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25971 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25973 return NDR_ERR_SUCCESS
;
25976 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
25978 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
25980 if (flags
& NDR_SET_VALUES
) {
25981 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25983 if (flags
& NDR_IN
) {
25984 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
25986 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25988 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25992 if (flags
& NDR_OUT
) {
25993 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
25995 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25997 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25999 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26005 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
26007 if (flags
& NDR_IN
) {
26009 if (flags
& NDR_OUT
) {
26010 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26012 return NDR_ERR_SUCCESS
;
26015 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
26017 if (flags
& NDR_IN
) {
26019 if (flags
& NDR_OUT
) {
26020 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26022 return NDR_ERR_SUCCESS
;
26025 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
26027 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
26029 if (flags
& NDR_SET_VALUES
) {
26030 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26032 if (flags
& NDR_IN
) {
26033 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
26037 if (flags
& NDR_OUT
) {
26038 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
26040 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26046 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26048 if (flags
& NDR_IN
) {
26050 if (flags
& NDR_OUT
) {
26051 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26053 return NDR_ERR_SUCCESS
;
26056 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26058 if (flags
& NDR_IN
) {
26060 if (flags
& NDR_OUT
) {
26061 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26063 return NDR_ERR_SUCCESS
;
26066 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26068 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
26070 if (flags
& NDR_SET_VALUES
) {
26071 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26073 if (flags
& NDR_IN
) {
26074 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26078 if (flags
& NDR_OUT
) {
26079 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26081 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26087 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
26089 if (flags
& NDR_IN
) {
26091 if (flags
& NDR_OUT
) {
26092 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26094 return NDR_ERR_SUCCESS
;
26097 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
26099 if (flags
& NDR_IN
) {
26101 if (flags
& NDR_OUT
) {
26102 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26104 return NDR_ERR_SUCCESS
;
26107 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
26109 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
26111 if (flags
& NDR_SET_VALUES
) {
26112 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26114 if (flags
& NDR_IN
) {
26115 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
26119 if (flags
& NDR_OUT
) {
26120 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
26122 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26128 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26130 if (flags
& NDR_IN
) {
26132 if (flags
& NDR_OUT
) {
26133 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26135 return NDR_ERR_SUCCESS
;
26138 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
26140 if (flags
& NDR_IN
) {
26142 if (flags
& NDR_OUT
) {
26143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26145 return NDR_ERR_SUCCESS
;
26148 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26150 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
26152 if (flags
& NDR_SET_VALUES
) {
26153 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26155 if (flags
& NDR_IN
) {
26156 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
26160 if (flags
& NDR_OUT
) {
26161 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
26163 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26169 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26171 if (flags
& NDR_IN
) {
26172 if (r
->in
.handle
== NULL
) {
26173 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26175 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26176 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
26178 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
26179 if (r
->in
.local_machine
) {
26180 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26181 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26182 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26183 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
));
26185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
26187 if (r
->in
.notify_options
) {
26188 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26191 if (flags
& NDR_OUT
) {
26192 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26194 return NDR_ERR_SUCCESS
;
26197 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26199 uint32_t _ptr_local_machine
;
26200 uint32_t _ptr_notify_options
;
26201 TALLOC_CTX
*_mem_save_handle_0
;
26202 TALLOC_CTX
*_mem_save_local_machine_0
;
26203 TALLOC_CTX
*_mem_save_notify_options_0
;
26204 if (flags
& NDR_IN
) {
26205 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26206 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26208 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26209 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26210 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26212 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
26214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
26215 if (_ptr_local_machine
) {
26216 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
26218 r
->in
.local_machine
= NULL
;
26220 if (r
->in
.local_machine
) {
26221 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26222 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
26223 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
26224 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
26225 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
26226 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
));
26228 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
26229 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
));
26230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
26232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
26234 if (_ptr_notify_options
) {
26235 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
26237 r
->in
.notify_options
= NULL
;
26239 if (r
->in
.notify_options
) {
26240 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
26242 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
26246 if (flags
& NDR_OUT
) {
26247 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26249 return NDR_ERR_SUCCESS
;
26252 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26254 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26256 if (flags
& NDR_SET_VALUES
) {
26257 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26259 if (flags
& NDR_IN
) {
26260 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26262 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26264 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26266 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26267 ndr_print_uint32(ndr
, "options", r
->in
.options
);
26268 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
26270 if (r
->in
.local_machine
) {
26271 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
26274 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26275 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
26277 if (r
->in
.notify_options
) {
26278 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
26283 if (flags
& NDR_OUT
) {
26284 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26286 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26292 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26294 if (flags
& NDR_IN
) {
26295 if (r
->in
.handle
== NULL
) {
26296 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26298 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
26300 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
26302 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26303 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26305 if (flags
& NDR_OUT
) {
26306 if (r
->out
.reply_result
== NULL
) {
26307 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26309 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
26310 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26312 return NDR_ERR_SUCCESS
;
26315 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
26317 TALLOC_CTX
*_mem_save_handle_0
;
26318 TALLOC_CTX
*_mem_save_reply_result_0
;
26319 if (flags
& NDR_IN
) {
26320 ZERO_STRUCT(r
->out
);
26322 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26323 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26325 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26326 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26327 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
26330 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
26332 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26333 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26334 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26335 ZERO_STRUCTP(r
->out
.reply_result
);
26337 if (flags
& NDR_OUT
) {
26338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26339 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26341 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26342 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
26343 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
26344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
26345 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26347 return NDR_ERR_SUCCESS
;
26350 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26352 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
26354 if (flags
& NDR_SET_VALUES
) {
26355 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26357 if (flags
& NDR_IN
) {
26358 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
26360 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26362 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26364 ndr_print_uint32(ndr
, "color", r
->in
.color
);
26365 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26366 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
26367 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
26368 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
26371 if (flags
& NDR_OUT
) {
26372 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
26374 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
26376 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
26378 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26384 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26386 if (flags
& NDR_IN
) {
26387 if (r
->in
.handle
== NULL
) {
26388 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26390 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
26392 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
26393 if (r
->in
.options
) {
26394 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26397 if (flags
& NDR_OUT
) {
26398 if (r
->out
.info
== NULL
) {
26399 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26401 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
26402 if (*r
->out
.info
) {
26403 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26407 return NDR_ERR_SUCCESS
;
26410 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26412 uint32_t _ptr_options
;
26413 uint32_t _ptr_info
;
26414 TALLOC_CTX
*_mem_save_handle_0
;
26415 TALLOC_CTX
*_mem_save_options_0
;
26416 TALLOC_CTX
*_mem_save_info_0
;
26417 TALLOC_CTX
*_mem_save_info_1
;
26418 if (flags
& NDR_IN
) {
26419 ZERO_STRUCT(r
->out
);
26421 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26422 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26424 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26425 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26426 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
26429 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
26430 if (_ptr_options
) {
26431 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
26433 r
->in
.options
= NULL
;
26435 if (r
->in
.options
) {
26436 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26437 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
26438 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
26441 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26442 ZERO_STRUCTP(r
->out
.info
);
26444 if (flags
& NDR_OUT
) {
26445 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26446 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26448 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26449 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
26450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26452 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
26454 *r
->out
.info
= NULL
;
26456 if (*r
->out
.info
) {
26457 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26458 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
26459 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
26462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
26463 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26465 return NDR_ERR_SUCCESS
;
26468 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26470 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
26472 if (flags
& NDR_SET_VALUES
) {
26473 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26475 if (flags
& NDR_IN
) {
26476 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26478 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26480 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26482 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
26483 ndr_print_ptr(ndr
, "options", r
->in
.options
);
26485 if (r
->in
.options
) {
26486 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
26491 if (flags
& NDR_OUT
) {
26492 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26494 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26496 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26498 if (*r
->out
.info
) {
26499 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
26503 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26509 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
26511 if (flags
& NDR_IN
) {
26513 if (flags
& NDR_OUT
) {
26514 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26516 return NDR_ERR_SUCCESS
;
26519 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
26521 if (flags
& NDR_IN
) {
26523 if (flags
& NDR_OUT
) {
26524 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26526 return NDR_ERR_SUCCESS
;
26529 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
26531 ndr_print_struct(ndr
, name
, "spoolss_44");
26533 if (flags
& NDR_SET_VALUES
) {
26534 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26536 if (flags
& NDR_IN
) {
26537 ndr_print_struct(ndr
, "in", "spoolss_44");
26541 if (flags
& NDR_OUT
) {
26542 ndr_print_struct(ndr
, "out", "spoolss_44");
26544 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26550 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26552 if (flags
& NDR_IN
) {
26553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
26554 if (r
->in
.printername
) {
26555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26556 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26558 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26560 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
26561 if (r
->in
.datatype
) {
26562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26565 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26567 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26568 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
26569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26570 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26571 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26573 if (flags
& NDR_OUT
) {
26574 if (r
->out
.handle
== NULL
) {
26575 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26577 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26578 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26580 return NDR_ERR_SUCCESS
;
26583 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
26585 uint32_t _ptr_printername
;
26586 uint32_t _ptr_datatype
;
26587 TALLOC_CTX
*_mem_save_printername_0
;
26588 TALLOC_CTX
*_mem_save_datatype_0
;
26589 TALLOC_CTX
*_mem_save_handle_0
;
26590 if (flags
& NDR_IN
) {
26591 ZERO_STRUCT(r
->out
);
26593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
26594 if (_ptr_printername
) {
26595 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
26597 r
->in
.printername
= NULL
;
26599 if (r
->in
.printername
) {
26600 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26601 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
26602 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
26603 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
26604 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
26605 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
));
26607 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
26608 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
26609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
26611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
26612 if (_ptr_datatype
) {
26613 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
26615 r
->in
.datatype
= NULL
;
26617 if (r
->in
.datatype
) {
26618 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26619 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
26620 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
26621 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
26622 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
26623 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
));
26625 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
26626 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
26627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
26629 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26630 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
26631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26632 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26633 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26634 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26635 ZERO_STRUCTP(r
->out
.handle
);
26637 if (flags
& NDR_OUT
) {
26638 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26639 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26641 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26642 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26643 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26645 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26647 return NDR_ERR_SUCCESS
;
26650 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26652 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
26654 if (flags
& NDR_SET_VALUES
) {
26655 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26657 if (flags
& NDR_IN
) {
26658 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
26660 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
26662 if (r
->in
.printername
) {
26663 ndr_print_string(ndr
, "printername", r
->in
.printername
);
26666 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
26668 if (r
->in
.datatype
) {
26669 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
26672 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
26673 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
26674 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26675 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
26676 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
26679 if (flags
& NDR_OUT
) {
26680 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
26682 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26684 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26686 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26692 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26694 if (flags
& NDR_IN
) {
26695 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26696 if (r
->in
.server
) {
26697 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26700 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26702 if (r
->in
.info_ctr
== NULL
) {
26703 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26705 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26706 if (r
->in
.devmode_ctr
== NULL
) {
26707 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26709 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26710 if (r
->in
.secdesc_ctr
== NULL
) {
26711 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26713 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26714 if (r
->in
.userlevel_ctr
== NULL
) {
26715 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26717 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26719 if (flags
& NDR_OUT
) {
26720 if (r
->out
.handle
== NULL
) {
26721 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26723 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26724 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26726 return NDR_ERR_SUCCESS
;
26729 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
26731 uint32_t _ptr_server
;
26732 TALLOC_CTX
*_mem_save_server_0
;
26733 TALLOC_CTX
*_mem_save_info_ctr_0
;
26734 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26735 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
26736 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
26737 TALLOC_CTX
*_mem_save_handle_0
;
26738 if (flags
& NDR_IN
) {
26739 ZERO_STRUCT(r
->out
);
26741 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26743 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26745 r
->in
.server
= NULL
;
26747 if (r
->in
.server
) {
26748 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26749 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26750 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26751 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26752 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
26753 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
));
26755 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
26756 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
26757 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26759 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26760 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
26762 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26764 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26766 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26767 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26769 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26770 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26771 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26774 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
26776 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26777 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26778 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26780 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26781 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
26783 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26784 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26785 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26787 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26788 ZERO_STRUCTP(r
->out
.handle
);
26790 if (flags
& NDR_OUT
) {
26791 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26792 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26794 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26795 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26796 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26797 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26800 return NDR_ERR_SUCCESS
;
26803 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26805 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
26807 if (flags
& NDR_SET_VALUES
) {
26808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26810 if (flags
& NDR_IN
) {
26811 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
26813 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26815 if (r
->in
.server
) {
26816 ndr_print_string(ndr
, "server", r
->in
.server
);
26819 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
26821 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
26823 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26825 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26827 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26829 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26831 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26833 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26837 if (flags
& NDR_OUT
) {
26838 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
26840 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26842 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26844 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26850 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
26852 if (flags
& NDR_IN
) {
26854 if (flags
& NDR_OUT
) {
26855 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26857 return NDR_ERR_SUCCESS
;
26860 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
26862 if (flags
& NDR_IN
) {
26864 if (flags
& NDR_OUT
) {
26865 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26867 return NDR_ERR_SUCCESS
;
26870 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
26872 ndr_print_struct(ndr
, name
, "spoolss_47");
26874 if (flags
& NDR_SET_VALUES
) {
26875 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26877 if (flags
& NDR_IN
) {
26878 ndr_print_struct(ndr
, "in", "spoolss_47");
26882 if (flags
& NDR_OUT
) {
26883 ndr_print_struct(ndr
, "out", "spoolss_47");
26885 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26891 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
26893 if (flags
& NDR_IN
) {
26894 if (r
->in
.handle
== NULL
) {
26895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26897 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
26899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
26900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
26902 if (flags
& NDR_OUT
) {
26903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
26904 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
26905 if (r
->out
.value_needed
== NULL
) {
26906 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
26909 if (r
->out
.type
== NULL
) {
26910 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26912 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
26914 uint32_t _flags_save_uint8
= ndr
->flags
;
26915 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
26916 if (r
->out
.data
== NULL
) {
26917 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26919 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
26920 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
26921 ndr
->flags
= _flags_save_uint8
;
26923 if (r
->out
.data_needed
== NULL
) {
26924 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
26927 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26929 return NDR_ERR_SUCCESS
;
26932 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
26934 TALLOC_CTX
*_mem_save_handle_0
;
26935 TALLOC_CTX
*_mem_save_value_needed_0
;
26936 TALLOC_CTX
*_mem_save_type_0
;
26937 TALLOC_CTX
*_mem_save_data_needed_0
;
26938 if (flags
& NDR_IN
) {
26939 ZERO_STRUCT(r
->out
);
26941 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26942 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26944 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26945 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26946 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
26949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
26950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
26951 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26952 ZERO_STRUCTP(r
->out
.value_needed
);
26953 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26954 ZERO_STRUCTP(r
->out
.type
);
26955 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
26956 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
26957 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26958 ZERO_STRUCTP(r
->out
.data_needed
);
26960 if (flags
& NDR_OUT
) {
26961 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
26962 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
));
26963 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26964 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26966 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26967 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
26968 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
26969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26970 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26971 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26973 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26974 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26975 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
26976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26978 uint32_t _flags_save_uint8
= ndr
->flags
;
26979 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
26980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
26981 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26982 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
26984 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
26985 ndr
->flags
= _flags_save_uint8
;
26987 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26988 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26990 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26991 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
26992 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
26993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26994 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26995 if (r
->out
.value_name
) {
26996 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
26999 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
27002 return NDR_ERR_SUCCESS
;
27005 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
27007 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
27009 if (flags
& NDR_SET_VALUES
) {
27010 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27012 if (flags
& NDR_IN
) {
27013 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
27015 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27017 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27019 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
27020 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
27021 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
27024 if (flags
& NDR_OUT
) {
27025 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
27027 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
27028 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
27030 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
27032 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27034 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27036 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27038 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
27040 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
27042 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
27044 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27050 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27052 if (flags
& NDR_IN
) {
27053 if (r
->in
.handle
== NULL
) {
27054 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27056 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27057 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27058 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27060 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
));
27062 if (flags
& NDR_OUT
) {
27063 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27065 return NDR_ERR_SUCCESS
;
27068 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
27070 TALLOC_CTX
*_mem_save_handle_0
;
27071 if (flags
& NDR_IN
) {
27072 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27073 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27075 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27076 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27077 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27079 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27080 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27081 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27082 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
));
27084 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27085 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
));
27087 if (flags
& NDR_OUT
) {
27088 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27090 return NDR_ERR_SUCCESS
;
27093 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27095 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
27097 if (flags
& NDR_SET_VALUES
) {
27098 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27100 if (flags
& NDR_IN
) {
27101 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
27103 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27105 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27107 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27110 if (flags
& NDR_OUT
) {
27111 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
27113 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27119 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
27121 if (flags
& NDR_IN
) {
27123 if (flags
& NDR_OUT
) {
27124 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27126 return NDR_ERR_SUCCESS
;
27129 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
27131 if (flags
& NDR_IN
) {
27133 if (flags
& NDR_OUT
) {
27134 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27136 return NDR_ERR_SUCCESS
;
27139 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
27141 ndr_print_struct(ndr
, name
, "spoolss_4a");
27143 if (flags
& NDR_SET_VALUES
) {
27144 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27146 if (flags
& NDR_IN
) {
27147 ndr_print_struct(ndr
, "in", "spoolss_4a");
27151 if (flags
& NDR_OUT
) {
27152 ndr_print_struct(ndr
, "out", "spoolss_4a");
27154 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27160 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
27162 if (flags
& NDR_IN
) {
27164 if (flags
& NDR_OUT
) {
27165 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27167 return NDR_ERR_SUCCESS
;
27170 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
27172 if (flags
& NDR_IN
) {
27174 if (flags
& NDR_OUT
) {
27175 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27177 return NDR_ERR_SUCCESS
;
27180 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
27182 ndr_print_struct(ndr
, name
, "spoolss_4b");
27184 if (flags
& NDR_SET_VALUES
) {
27185 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27187 if (flags
& NDR_IN
) {
27188 ndr_print_struct(ndr
, "in", "spoolss_4b");
27192 if (flags
& NDR_OUT
) {
27193 ndr_print_struct(ndr
, "out", "spoolss_4b");
27195 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27201 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
27203 if (flags
& NDR_IN
) {
27205 if (flags
& NDR_OUT
) {
27206 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27208 return NDR_ERR_SUCCESS
;
27211 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
27213 if (flags
& NDR_IN
) {
27215 if (flags
& NDR_OUT
) {
27216 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27218 return NDR_ERR_SUCCESS
;
27221 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
27223 ndr_print_struct(ndr
, name
, "spoolss_4c");
27225 if (flags
& NDR_SET_VALUES
) {
27226 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27228 if (flags
& NDR_IN
) {
27229 ndr_print_struct(ndr
, "in", "spoolss_4c");
27233 if (flags
& NDR_OUT
) {
27234 ndr_print_struct(ndr
, "out", "spoolss_4c");
27236 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27242 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27244 if (flags
& NDR_IN
) {
27245 if (r
->in
.handle
== NULL
) {
27246 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27248 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27249 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27250 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27252 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
));
27253 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27254 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27255 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27256 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
));
27257 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27258 if (r
->in
.buffer
== NULL
) {
27259 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27261 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
27262 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
27263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27265 if (flags
& NDR_OUT
) {
27266 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27268 return NDR_ERR_SUCCESS
;
27271 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
27273 TALLOC_CTX
*_mem_save_handle_0
;
27274 if (flags
& NDR_IN
) {
27275 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27276 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27278 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27279 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27280 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27282 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27283 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27284 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27285 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
));
27287 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27288 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
));
27289 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27290 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27291 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27292 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
));
27294 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27295 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
));
27296 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27297 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27298 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27299 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
27301 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
27302 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27303 if (r
->in
.buffer
) {
27304 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
27307 if (flags
& NDR_OUT
) {
27308 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27310 return NDR_ERR_SUCCESS
;
27313 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27315 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
27317 if (flags
& NDR_SET_VALUES
) {
27318 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27320 if (flags
& NDR_IN
) {
27321 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
27323 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27325 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27327 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27328 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27329 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27330 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27332 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
27334 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27337 if (flags
& NDR_OUT
) {
27338 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
27340 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27346 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27348 if (flags
& NDR_IN
) {
27349 if (r
->in
.handle
== NULL
) {
27350 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27352 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27353 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27354 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27356 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
));
27357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27358 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27359 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27360 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
));
27361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27363 if (flags
& NDR_OUT
) {
27364 if (r
->out
.type
== NULL
) {
27365 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27367 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27368 if (r
->out
.buffer
== NULL
) {
27369 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27371 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
27372 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
27373 if (r
->out
.needed
== NULL
) {
27374 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27377 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27379 return NDR_ERR_SUCCESS
;
27382 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
27384 TALLOC_CTX
*_mem_save_handle_0
;
27385 TALLOC_CTX
*_mem_save_type_0
;
27386 TALLOC_CTX
*_mem_save_needed_0
;
27387 if (flags
& NDR_IN
) {
27388 ZERO_STRUCT(r
->out
);
27390 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27391 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27393 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27394 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27395 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27397 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27398 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27399 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27400 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
));
27402 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27403 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
));
27404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27405 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27406 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27407 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
));
27409 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27410 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
));
27411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27412 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27413 ZERO_STRUCTP(r
->out
.type
);
27414 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
27415 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
27416 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27417 ZERO_STRUCTP(r
->out
.needed
);
27419 if (flags
& NDR_OUT
) {
27420 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27421 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27423 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27424 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27425 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
27428 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27429 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
27431 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
27432 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27433 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27435 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27436 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27439 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27440 if (r
->out
.buffer
) {
27441 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
27444 return NDR_ERR_SUCCESS
;
27447 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27449 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
27451 if (flags
& NDR_SET_VALUES
) {
27452 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27454 if (flags
& NDR_IN
) {
27455 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
27457 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27459 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27461 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27462 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27463 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27466 if (flags
& NDR_OUT
) {
27467 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
27469 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27471 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27473 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
27475 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
27477 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27479 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27481 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27487 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
27489 if (flags
& NDR_IN
) {
27490 if (r
->in
.handle
== NULL
) {
27491 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27493 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27497 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
));
27498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27500 if (flags
& NDR_OUT
) {
27501 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
27502 if (r
->out
.needed
== NULL
) {
27503 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27506 if (r
->out
.count
== NULL
) {
27507 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
27510 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27512 return NDR_ERR_SUCCESS
;
27515 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
27517 TALLOC_CTX
*_mem_save_handle_0
;
27518 TALLOC_CTX
*_mem_save_needed_0
;
27519 TALLOC_CTX
*_mem_save_count_0
;
27520 if (flags
& NDR_IN
) {
27521 ZERO_STRUCT(r
->out
);
27523 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27524 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27526 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27527 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27528 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27531 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27532 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27533 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
));
27535 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27536 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
));
27537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27538 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27539 ZERO_STRUCTP(r
->out
.needed
);
27540 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27541 ZERO_STRUCTP(r
->out
.count
);
27543 if (flags
& NDR_OUT
) {
27544 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
27545 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27546 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27548 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27549 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27550 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27553 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27555 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27556 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
27557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
27558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
27559 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27561 return NDR_ERR_SUCCESS
;
27564 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
27566 uint32_t cntr_info_0
;
27567 if (flags
& NDR_IN
) {
27568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
27570 if (flags
& NDR_OUT
) {
27571 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27572 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27574 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27575 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27578 return NDR_ERR_SUCCESS
;
27581 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
27583 uint32_t cntr_info_0
;
27584 TALLOC_CTX
*_mem_save_info_0
;
27585 if (flags
& NDR_IN
) {
27586 ZERO_STRUCT(r
->out
);
27588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
27590 if (flags
& NDR_OUT
) {
27591 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
27592 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27593 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
27594 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27595 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27597 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27598 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27600 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
27602 return NDR_ERR_SUCCESS
;
27605 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
27607 uint32_t cntr_info_2
;
27608 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
27610 if (flags
& NDR_SET_VALUES
) {
27611 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27613 if (flags
& NDR_IN
) {
27614 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
27616 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27618 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27620 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27621 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27624 if (flags
& NDR_OUT
) {
27625 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
27627 ndr_print_ptr(ndr
, "count", r
->out
.count
);
27629 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
27631 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27633 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27635 if (*r
->out
.info
) {
27636 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
27638 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
27640 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
27641 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
27649 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27651 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27653 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27659 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27661 if (flags
& NDR_IN
) {
27662 if (r
->in
.handle
== NULL
) {
27663 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27665 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27666 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27667 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27668 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27669 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
));
27670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27672 if (flags
& NDR_OUT
) {
27674 uint32_t _flags_save_string_array
= ndr
->flags
;
27675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
27676 if (r
->out
.key_buffer
== NULL
) {
27677 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27679 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.key_buffer
));
27680 if (*r
->out
.key_buffer
) {
27682 struct ndr_push
*_ndr_key_buffer
;
27683 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, r
->in
.offered
));
27684 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer
, NDR_SCALARS
, *r
->out
.key_buffer
));
27685 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, r
->in
.offered
));
27688 ndr
->flags
= _flags_save_string_array
;
27690 if (r
->out
.needed
== NULL
) {
27691 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27694 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27696 return NDR_ERR_SUCCESS
;
27699 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
27701 uint32_t _ptr_key_buffer
;
27702 TALLOC_CTX
*_mem_save_handle_0
;
27703 TALLOC_CTX
*_mem_save_key_buffer_0
;
27704 TALLOC_CTX
*_mem_save_key_buffer_1
;
27705 TALLOC_CTX
*_mem_save_needed_0
;
27706 if (flags
& NDR_IN
) {
27707 ZERO_STRUCT(r
->out
);
27709 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27710 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27712 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27713 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27714 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27717 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27718 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27719 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
));
27721 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27722 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
));
27723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27724 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27725 ZERO_STRUCTP(r
->out
.key_buffer
);
27726 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27727 ZERO_STRUCTP(r
->out
.needed
);
27729 if (flags
& NDR_OUT
) {
27731 uint32_t _flags_save_string_array
= ndr
->flags
;
27732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
27733 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27734 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27736 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27737 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
27738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_key_buffer
));
27739 if (_ptr_key_buffer
) {
27740 NDR_PULL_ALLOC(ndr
, *r
->out
.key_buffer
);
27742 *r
->out
.key_buffer
= NULL
;
27744 if (*r
->out
.key_buffer
) {
27745 _mem_save_key_buffer_1
= NDR_PULL_GET_MEM_CTX(ndr
);
27746 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.key_buffer
, 0);
27748 struct ndr_pull
*_ndr_key_buffer
;
27749 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, r
->in
.offered
));
27750 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer
, NDR_SCALARS
, r
->out
.key_buffer
));
27751 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, r
->in
.offered
));
27753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_1
, 0);
27755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
27756 ndr
->flags
= _flags_save_string_array
;
27758 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27759 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27761 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27762 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27765 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27767 return NDR_ERR_SUCCESS
;
27770 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27772 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
27774 if (flags
& NDR_SET_VALUES
) {
27775 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27777 if (flags
& NDR_IN
) {
27778 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
27780 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27782 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27784 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27785 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27788 if (flags
& NDR_OUT
) {
27789 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
27791 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
27793 ndr_print_ptr(ndr
, "key_buffer", *r
->out
.key_buffer
);
27795 if (*r
->out
.key_buffer
) {
27796 ndr_print_string_array(ndr
, "key_buffer", *r
->out
.key_buffer
);
27800 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27802 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27804 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27810 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
27812 if (flags
& NDR_IN
) {
27813 if (r
->in
.handle
== NULL
) {
27814 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27816 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27817 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27819 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27820 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
));
27821 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27822 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27823 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27824 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
));
27826 if (flags
& NDR_OUT
) {
27827 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27829 return NDR_ERR_SUCCESS
;
27832 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
27834 TALLOC_CTX
*_mem_save_handle_0
;
27835 if (flags
& NDR_IN
) {
27836 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27837 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27839 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27840 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27841 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27843 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27844 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27845 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27846 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
));
27848 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27849 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
));
27850 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27851 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27852 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27853 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
));
27855 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27856 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
));
27858 if (flags
& NDR_OUT
) {
27859 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27861 return NDR_ERR_SUCCESS
;
27864 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
27866 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
27868 if (flags
& NDR_SET_VALUES
) {
27869 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27871 if (flags
& NDR_IN
) {
27872 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
27874 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27876 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27878 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27879 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27882 if (flags
& NDR_OUT
) {
27883 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
27885 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27891 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
27893 if (flags
& NDR_IN
) {
27894 if (r
->in
.handle
== NULL
) {
27895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27897 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27898 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27899 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27900 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27901 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
));
27903 if (flags
& NDR_OUT
) {
27904 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27906 return NDR_ERR_SUCCESS
;
27909 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
27911 TALLOC_CTX
*_mem_save_handle_0
;
27912 if (flags
& NDR_IN
) {
27913 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27914 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27916 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27917 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27918 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27920 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27921 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27922 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27923 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
));
27925 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27926 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
));
27928 if (flags
& NDR_OUT
) {
27929 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27931 return NDR_ERR_SUCCESS
;
27934 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
27936 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
27938 if (flags
& NDR_SET_VALUES
) {
27939 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27941 if (flags
& NDR_IN
) {
27942 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
27944 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27946 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27948 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27951 if (flags
& NDR_OUT
) {
27952 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
27954 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27960 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
27962 if (flags
& NDR_IN
) {
27964 if (flags
& NDR_OUT
) {
27965 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27967 return NDR_ERR_SUCCESS
;
27970 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
27972 if (flags
& NDR_IN
) {
27974 if (flags
& NDR_OUT
) {
27975 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27977 return NDR_ERR_SUCCESS
;
27980 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
27982 ndr_print_struct(ndr
, name
, "spoolss_53");
27984 if (flags
& NDR_SET_VALUES
) {
27985 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27987 if (flags
& NDR_IN
) {
27988 ndr_print_struct(ndr
, "in", "spoolss_53");
27992 if (flags
& NDR_OUT
) {
27993 ndr_print_struct(ndr
, "out", "spoolss_53");
27995 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28001 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28003 if (flags
& NDR_IN
) {
28004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
28005 if (r
->in
.server
) {
28006 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28008 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28009 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28016 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28018 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28019 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
28020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
28022 if (flags
& NDR_OUT
) {
28023 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28025 return NDR_ERR_SUCCESS
;
28028 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
28030 uint32_t _ptr_server
;
28031 TALLOC_CTX
*_mem_save_server_0
;
28032 if (flags
& NDR_IN
) {
28033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28035 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28037 r
->in
.server
= NULL
;
28039 if (r
->in
.server
) {
28040 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28041 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28042 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28043 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28044 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
28045 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
));
28047 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
28048 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
28049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28051 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
28052 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
28053 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
28054 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
));
28056 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
28057 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
28058 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
28059 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
28060 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
28061 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
));
28063 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
28064 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
28065 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
28066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
28068 if (flags
& NDR_OUT
) {
28069 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28071 return NDR_ERR_SUCCESS
;
28074 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28076 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
28078 if (flags
& NDR_SET_VALUES
) {
28079 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28081 if (flags
& NDR_IN
) {
28082 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
28084 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28086 if (r
->in
.server
) {
28087 ndr_print_string(ndr
, "server", r
->in
.server
);
28090 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
28091 ndr_print_string(ndr
, "driver", r
->in
.driver
);
28092 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
28093 ndr_print_uint32(ndr
, "version", r
->in
.version
);
28096 if (flags
& NDR_OUT
) {
28097 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
28099 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28105 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
28107 if (flags
& NDR_IN
) {
28109 if (flags
& NDR_OUT
) {
28110 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28112 return NDR_ERR_SUCCESS
;
28115 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
28117 if (flags
& NDR_IN
) {
28119 if (flags
& NDR_OUT
) {
28120 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28122 return NDR_ERR_SUCCESS
;
28125 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
28127 ndr_print_struct(ndr
, name
, "spoolss_55");
28129 if (flags
& NDR_SET_VALUES
) {
28130 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28132 if (flags
& NDR_IN
) {
28133 ndr_print_struct(ndr
, "in", "spoolss_55");
28137 if (flags
& NDR_OUT
) {
28138 ndr_print_struct(ndr
, "out", "spoolss_55");
28140 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28146 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
28148 if (flags
& NDR_IN
) {
28150 if (flags
& NDR_OUT
) {
28151 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28153 return NDR_ERR_SUCCESS
;
28156 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
28158 if (flags
& NDR_IN
) {
28160 if (flags
& NDR_OUT
) {
28161 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28163 return NDR_ERR_SUCCESS
;
28166 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
28168 ndr_print_struct(ndr
, name
, "spoolss_56");
28170 if (flags
& NDR_SET_VALUES
) {
28171 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28173 if (flags
& NDR_IN
) {
28174 ndr_print_struct(ndr
, "in", "spoolss_56");
28178 if (flags
& NDR_OUT
) {
28179 ndr_print_struct(ndr
, "out", "spoolss_56");
28181 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28187 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
28189 if (flags
& NDR_IN
) {
28191 if (flags
& NDR_OUT
) {
28192 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28194 return NDR_ERR_SUCCESS
;
28197 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
28199 if (flags
& NDR_IN
) {
28201 if (flags
& NDR_OUT
) {
28202 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28204 return NDR_ERR_SUCCESS
;
28207 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
28209 ndr_print_struct(ndr
, name
, "spoolss_57");
28211 if (flags
& NDR_SET_VALUES
) {
28212 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28214 if (flags
& NDR_IN
) {
28215 ndr_print_struct(ndr
, "in", "spoolss_57");
28219 if (flags
& NDR_OUT
) {
28220 ndr_print_struct(ndr
, "out", "spoolss_57");
28222 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28228 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
28230 if (flags
& NDR_IN
) {
28231 if (r
->in
.handle
== NULL
) {
28232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28234 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28236 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28237 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28238 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
));
28239 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
28240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
28241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28242 if (r
->in
.status_code
== NULL
) {
28243 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
28247 if (flags
& NDR_OUT
) {
28248 if (r
->out
.out_data
== NULL
) {
28249 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28252 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
28253 if (r
->out
.needed
== NULL
) {
28254 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28257 if (r
->out
.status_code
== NULL
) {
28258 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
28261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28263 return NDR_ERR_SUCCESS
;
28266 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
28268 TALLOC_CTX
*_mem_save_handle_0
;
28269 TALLOC_CTX
*_mem_save_needed_0
;
28270 TALLOC_CTX
*_mem_save_status_code_0
;
28271 if (flags
& NDR_IN
) {
28272 ZERO_STRUCT(r
->out
);
28274 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28275 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28277 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28278 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28279 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28280 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
28282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
28283 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
28284 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
));
28286 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
28287 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
));
28288 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
28289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
28290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
28291 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28292 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
28294 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28295 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
28297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28298 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
28299 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
28300 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28301 ZERO_STRUCTP(r
->out
.needed
);
28302 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28303 *r
->out
.status_code
= *r
->in
.status_code
;
28305 if (flags
& NDR_OUT
) {
28306 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
28307 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28308 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
28310 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
28311 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28312 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28314 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28315 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28318 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28319 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28321 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28322 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28323 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
28324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28325 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28326 if (r
->out
.out_data
) {
28327 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
28330 return NDR_ERR_SUCCESS
;
28333 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
28335 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
28337 if (flags
& NDR_SET_VALUES
) {
28338 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28340 if (flags
& NDR_IN
) {
28341 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
28343 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28345 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28347 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
28348 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
28349 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
28350 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
28351 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
28353 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
28357 if (flags
& NDR_OUT
) {
28358 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
28360 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
28362 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
28364 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28366 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28368 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
28370 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
28372 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28378 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28380 if (flags
& NDR_IN
) {
28381 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
28382 if (r
->in
.servername
) {
28383 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28384 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28385 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28386 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28388 if (r
->in
.info_ctr
== NULL
) {
28389 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28391 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28392 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
28394 if (flags
& NDR_OUT
) {
28395 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28397 return NDR_ERR_SUCCESS
;
28400 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
28402 uint32_t _ptr_servername
;
28403 TALLOC_CTX
*_mem_save_servername_0
;
28404 TALLOC_CTX
*_mem_save_info_ctr_0
;
28405 if (flags
& NDR_IN
) {
28406 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
28407 if (_ptr_servername
) {
28408 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
28410 r
->in
.servername
= NULL
;
28412 if (r
->in
.servername
) {
28413 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28414 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
28415 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
28416 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
28417 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
28418 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
));
28420 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
28421 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
28422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
28424 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28425 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28427 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28428 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28429 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28431 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
28433 if (flags
& NDR_OUT
) {
28434 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28436 return NDR_ERR_SUCCESS
;
28439 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28441 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
28443 if (flags
& NDR_SET_VALUES
) {
28444 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28446 if (flags
& NDR_IN
) {
28447 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
28449 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
28451 if (r
->in
.servername
) {
28452 ndr_print_string(ndr
, "servername", r
->in
.servername
);
28455 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28457 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28459 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
28462 if (flags
& NDR_OUT
) {
28463 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
28465 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28471 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
28473 if (flags
& NDR_IN
) {
28475 if (flags
& NDR_OUT
) {
28476 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28478 return NDR_ERR_SUCCESS
;
28481 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
28483 if (flags
& NDR_IN
) {
28485 if (flags
& NDR_OUT
) {
28486 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28488 return NDR_ERR_SUCCESS
;
28491 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
28493 ndr_print_struct(ndr
, name
, "spoolss_5a");
28495 if (flags
& NDR_SET_VALUES
) {
28496 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28498 if (flags
& NDR_IN
) {
28499 ndr_print_struct(ndr
, "in", "spoolss_5a");
28503 if (flags
& NDR_OUT
) {
28504 ndr_print_struct(ndr
, "out", "spoolss_5a");
28506 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28512 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
28514 if (flags
& NDR_IN
) {
28516 if (flags
& NDR_OUT
) {
28517 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28519 return NDR_ERR_SUCCESS
;
28522 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
28524 if (flags
& NDR_IN
) {
28526 if (flags
& NDR_OUT
) {
28527 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28529 return NDR_ERR_SUCCESS
;
28532 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
28534 ndr_print_struct(ndr
, name
, "spoolss_5b");
28536 if (flags
& NDR_SET_VALUES
) {
28537 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28539 if (flags
& NDR_IN
) {
28540 ndr_print_struct(ndr
, "in", "spoolss_5b");
28544 if (flags
& NDR_OUT
) {
28545 ndr_print_struct(ndr
, "out", "spoolss_5b");
28547 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28553 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
28555 if (flags
& NDR_IN
) {
28557 if (flags
& NDR_OUT
) {
28558 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28560 return NDR_ERR_SUCCESS
;
28563 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
28565 if (flags
& NDR_IN
) {
28567 if (flags
& NDR_OUT
) {
28568 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28570 return NDR_ERR_SUCCESS
;
28573 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
28575 ndr_print_struct(ndr
, name
, "spoolss_5c");
28577 if (flags
& NDR_SET_VALUES
) {
28578 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28580 if (flags
& NDR_IN
) {
28581 ndr_print_struct(ndr
, "in", "spoolss_5c");
28585 if (flags
& NDR_OUT
) {
28586 ndr_print_struct(ndr
, "out", "spoolss_5c");
28588 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28594 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
28596 if (flags
& NDR_IN
) {
28598 if (flags
& NDR_OUT
) {
28599 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28601 return NDR_ERR_SUCCESS
;
28604 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
28606 if (flags
& NDR_IN
) {
28608 if (flags
& NDR_OUT
) {
28609 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28611 return NDR_ERR_SUCCESS
;
28614 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
28616 ndr_print_struct(ndr
, name
, "spoolss_5d");
28618 if (flags
& NDR_SET_VALUES
) {
28619 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28621 if (flags
& NDR_IN
) {
28622 ndr_print_struct(ndr
, "in", "spoolss_5d");
28626 if (flags
& NDR_OUT
) {
28627 ndr_print_struct(ndr
, "out", "spoolss_5d");
28629 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28635 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
28637 if (flags
& NDR_IN
) {
28639 if (flags
& NDR_OUT
) {
28640 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28642 return NDR_ERR_SUCCESS
;
28645 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
28647 if (flags
& NDR_IN
) {
28649 if (flags
& NDR_OUT
) {
28650 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28652 return NDR_ERR_SUCCESS
;
28655 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
28657 ndr_print_struct(ndr
, name
, "spoolss_5e");
28659 if (flags
& NDR_SET_VALUES
) {
28660 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28662 if (flags
& NDR_IN
) {
28663 ndr_print_struct(ndr
, "in", "spoolss_5e");
28667 if (flags
& NDR_OUT
) {
28668 ndr_print_struct(ndr
, "out", "spoolss_5e");
28670 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28676 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
28678 if (flags
& NDR_IN
) {
28680 if (flags
& NDR_OUT
) {
28681 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28683 return NDR_ERR_SUCCESS
;
28686 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
28688 if (flags
& NDR_IN
) {
28690 if (flags
& NDR_OUT
) {
28691 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28693 return NDR_ERR_SUCCESS
;
28696 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
28698 ndr_print_struct(ndr
, name
, "spoolss_5f");
28700 if (flags
& NDR_SET_VALUES
) {
28701 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28703 if (flags
& NDR_IN
) {
28704 ndr_print_struct(ndr
, "in", "spoolss_5f");
28708 if (flags
& NDR_OUT
) {
28709 ndr_print_struct(ndr
, "out", "spoolss_5f");
28711 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28717 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
28719 if (flags
& NDR_IN
) {
28721 if (flags
& NDR_OUT
) {
28722 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28724 return NDR_ERR_SUCCESS
;
28727 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
28729 if (flags
& NDR_IN
) {
28731 if (flags
& NDR_OUT
) {
28732 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28734 return NDR_ERR_SUCCESS
;
28737 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
28739 ndr_print_struct(ndr
, name
, "spoolss_60");
28741 if (flags
& NDR_SET_VALUES
) {
28742 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28744 if (flags
& NDR_IN
) {
28745 ndr_print_struct(ndr
, "in", "spoolss_60");
28749 if (flags
& NDR_OUT
) {
28750 ndr_print_struct(ndr
, "out", "spoolss_60");
28752 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28758 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
28760 if (flags
& NDR_IN
) {
28762 if (flags
& NDR_OUT
) {
28763 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28765 return NDR_ERR_SUCCESS
;
28768 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
28770 if (flags
& NDR_IN
) {
28772 if (flags
& NDR_OUT
) {
28773 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28775 return NDR_ERR_SUCCESS
;
28778 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
28780 ndr_print_struct(ndr
, name
, "spoolss_61");
28782 if (flags
& NDR_SET_VALUES
) {
28783 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28785 if (flags
& NDR_IN
) {
28786 ndr_print_struct(ndr
, "in", "spoolss_61");
28790 if (flags
& NDR_OUT
) {
28791 ndr_print_struct(ndr
, "out", "spoolss_61");
28793 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28799 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
28801 if (flags
& NDR_IN
) {
28803 if (flags
& NDR_OUT
) {
28804 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28806 return NDR_ERR_SUCCESS
;
28809 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
28811 if (flags
& NDR_IN
) {
28813 if (flags
& NDR_OUT
) {
28814 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28816 return NDR_ERR_SUCCESS
;
28819 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
28821 ndr_print_struct(ndr
, name
, "spoolss_62");
28823 if (flags
& NDR_SET_VALUES
) {
28824 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28826 if (flags
& NDR_IN
) {
28827 ndr_print_struct(ndr
, "in", "spoolss_62");
28831 if (flags
& NDR_OUT
) {
28832 ndr_print_struct(ndr
, "out", "spoolss_62");
28834 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28840 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
28842 if (flags
& NDR_IN
) {
28844 if (flags
& NDR_OUT
) {
28845 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28847 return NDR_ERR_SUCCESS
;
28850 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
28852 if (flags
& NDR_IN
) {
28854 if (flags
& NDR_OUT
) {
28855 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28857 return NDR_ERR_SUCCESS
;
28860 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
28862 ndr_print_struct(ndr
, name
, "spoolss_63");
28864 if (flags
& NDR_SET_VALUES
) {
28865 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28867 if (flags
& NDR_IN
) {
28868 ndr_print_struct(ndr
, "in", "spoolss_63");
28872 if (flags
& NDR_OUT
) {
28873 ndr_print_struct(ndr
, "out", "spoolss_63");
28875 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28881 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
28883 if (flags
& NDR_IN
) {
28885 if (flags
& NDR_OUT
) {
28886 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28888 return NDR_ERR_SUCCESS
;
28891 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
28893 if (flags
& NDR_IN
) {
28895 if (flags
& NDR_OUT
) {
28896 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28898 return NDR_ERR_SUCCESS
;
28901 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
28903 ndr_print_struct(ndr
, name
, "spoolss_64");
28905 if (flags
& NDR_SET_VALUES
) {
28906 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28908 if (flags
& NDR_IN
) {
28909 ndr_print_struct(ndr
, "in", "spoolss_64");
28913 if (flags
& NDR_OUT
) {
28914 ndr_print_struct(ndr
, "out", "spoolss_64");
28916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28922 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
28924 if (flags
& NDR_IN
) {
28926 if (flags
& NDR_OUT
) {
28927 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28929 return NDR_ERR_SUCCESS
;
28932 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
28934 if (flags
& NDR_IN
) {
28936 if (flags
& NDR_OUT
) {
28937 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28939 return NDR_ERR_SUCCESS
;
28942 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
28944 ndr_print_struct(ndr
, name
, "spoolss_65");
28946 if (flags
& NDR_SET_VALUES
) {
28947 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28949 if (flags
& NDR_IN
) {
28950 ndr_print_struct(ndr
, "in", "spoolss_65");
28954 if (flags
& NDR_OUT
) {
28955 ndr_print_struct(ndr
, "out", "spoolss_65");
28957 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28963 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
28965 uint32_t cntr_core_printer_drivers_1
;
28966 if (flags
& NDR_IN
) {
28967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
28968 if (r
->in
.servername
) {
28969 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28970 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28972 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28974 if (r
->in
.architecture
== NULL
) {
28975 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28977 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28978 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28980 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
28982 if (r
->in
.core_driver_dependencies
== NULL
) {
28983 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
28986 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
28987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
28989 if (flags
& NDR_OUT
) {
28990 if (r
->out
.core_printer_drivers
== NULL
) {
28991 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28993 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
28994 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
28995 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
28997 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28999 return NDR_ERR_SUCCESS
;
29002 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
29004 uint32_t _ptr_servername
;
29005 uint32_t cntr_core_printer_drivers_1
;
29006 TALLOC_CTX
*_mem_save_servername_0
;
29007 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
29008 if (flags
& NDR_IN
) {
29009 ZERO_STRUCT(r
->out
);
29011 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29012 if (_ptr_servername
) {
29013 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29015 r
->in
.servername
= NULL
;
29017 if (r
->in
.servername
) {
29018 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29019 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29020 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29021 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29022 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29023 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
));
29025 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29026 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29029 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29030 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29031 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29032 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
));
29034 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29035 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29036 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
29037 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
29038 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
));
29039 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
29040 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
29041 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
29042 if (r
->in
.core_driver_dependencies
) {
29043 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
29046 if (flags
& NDR_OUT
) {
29047 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
29048 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29049 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
));
29051 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
29052 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
29053 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
29054 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
29056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
29057 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29058 if (r
->out
.core_printer_drivers
) {
29059 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
29062 return NDR_ERR_SUCCESS
;
29065 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
29067 uint32_t cntr_core_printer_drivers_1
;
29068 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
29070 if (flags
& NDR_SET_VALUES
) {
29071 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29073 if (flags
& NDR_IN
) {
29074 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
29076 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29078 if (r
->in
.servername
) {
29079 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29082 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29084 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29086 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
29087 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29089 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29091 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
29094 if (flags
& NDR_OUT
) {
29095 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
29097 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
29099 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
29101 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
29103 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
29104 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
29110 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29116 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
29118 if (flags
& NDR_IN
) {
29120 if (flags
& NDR_OUT
) {
29121 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29123 return NDR_ERR_SUCCESS
;
29126 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
29128 if (flags
& NDR_IN
) {
29130 if (flags
& NDR_OUT
) {
29131 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29133 return NDR_ERR_SUCCESS
;
29136 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
29138 ndr_print_struct(ndr
, name
, "spoolss_67");
29140 if (flags
& NDR_SET_VALUES
) {
29141 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29143 if (flags
& NDR_IN
) {
29144 ndr_print_struct(ndr
, "in", "spoolss_67");
29148 if (flags
& NDR_OUT
) {
29149 ndr_print_struct(ndr
, "out", "spoolss_67");
29151 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29157 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29159 if (flags
& NDR_IN
) {
29160 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29161 if (r
->in
.servername
) {
29162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, 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
.servername
, CH_UTF16
)));
29165 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29167 if (r
->in
.architecture
== NULL
) {
29168 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29170 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29171 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29173 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29174 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
29175 if (r
->in
.language
) {
29176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29178 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29179 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29181 if (r
->in
.package_id
== NULL
) {
29182 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29184 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29186 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29187 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
));
29188 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
29189 if (r
->in
.driver_package_cab
) {
29190 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29191 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29195 if (flags
& NDR_OUT
) {
29196 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
29197 if (r
->out
.driver_package_cab
) {
29198 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29199 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29201 if (r
->out
.required
== NULL
) {
29202 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
29205 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29207 return NDR_ERR_SUCCESS
;
29210 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
29212 uint32_t _ptr_servername
;
29213 uint32_t _ptr_language
;
29214 uint32_t _ptr_driver_package_cab
;
29215 TALLOC_CTX
*_mem_save_servername_0
;
29216 TALLOC_CTX
*_mem_save_language_0
;
29217 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
29218 TALLOC_CTX
*_mem_save_required_0
;
29219 if (flags
& NDR_IN
) {
29220 ZERO_STRUCT(r
->out
);
29222 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29223 if (_ptr_servername
) {
29224 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29226 r
->in
.servername
= NULL
;
29228 if (r
->in
.servername
) {
29229 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29230 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29231 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29232 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29233 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29234 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
));
29236 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29237 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29240 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29241 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29242 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29243 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
));
29245 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29246 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
29248 if (_ptr_language
) {
29249 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
29251 r
->in
.language
= NULL
;
29253 if (r
->in
.language
) {
29254 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29255 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
29256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
29257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
29258 if (ndr_get_array_length(ndr
, &r
->in
.language
) > ndr_get_array_size(ndr
, &r
->in
.language
)) {
29259 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
));
29261 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t)));
29262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t), CH_UTF16
));
29263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
29265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
29266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
29267 if (ndr_get_array_length(ndr
, &r
->in
.package_id
) > ndr_get_array_size(ndr
, &r
->in
.package_id
)) {
29268 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
));
29270 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t)));
29271 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
));
29272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29273 if (_ptr_driver_package_cab
) {
29274 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
29276 r
->in
.driver_package_cab
= NULL
;
29278 if (r
->in
.driver_package_cab
) {
29279 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29280 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
29281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
29282 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
));
29283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
29286 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29287 ZERO_STRUCTP(r
->out
.required
);
29288 if (r
->in
.driver_package_cab
) {
29289 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29292 if (flags
& NDR_OUT
) {
29293 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29294 if (_ptr_driver_package_cab
) {
29295 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
29297 r
->out
.driver_package_cab
= NULL
;
29299 if (r
->out
.driver_package_cab
) {
29300 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29301 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
29302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
29303 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
));
29304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29307 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29309 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29310 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
29311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
29312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
29313 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29314 if (r
->out
.driver_package_cab
) {
29315 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29318 return NDR_ERR_SUCCESS
;
29321 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29323 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
29325 if (flags
& NDR_SET_VALUES
) {
29326 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29328 if (flags
& NDR_IN
) {
29329 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
29331 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29333 if (r
->in
.servername
) {
29334 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29337 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29339 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29341 ndr_print_ptr(ndr
, "language", r
->in
.language
);
29343 if (r
->in
.language
) {
29344 ndr_print_string(ndr
, "language", r
->in
.language
);
29347 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
29349 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
29351 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29353 if (r
->in
.driver_package_cab
) {
29354 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29357 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
29360 if (flags
& NDR_OUT
) {
29361 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
29363 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29365 if (r
->out
.driver_package_cab
) {
29366 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29369 ndr_print_ptr(ndr
, "required", r
->out
.required
);
29371 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
29373 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29379 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
29381 if (flags
& NDR_IN
) {
29383 if (flags
& NDR_OUT
) {
29384 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29386 return NDR_ERR_SUCCESS
;
29389 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
29391 if (flags
& NDR_IN
) {
29393 if (flags
& NDR_OUT
) {
29394 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29396 return NDR_ERR_SUCCESS
;
29399 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
29401 ndr_print_struct(ndr
, name
, "spoolss_69");
29403 if (flags
& NDR_SET_VALUES
) {
29404 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29406 if (flags
& NDR_IN
) {
29407 ndr_print_struct(ndr
, "in", "spoolss_69");
29411 if (flags
& NDR_OUT
) {
29412 ndr_print_struct(ndr
, "out", "spoolss_69");
29414 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29420 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
29422 if (flags
& NDR_IN
) {
29424 if (flags
& NDR_OUT
) {
29425 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29427 return NDR_ERR_SUCCESS
;
29430 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
29432 if (flags
& NDR_IN
) {
29434 if (flags
& NDR_OUT
) {
29435 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29437 return NDR_ERR_SUCCESS
;
29440 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
29442 ndr_print_struct(ndr
, name
, "spoolss_6a");
29444 if (flags
& NDR_SET_VALUES
) {
29445 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29447 if (flags
& NDR_IN
) {
29448 ndr_print_struct(ndr
, "in", "spoolss_6a");
29452 if (flags
& NDR_OUT
) {
29453 ndr_print_struct(ndr
, "out", "spoolss_6a");
29455 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29461 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
29463 if (flags
& NDR_IN
) {
29465 if (flags
& NDR_OUT
) {
29466 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29468 return NDR_ERR_SUCCESS
;
29471 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
29473 if (flags
& NDR_IN
) {
29475 if (flags
& NDR_OUT
) {
29476 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29478 return NDR_ERR_SUCCESS
;
29481 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
29483 ndr_print_struct(ndr
, name
, "spoolss_6b");
29485 if (flags
& NDR_SET_VALUES
) {
29486 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29488 if (flags
& NDR_IN
) {
29489 ndr_print_struct(ndr
, "in", "spoolss_6b");
29493 if (flags
& NDR_OUT
) {
29494 ndr_print_struct(ndr
, "out", "spoolss_6b");
29496 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29502 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
29504 if (flags
& NDR_IN
) {
29506 if (flags
& NDR_OUT
) {
29507 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29509 return NDR_ERR_SUCCESS
;
29512 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
29514 if (flags
& NDR_IN
) {
29516 if (flags
& NDR_OUT
) {
29517 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29519 return NDR_ERR_SUCCESS
;
29522 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
29524 ndr_print_struct(ndr
, name
, "spoolss_6c");
29526 if (flags
& NDR_SET_VALUES
) {
29527 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29529 if (flags
& NDR_IN
) {
29530 ndr_print_struct(ndr
, "in", "spoolss_6c");
29534 if (flags
& NDR_OUT
) {
29535 ndr_print_struct(ndr
, "out", "spoolss_6c");
29537 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29543 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
29545 if (flags
& NDR_IN
) {
29547 if (flags
& NDR_OUT
) {
29548 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29550 return NDR_ERR_SUCCESS
;
29553 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
29555 if (flags
& NDR_IN
) {
29557 if (flags
& NDR_OUT
) {
29558 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29560 return NDR_ERR_SUCCESS
;
29563 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
29565 ndr_print_struct(ndr
, name
, "spoolss_6d");
29567 if (flags
& NDR_SET_VALUES
) {
29568 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29570 if (flags
& NDR_IN
) {
29571 ndr_print_struct(ndr
, "in", "spoolss_6d");
29575 if (flags
& NDR_OUT
) {
29576 ndr_print_struct(ndr
, "out", "spoolss_6d");
29578 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29584 static const struct ndr_interface_call spoolss_calls
[] = {
29586 "spoolss_EnumPrinters",
29587 sizeof(struct spoolss_EnumPrinters
),
29588 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
29589 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
29590 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
29594 "spoolss_OpenPrinter",
29595 sizeof(struct spoolss_OpenPrinter
),
29596 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
29597 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
29598 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
29603 sizeof(struct spoolss_SetJob
),
29604 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
29605 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
29606 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
29611 sizeof(struct spoolss_GetJob
),
29612 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
29613 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
29614 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
29618 "spoolss_EnumJobs",
29619 sizeof(struct spoolss_EnumJobs
),
29620 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
29621 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
29622 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
29626 "spoolss_AddPrinter",
29627 sizeof(struct spoolss_AddPrinter
),
29628 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
29629 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
29630 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
29634 "spoolss_DeletePrinter",
29635 sizeof(struct spoolss_DeletePrinter
),
29636 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
29637 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
29638 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
29642 "spoolss_SetPrinter",
29643 sizeof(struct spoolss_SetPrinter
),
29644 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
29645 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
29646 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
29650 "spoolss_GetPrinter",
29651 sizeof(struct spoolss_GetPrinter
),
29652 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
29653 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
29654 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
29658 "spoolss_AddPrinterDriver",
29659 sizeof(struct spoolss_AddPrinterDriver
),
29660 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
29661 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
29662 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
29666 "spoolss_EnumPrinterDrivers",
29667 sizeof(struct spoolss_EnumPrinterDrivers
),
29668 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
29669 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
29670 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
29674 "spoolss_GetPrinterDriver",
29675 sizeof(struct spoolss_GetPrinterDriver
),
29676 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
29677 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
29678 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
29682 "spoolss_GetPrinterDriverDirectory",
29683 sizeof(struct spoolss_GetPrinterDriverDirectory
),
29684 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
29685 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
29686 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
29690 "spoolss_DeletePrinterDriver",
29691 sizeof(struct spoolss_DeletePrinterDriver
),
29692 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
29693 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
29694 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
29698 "spoolss_AddPrintProcessor",
29699 sizeof(struct spoolss_AddPrintProcessor
),
29700 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
29701 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
29702 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
29706 "spoolss_EnumPrintProcessors",
29707 sizeof(struct spoolss_EnumPrintProcessors
),
29708 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
29709 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
29710 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
29714 "spoolss_GetPrintProcessorDirectory",
29715 sizeof(struct spoolss_GetPrintProcessorDirectory
),
29716 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
29717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
29718 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
29722 "spoolss_StartDocPrinter",
29723 sizeof(struct spoolss_StartDocPrinter
),
29724 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
29725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
29726 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
29730 "spoolss_StartPagePrinter",
29731 sizeof(struct spoolss_StartPagePrinter
),
29732 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
29733 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
29734 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
29738 "spoolss_WritePrinter",
29739 sizeof(struct spoolss_WritePrinter
),
29740 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
29741 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
29742 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
29746 "spoolss_EndPagePrinter",
29747 sizeof(struct spoolss_EndPagePrinter
),
29748 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
29749 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
29750 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
29754 "spoolss_AbortPrinter",
29755 sizeof(struct spoolss_AbortPrinter
),
29756 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
29757 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
29758 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
29762 "spoolss_ReadPrinter",
29763 sizeof(struct spoolss_ReadPrinter
),
29764 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
29765 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
29766 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
29770 "spoolss_EndDocPrinter",
29771 sizeof(struct spoolss_EndDocPrinter
),
29772 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
29773 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
29774 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
29779 sizeof(struct spoolss_AddJob
),
29780 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
29781 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
29782 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
29786 "spoolss_ScheduleJob",
29787 sizeof(struct spoolss_ScheduleJob
),
29788 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
29789 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
29790 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
29794 "spoolss_GetPrinterData",
29795 sizeof(struct spoolss_GetPrinterData
),
29796 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
29797 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
29798 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
29802 "spoolss_SetPrinterData",
29803 sizeof(struct spoolss_SetPrinterData
),
29804 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
29805 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
29806 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
29810 "spoolss_WaitForPrinterChange",
29811 sizeof(struct spoolss_WaitForPrinterChange
),
29812 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
29813 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
29814 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
29818 "spoolss_ClosePrinter",
29819 sizeof(struct spoolss_ClosePrinter
),
29820 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
29821 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
29822 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
29827 sizeof(struct spoolss_AddForm
),
29828 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
29829 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
29830 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
29834 "spoolss_DeleteForm",
29835 sizeof(struct spoolss_DeleteForm
),
29836 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
29837 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
29838 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
29843 sizeof(struct spoolss_GetForm
),
29844 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
29845 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
29846 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
29851 sizeof(struct spoolss_SetForm
),
29852 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
29853 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
29854 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
29858 "spoolss_EnumForms",
29859 sizeof(struct spoolss_EnumForms
),
29860 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
29861 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
29862 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
29866 "spoolss_EnumPorts",
29867 sizeof(struct spoolss_EnumPorts
),
29868 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
29869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
29870 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
29874 "spoolss_EnumMonitors",
29875 sizeof(struct spoolss_EnumMonitors
),
29876 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
29877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
29878 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
29883 sizeof(struct spoolss_AddPort
),
29884 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
29885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
29886 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
29890 "spoolss_ConfigurePort",
29891 sizeof(struct spoolss_ConfigurePort
),
29892 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
29893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
29894 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
29898 "spoolss_DeletePort",
29899 sizeof(struct spoolss_DeletePort
),
29900 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
29901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
29902 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
29906 "spoolss_CreatePrinterIC",
29907 sizeof(struct spoolss_CreatePrinterIC
),
29908 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
29909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
29910 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
29914 "spoolss_PlayGDIScriptOnPrinterIC",
29915 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
29916 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
29917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
29918 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
29922 "spoolss_DeletePrinterIC",
29923 sizeof(struct spoolss_DeletePrinterIC
),
29924 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
29925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
29926 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
29930 "spoolss_AddPrinterConnection",
29931 sizeof(struct spoolss_AddPrinterConnection
),
29932 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
29933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
29934 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
29938 "spoolss_DeletePrinterConnection",
29939 sizeof(struct spoolss_DeletePrinterConnection
),
29940 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
29941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
29942 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
29946 "spoolss_PrinterMessageBox",
29947 sizeof(struct spoolss_PrinterMessageBox
),
29948 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
29949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
29950 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
29954 "spoolss_AddMonitor",
29955 sizeof(struct spoolss_AddMonitor
),
29956 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
29957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
29958 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
29962 "spoolss_DeleteMonitor",
29963 sizeof(struct spoolss_DeleteMonitor
),
29964 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
29965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
29966 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
29970 "spoolss_DeletePrintProcessor",
29971 sizeof(struct spoolss_DeletePrintProcessor
),
29972 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
29973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
29974 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
29978 "spoolss_AddPrintProvidor",
29979 sizeof(struct spoolss_AddPrintProvidor
),
29980 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
29981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
29982 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
29986 "spoolss_DeletePrintProvidor",
29987 sizeof(struct spoolss_DeletePrintProvidor
),
29988 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
29989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
29990 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
29994 "spoolss_EnumPrintProcDataTypes",
29995 sizeof(struct spoolss_EnumPrintProcDataTypes
),
29996 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
29997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
29998 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
30002 "spoolss_ResetPrinter",
30003 sizeof(struct spoolss_ResetPrinter
),
30004 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
30005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
30006 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
30010 "spoolss_GetPrinterDriver2",
30011 sizeof(struct spoolss_GetPrinterDriver2
),
30012 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
30013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
30014 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
30018 "spoolss_FindFirstPrinterChangeNotification",
30019 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
30020 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
30021 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
30022 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
30026 "spoolss_FindNextPrinterChangeNotification",
30027 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
30028 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
30029 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
30030 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
30034 "spoolss_FindClosePrinterNotify",
30035 sizeof(struct spoolss_FindClosePrinterNotify
),
30036 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
30037 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
30038 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
30042 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30043 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
30044 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30045 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30046 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30050 "spoolss_ReplyOpenPrinter",
30051 sizeof(struct spoolss_ReplyOpenPrinter
),
30052 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
30053 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
30054 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
30058 "spoolss_RouterReplyPrinter",
30059 sizeof(struct spoolss_RouterReplyPrinter
),
30060 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
30061 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
30062 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
30066 "spoolss_ReplyClosePrinter",
30067 sizeof(struct spoolss_ReplyClosePrinter
),
30068 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
30069 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
30070 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
30074 "spoolss_AddPortEx",
30075 sizeof(struct spoolss_AddPortEx
),
30076 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
30077 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
30078 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
30082 "spoolss_RouterFindFirstPrinterChangeNotification",
30083 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
30084 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
30085 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
30086 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
30090 "spoolss_SpoolerInit",
30091 sizeof(struct spoolss_SpoolerInit
),
30092 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
30093 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
30094 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
30098 "spoolss_ResetPrinterEx",
30099 sizeof(struct spoolss_ResetPrinterEx
),
30100 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
30101 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
30102 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
30106 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30107 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
30108 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30109 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30110 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30114 "spoolss_RouterReplyPrinterEx",
30115 sizeof(struct spoolss_RouterReplyPrinterEx
),
30116 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
30117 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
30118 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
30122 "spoolss_RouterRefreshPrinterChangeNotify",
30123 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
30124 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
30125 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
30126 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
30131 sizeof(struct spoolss_44
),
30132 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
30133 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
30134 (ndr_print_function_t
) ndr_print_spoolss_44
,
30138 "spoolss_OpenPrinterEx",
30139 sizeof(struct spoolss_OpenPrinterEx
),
30140 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
30141 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
30142 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
30146 "spoolss_AddPrinterEx",
30147 sizeof(struct spoolss_AddPrinterEx
),
30148 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
30149 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
30150 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
30155 sizeof(struct spoolss_47
),
30156 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
30157 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
30158 (ndr_print_function_t
) ndr_print_spoolss_47
,
30162 "spoolss_EnumPrinterData",
30163 sizeof(struct spoolss_EnumPrinterData
),
30164 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
30165 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
30166 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
30170 "spoolss_DeletePrinterData",
30171 sizeof(struct spoolss_DeletePrinterData
),
30172 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
30173 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
30174 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
30179 sizeof(struct spoolss_4a
),
30180 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
30181 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
30182 (ndr_print_function_t
) ndr_print_spoolss_4a
,
30187 sizeof(struct spoolss_4b
),
30188 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
30189 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
30190 (ndr_print_function_t
) ndr_print_spoolss_4b
,
30195 sizeof(struct spoolss_4c
),
30196 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
30197 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
30198 (ndr_print_function_t
) ndr_print_spoolss_4c
,
30202 "spoolss_SetPrinterDataEx",
30203 sizeof(struct spoolss_SetPrinterDataEx
),
30204 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
30205 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
30206 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
30210 "spoolss_GetPrinterDataEx",
30211 sizeof(struct spoolss_GetPrinterDataEx
),
30212 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
30213 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
30214 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
30218 "spoolss_EnumPrinterDataEx",
30219 sizeof(struct spoolss_EnumPrinterDataEx
),
30220 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
30221 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
30222 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
30226 "spoolss_EnumPrinterKey",
30227 sizeof(struct spoolss_EnumPrinterKey
),
30228 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
30229 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
30230 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
30234 "spoolss_DeletePrinterDataEx",
30235 sizeof(struct spoolss_DeletePrinterDataEx
),
30236 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
30237 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
30238 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
30242 "spoolss_DeletePrinterKey",
30243 sizeof(struct spoolss_DeletePrinterKey
),
30244 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
30245 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
30246 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
30251 sizeof(struct spoolss_53
),
30252 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
30253 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
30254 (ndr_print_function_t
) ndr_print_spoolss_53
,
30258 "spoolss_DeletePrinterDriverEx",
30259 sizeof(struct spoolss_DeletePrinterDriverEx
),
30260 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
30261 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
30262 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
30267 sizeof(struct spoolss_55
),
30268 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
30269 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
30270 (ndr_print_function_t
) ndr_print_spoolss_55
,
30275 sizeof(struct spoolss_56
),
30276 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
30277 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
30278 (ndr_print_function_t
) ndr_print_spoolss_56
,
30283 sizeof(struct spoolss_57
),
30284 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
30285 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
30286 (ndr_print_function_t
) ndr_print_spoolss_57
,
30291 sizeof(struct spoolss_XcvData
),
30292 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
30293 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
30294 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
30298 "spoolss_AddPrinterDriverEx",
30299 sizeof(struct spoolss_AddPrinterDriverEx
),
30300 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
30301 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
30302 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
30307 sizeof(struct spoolss_5a
),
30308 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
30309 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
30310 (ndr_print_function_t
) ndr_print_spoolss_5a
,
30315 sizeof(struct spoolss_5b
),
30316 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
30317 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
30318 (ndr_print_function_t
) ndr_print_spoolss_5b
,
30323 sizeof(struct spoolss_5c
),
30324 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
30325 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
30326 (ndr_print_function_t
) ndr_print_spoolss_5c
,
30331 sizeof(struct spoolss_5d
),
30332 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
30333 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
30334 (ndr_print_function_t
) ndr_print_spoolss_5d
,
30339 sizeof(struct spoolss_5e
),
30340 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
30341 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
30342 (ndr_print_function_t
) ndr_print_spoolss_5e
,
30347 sizeof(struct spoolss_5f
),
30348 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
30349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
30350 (ndr_print_function_t
) ndr_print_spoolss_5f
,
30355 sizeof(struct spoolss_60
),
30356 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
30357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
30358 (ndr_print_function_t
) ndr_print_spoolss_60
,
30363 sizeof(struct spoolss_61
),
30364 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
30365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
30366 (ndr_print_function_t
) ndr_print_spoolss_61
,
30371 sizeof(struct spoolss_62
),
30372 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
30373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
30374 (ndr_print_function_t
) ndr_print_spoolss_62
,
30379 sizeof(struct spoolss_63
),
30380 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
30381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
30382 (ndr_print_function_t
) ndr_print_spoolss_63
,
30387 sizeof(struct spoolss_64
),
30388 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
30389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
30390 (ndr_print_function_t
) ndr_print_spoolss_64
,
30395 sizeof(struct spoolss_65
),
30396 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
30397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
30398 (ndr_print_function_t
) ndr_print_spoolss_65
,
30402 "spoolss_GetCorePrinterDrivers",
30403 sizeof(struct spoolss_GetCorePrinterDrivers
),
30404 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
30405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
30406 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
30411 sizeof(struct spoolss_67
),
30412 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
30413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
30414 (ndr_print_function_t
) ndr_print_spoolss_67
,
30418 "spoolss_GetPrinterDriverPackagePath",
30419 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
30420 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
30421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
30422 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
30427 sizeof(struct spoolss_69
),
30428 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
30429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
30430 (ndr_print_function_t
) ndr_print_spoolss_69
,
30435 sizeof(struct spoolss_6a
),
30436 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
30437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
30438 (ndr_print_function_t
) ndr_print_spoolss_6a
,
30443 sizeof(struct spoolss_6b
),
30444 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
30445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
30446 (ndr_print_function_t
) ndr_print_spoolss_6b
,
30451 sizeof(struct spoolss_6c
),
30452 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
30453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
30454 (ndr_print_function_t
) ndr_print_spoolss_6c
,
30459 sizeof(struct spoolss_6d
),
30460 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
30461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
30462 (ndr_print_function_t
) ndr_print_spoolss_6d
,
30465 { NULL
, 0, NULL
, NULL
, NULL
, false }
30468 static const char * const spoolss_endpoint_strings
[] = {
30469 "ncacn_np:[\\pipe\\spoolss]",
30472 static const struct ndr_interface_string_array spoolss_endpoints
= {
30474 .names
= spoolss_endpoint_strings
30477 static const char * const spoolss_authservice_strings
[] = {
30481 static const struct ndr_interface_string_array spoolss_authservices
= {
30483 .names
= spoolss_authservice_strings
30487 const struct ndr_interface_table ndr_table_spoolss
= {
30490 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30491 NDR_SPOOLSS_VERSION
30493 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
30495 .calls
= spoolss_calls
,
30496 .endpoints
= &spoolss_endpoints
,
30497 .authservices
= &spoolss_authservices