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
, MAXDEVICENAME
, 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
, MAXDEVICENAME
, 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
, MAXDEVICENAME
, 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
, MAXDEVICENAME
, 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_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
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_uint32(ndr
, NDR_SCALARS
, r
->secdesc_ptr
));
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
));
6679 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6680 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6681 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6682 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6684 if (r
->printprocessor
) {
6685 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6686 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6687 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6688 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6691 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6692 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6694 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6696 if (r
->parameters
) {
6697 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6700 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6703 return NDR_ERR_SUCCESS
;
6706 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6708 uint32_t _ptr_servername
;
6709 TALLOC_CTX
*_mem_save_servername_0
;
6710 uint32_t _ptr_printername
;
6711 TALLOC_CTX
*_mem_save_printername_0
;
6712 uint32_t _ptr_sharename
;
6713 TALLOC_CTX
*_mem_save_sharename_0
;
6714 uint32_t _ptr_portname
;
6715 TALLOC_CTX
*_mem_save_portname_0
;
6716 uint32_t _ptr_drivername
;
6717 TALLOC_CTX
*_mem_save_drivername_0
;
6718 uint32_t _ptr_comment
;
6719 TALLOC_CTX
*_mem_save_comment_0
;
6720 uint32_t _ptr_location
;
6721 TALLOC_CTX
*_mem_save_location_0
;
6722 uint32_t _ptr_sepfile
;
6723 TALLOC_CTX
*_mem_save_sepfile_0
;
6724 uint32_t _ptr_printprocessor
;
6725 TALLOC_CTX
*_mem_save_printprocessor_0
;
6726 uint32_t _ptr_datatype
;
6727 TALLOC_CTX
*_mem_save_datatype_0
;
6728 uint32_t _ptr_parameters
;
6729 TALLOC_CTX
*_mem_save_parameters_0
;
6730 if (ndr_flags
& NDR_SCALARS
) {
6731 NDR_CHECK(ndr_pull_align(ndr
, 5));
6732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6733 if (_ptr_servername
) {
6734 NDR_PULL_ALLOC(ndr
, r
->servername
);
6736 r
->servername
= NULL
;
6738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6739 if (_ptr_printername
) {
6740 NDR_PULL_ALLOC(ndr
, r
->printername
);
6742 r
->printername
= NULL
;
6744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6745 if (_ptr_sharename
) {
6746 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6748 r
->sharename
= NULL
;
6750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6751 if (_ptr_portname
) {
6752 NDR_PULL_ALLOC(ndr
, r
->portname
);
6756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6757 if (_ptr_drivername
) {
6758 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6760 r
->drivername
= NULL
;
6762 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6764 NDR_PULL_ALLOC(ndr
, r
->comment
);
6768 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6769 if (_ptr_location
) {
6770 NDR_PULL_ALLOC(ndr
, r
->location
);
6774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
6775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6777 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6781 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6782 if (_ptr_printprocessor
) {
6783 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6785 r
->printprocessor
= NULL
;
6787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6788 if (_ptr_datatype
) {
6789 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6794 if (_ptr_parameters
) {
6795 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6797 r
->parameters
= NULL
;
6799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->secdesc_ptr
));
6800 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6802 if (r
->priority
> 99) {
6803 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6805 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6808 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6811 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6813 if (ndr_flags
& NDR_BUFFERS
) {
6814 if (r
->servername
) {
6815 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6816 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6819 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6820 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
));
6822 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6823 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6826 if (r
->printername
) {
6827 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6828 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6831 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6832 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
));
6834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6839 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6840 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6843 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6844 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
));
6846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6847 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6851 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6852 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6855 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6856 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
));
6858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6862 if (r
->drivername
) {
6863 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6864 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6867 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6868 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
));
6870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6875 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6876 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6877 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6878 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6879 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6880 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
));
6882 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6883 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6887 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6888 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6889 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6890 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6891 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6892 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
));
6894 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6895 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6899 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6900 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6901 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6902 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6903 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6904 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
));
6906 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6907 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6910 if (r
->printprocessor
) {
6911 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6912 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6913 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6914 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6915 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6916 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
));
6918 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6919 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6923 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6924 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6925 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6926 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6927 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6928 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
));
6930 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6931 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6934 if (r
->parameters
) {
6935 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6936 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6937 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6938 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6939 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6940 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
));
6942 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6943 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6947 return NDR_ERR_SUCCESS
;
6950 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6952 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6954 ndr_print_ptr(ndr
, "servername", r
->servername
);
6956 if (r
->servername
) {
6957 ndr_print_string(ndr
, "servername", r
->servername
);
6960 ndr_print_ptr(ndr
, "printername", r
->printername
);
6962 if (r
->printername
) {
6963 ndr_print_string(ndr
, "printername", r
->printername
);
6966 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6969 ndr_print_string(ndr
, "sharename", r
->sharename
);
6972 ndr_print_ptr(ndr
, "portname", r
->portname
);
6975 ndr_print_string(ndr
, "portname", r
->portname
);
6978 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6980 if (r
->drivername
) {
6981 ndr_print_string(ndr
, "drivername", r
->drivername
);
6984 ndr_print_ptr(ndr
, "comment", r
->comment
);
6987 ndr_print_string(ndr
, "comment", r
->comment
);
6990 ndr_print_ptr(ndr
, "location", r
->location
);
6993 ndr_print_string(ndr
, "location", r
->location
);
6996 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
6997 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7000 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7003 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7005 if (r
->printprocessor
) {
7006 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7009 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7012 ndr_print_string(ndr
, "datatype", r
->datatype
);
7015 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7017 if (r
->parameters
) {
7018 ndr_print_string(ndr
, "parameters", r
->parameters
);
7021 ndr_print_uint32(ndr
, "secdesc_ptr", r
->secdesc_ptr
);
7022 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7023 ndr_print_uint32(ndr
, "priority", r
->priority
);
7024 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7025 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7026 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7027 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7028 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7029 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7033 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7035 if (ndr_flags
& NDR_SCALARS
) {
7036 NDR_CHECK(ndr_push_align(ndr
, 4));
7037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7038 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7040 if (ndr_flags
& NDR_BUFFERS
) {
7042 return NDR_ERR_SUCCESS
;
7045 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7047 if (ndr_flags
& NDR_SCALARS
) {
7048 NDR_CHECK(ndr_pull_align(ndr
, 4));
7049 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7050 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7052 if (ndr_flags
& NDR_BUFFERS
) {
7054 return NDR_ERR_SUCCESS
;
7057 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7059 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7061 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7065 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7067 if (ndr_flags
& NDR_SCALARS
) {
7068 NDR_CHECK(ndr_push_align(ndr
, 5));
7069 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7070 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7071 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7072 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7074 if (ndr_flags
& NDR_BUFFERS
) {
7075 if (r
->printername
) {
7076 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7079 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7081 if (r
->servername
) {
7082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7083 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7085 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7088 return NDR_ERR_SUCCESS
;
7091 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7093 uint32_t _ptr_printername
;
7094 TALLOC_CTX
*_mem_save_printername_0
;
7095 uint32_t _ptr_servername
;
7096 TALLOC_CTX
*_mem_save_servername_0
;
7097 if (ndr_flags
& NDR_SCALARS
) {
7098 NDR_CHECK(ndr_pull_align(ndr
, 5));
7099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7100 if (_ptr_printername
) {
7101 NDR_PULL_ALLOC(ndr
, r
->printername
);
7103 r
->printername
= NULL
;
7105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7106 if (_ptr_servername
) {
7107 NDR_PULL_ALLOC(ndr
, r
->servername
);
7109 r
->servername
= NULL
;
7111 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7112 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7114 if (ndr_flags
& NDR_BUFFERS
) {
7115 if (r
->printername
) {
7116 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7117 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7118 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7119 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7120 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7121 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
));
7123 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7124 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7127 if (r
->servername
) {
7128 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7129 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7130 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7131 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7132 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7133 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
));
7135 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7136 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7140 return NDR_ERR_SUCCESS
;
7143 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7145 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7147 ndr_print_ptr(ndr
, "printername", r
->printername
);
7149 if (r
->printername
) {
7150 ndr_print_string(ndr
, "printername", r
->printername
);
7153 ndr_print_ptr(ndr
, "servername", r
->servername
);
7155 if (r
->servername
) {
7156 ndr_print_string(ndr
, "servername", r
->servername
);
7159 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7163 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7165 if (ndr_flags
& NDR_SCALARS
) {
7166 NDR_CHECK(ndr_push_align(ndr
, 5));
7167 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7168 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7169 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7172 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7174 if (ndr_flags
& NDR_BUFFERS
) {
7175 if (r
->printername
) {
7176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7178 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7179 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7182 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7183 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7184 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7185 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7188 return NDR_ERR_SUCCESS
;
7191 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7193 uint32_t _ptr_printername
;
7194 TALLOC_CTX
*_mem_save_printername_0
;
7195 uint32_t _ptr_portname
;
7196 TALLOC_CTX
*_mem_save_portname_0
;
7197 if (ndr_flags
& NDR_SCALARS
) {
7198 NDR_CHECK(ndr_pull_align(ndr
, 5));
7199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7200 if (_ptr_printername
) {
7201 NDR_PULL_ALLOC(ndr
, r
->printername
);
7203 r
->printername
= NULL
;
7205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7206 if (_ptr_portname
) {
7207 NDR_PULL_ALLOC(ndr
, r
->portname
);
7211 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7214 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7216 if (ndr_flags
& NDR_BUFFERS
) {
7217 if (r
->printername
) {
7218 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7219 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7221 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7222 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7223 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
));
7225 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7226 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7230 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7231 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7233 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7234 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7235 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
));
7237 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7242 return NDR_ERR_SUCCESS
;
7245 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7247 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7249 ndr_print_ptr(ndr
, "printername", r
->printername
);
7251 if (r
->printername
) {
7252 ndr_print_string(ndr
, "printername", r
->printername
);
7255 ndr_print_ptr(ndr
, "portname", r
->portname
);
7258 ndr_print_string(ndr
, "portname", r
->portname
);
7261 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7262 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7263 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7267 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7269 if (ndr_flags
& NDR_SCALARS
) {
7270 NDR_CHECK(ndr_push_align(ndr
, 4));
7271 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7272 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7274 if (ndr_flags
& NDR_BUFFERS
) {
7276 return NDR_ERR_SUCCESS
;
7279 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7281 if (ndr_flags
& NDR_SCALARS
) {
7282 NDR_CHECK(ndr_pull_align(ndr
, 4));
7283 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7284 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7286 if (ndr_flags
& NDR_BUFFERS
) {
7288 return NDR_ERR_SUCCESS
;
7291 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7293 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7295 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7299 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7301 if (ndr_flags
& NDR_SCALARS
) {
7302 NDR_CHECK(ndr_push_align(ndr
, 5));
7303 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7304 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7305 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7307 if (ndr_flags
& NDR_BUFFERS
) {
7309 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7311 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7312 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7315 return NDR_ERR_SUCCESS
;
7318 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7321 TALLOC_CTX
*_mem_save_guid_0
;
7322 if (ndr_flags
& NDR_SCALARS
) {
7323 NDR_CHECK(ndr_pull_align(ndr
, 5));
7324 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7326 NDR_PULL_ALLOC(ndr
, r
->guid
);
7330 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7331 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7333 if (ndr_flags
& NDR_BUFFERS
) {
7335 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7336 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7337 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7338 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7339 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
7340 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
));
7342 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
7343 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
7344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7347 return NDR_ERR_SUCCESS
;
7350 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7352 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7354 ndr_print_ptr(ndr
, "guid", r
->guid
);
7357 ndr_print_string(ndr
, "guid", r
->guid
);
7360 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7364 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo8
*r
)
7366 if (ndr_flags
& NDR_SCALARS
) {
7367 NDR_CHECK(ndr_push_align(ndr
, 4));
7368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7369 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7371 if (ndr_flags
& NDR_BUFFERS
) {
7373 return NDR_ERR_SUCCESS
;
7376 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo8
*r
)
7378 if (ndr_flags
& NDR_SCALARS
) {
7379 NDR_CHECK(ndr_pull_align(ndr
, 4));
7380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7381 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7383 if (ndr_flags
& NDR_BUFFERS
) {
7385 return NDR_ERR_SUCCESS
;
7388 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo8
*r
)
7390 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo8");
7392 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7396 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo9
*r
)
7398 if (ndr_flags
& NDR_SCALARS
) {
7399 NDR_CHECK(ndr_push_align(ndr
, 4));
7400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7401 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7403 if (ndr_flags
& NDR_BUFFERS
) {
7405 return NDR_ERR_SUCCESS
;
7408 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo9
*r
)
7410 if (ndr_flags
& NDR_SCALARS
) {
7411 NDR_CHECK(ndr_pull_align(ndr
, 4));
7412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7413 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7415 if (ndr_flags
& NDR_BUFFERS
) {
7417 return NDR_ERR_SUCCESS
;
7420 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo9
*r
)
7422 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo9");
7424 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7428 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7430 if (ndr_flags
& NDR_SCALARS
) {
7431 int level
= ndr_push_get_switch_value(ndr
, r
);
7432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7433 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7436 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7444 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7452 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7456 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7460 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7468 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7472 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7480 if (ndr_flags
& NDR_BUFFERS
) {
7481 int level
= ndr_push_get_switch_value(ndr
, r
);
7485 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7491 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7497 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7503 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7509 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7515 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7521 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7527 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7533 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7539 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7548 return NDR_ERR_SUCCESS
;
7551 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7555 TALLOC_CTX
*_mem_save_info0_0
;
7556 TALLOC_CTX
*_mem_save_info1_0
;
7557 TALLOC_CTX
*_mem_save_info2_0
;
7558 TALLOC_CTX
*_mem_save_info3_0
;
7559 TALLOC_CTX
*_mem_save_info4_0
;
7560 TALLOC_CTX
*_mem_save_info5_0
;
7561 TALLOC_CTX
*_mem_save_info6_0
;
7562 TALLOC_CTX
*_mem_save_info7_0
;
7563 TALLOC_CTX
*_mem_save_info8_0
;
7564 TALLOC_CTX
*_mem_save_info9_0
;
7565 level
= ndr_pull_get_switch_value(ndr
, r
);
7566 if (ndr_flags
& NDR_SCALARS
) {
7567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7568 if (_level
!= level
) {
7569 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7571 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
7574 uint32_t _ptr_info0
;
7575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7577 NDR_PULL_ALLOC(ndr
, r
->info0
);
7584 uint32_t _ptr_info1
;
7585 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7587 NDR_PULL_ALLOC(ndr
, r
->info1
);
7594 uint32_t _ptr_info2
;
7595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7597 NDR_PULL_ALLOC(ndr
, r
->info2
);
7604 uint32_t _ptr_info3
;
7605 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7607 NDR_PULL_ALLOC(ndr
, r
->info3
);
7614 uint32_t _ptr_info4
;
7615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7617 NDR_PULL_ALLOC(ndr
, r
->info4
);
7624 uint32_t _ptr_info5
;
7625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7627 NDR_PULL_ALLOC(ndr
, r
->info5
);
7634 uint32_t _ptr_info6
;
7635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7637 NDR_PULL_ALLOC(ndr
, r
->info6
);
7644 uint32_t _ptr_info7
;
7645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7647 NDR_PULL_ALLOC(ndr
, r
->info7
);
7654 uint32_t _ptr_info8
;
7655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7657 NDR_PULL_ALLOC(ndr
, r
->info8
);
7664 uint32_t _ptr_info9
;
7665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7667 NDR_PULL_ALLOC(ndr
, r
->info9
);
7678 if (ndr_flags
& NDR_BUFFERS
) {
7682 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7683 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7684 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7691 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7692 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7693 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7700 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7701 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7702 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7709 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7710 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7711 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7718 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7719 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7720 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7727 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7728 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7729 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7736 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7737 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7738 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7745 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7746 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7747 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7754 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7755 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7756 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7757 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7763 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7764 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7765 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7775 return NDR_ERR_SUCCESS
;
7778 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7781 level
= ndr_print_get_switch_value(ndr
, r
);
7782 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7785 ndr_print_ptr(ndr
, "info0", r
->info0
);
7788 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7794 ndr_print_ptr(ndr
, "info1", r
->info1
);
7797 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7803 ndr_print_ptr(ndr
, "info2", r
->info2
);
7806 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7812 ndr_print_ptr(ndr
, "info3", r
->info3
);
7815 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7821 ndr_print_ptr(ndr
, "info4", r
->info4
);
7824 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7830 ndr_print_ptr(ndr
, "info5", r
->info5
);
7833 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7839 ndr_print_ptr(ndr
, "info6", r
->info6
);
7842 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7848 ndr_print_ptr(ndr
, "info7", r
->info7
);
7851 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7857 ndr_print_ptr(ndr
, "info8", r
->info8
);
7860 ndr_print_spoolss_SetPrinterInfo8(ndr
, "info8", r
->info8
);
7866 ndr_print_ptr(ndr
, "info9", r
->info9
);
7869 ndr_print_spoolss_SetPrinterInfo9(ndr
, "info9", r
->info9
);
7880 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7882 if (ndr_flags
& NDR_SCALARS
) {
7883 NDR_CHECK(ndr_push_align(ndr
, 5));
7884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7885 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7886 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7887 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7889 if (ndr_flags
& NDR_BUFFERS
) {
7890 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7892 return NDR_ERR_SUCCESS
;
7895 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7897 if (ndr_flags
& NDR_SCALARS
) {
7898 NDR_CHECK(ndr_pull_align(ndr
, 5));
7899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7900 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7901 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7902 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7904 if (ndr_flags
& NDR_BUFFERS
) {
7905 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7907 return NDR_ERR_SUCCESS
;
7910 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7912 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7914 ndr_print_uint32(ndr
, "level", r
->level
);
7915 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7916 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7920 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7922 if (ndr_flags
& NDR_SCALARS
) {
7923 NDR_CHECK(ndr_push_align(ndr
, 4));
7924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7926 uint32_t _flags_save_string_array
= ndr
->flags
;
7927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7928 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7929 ndr
->flags
= _flags_save_string_array
;
7931 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7933 if (ndr_flags
& NDR_BUFFERS
) {
7935 return NDR_ERR_SUCCESS
;
7938 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7940 if (ndr_flags
& NDR_SCALARS
) {
7941 NDR_CHECK(ndr_pull_align(ndr
, 4));
7942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7944 uint32_t _flags_save_string_array
= ndr
->flags
;
7945 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7946 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7947 ndr
->flags
= _flags_save_string_array
;
7949 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7951 if (ndr_flags
& NDR_BUFFERS
) {
7953 return NDR_ERR_SUCCESS
;
7956 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7958 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7960 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
);
7961 ndr_print_string_array(ndr
, "string", r
->string
);
7965 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7967 if (ndr_flags
& NDR_SCALARS
) {
7968 NDR_CHECK(ndr_push_align(ndr
, 5));
7969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7970 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7972 if (ndr_flags
& NDR_BUFFERS
) {
7973 if (r
->driver_name
) {
7974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7975 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7976 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7977 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7980 return NDR_ERR_SUCCESS
;
7983 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7985 uint32_t _ptr_driver_name
;
7986 TALLOC_CTX
*_mem_save_driver_name_0
;
7987 if (ndr_flags
& NDR_SCALARS
) {
7988 NDR_CHECK(ndr_pull_align(ndr
, 5));
7989 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7990 if (_ptr_driver_name
) {
7991 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7993 r
->driver_name
= NULL
;
7995 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7997 if (ndr_flags
& NDR_BUFFERS
) {
7998 if (r
->driver_name
) {
7999 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8000 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8001 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8002 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8003 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8004 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
));
8006 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8007 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8011 return NDR_ERR_SUCCESS
;
8014 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8016 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8018 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8020 if (r
->driver_name
) {
8021 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8027 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8029 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8030 return NDR_ERR_SUCCESS
;
8033 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8036 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8038 return NDR_ERR_SUCCESS
;
8041 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8043 const char *val
= NULL
;
8046 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8047 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8048 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8049 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8051 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8054 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8056 if (ndr_flags
& NDR_SCALARS
) {
8057 NDR_CHECK(ndr_push_align(ndr
, 5));
8058 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8061 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8062 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8063 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8064 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8066 if (ndr_flags
& NDR_BUFFERS
) {
8067 if (r
->driver_name
) {
8068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8070 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8071 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8073 if (r
->architecture
) {
8074 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8075 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8076 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8077 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8079 if (r
->driver_path
) {
8080 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8081 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8083 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8087 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8088 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8089 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8091 if (r
->config_file
) {
8092 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8093 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8094 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8095 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8098 return NDR_ERR_SUCCESS
;
8101 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8103 uint32_t _ptr_driver_name
;
8104 TALLOC_CTX
*_mem_save_driver_name_0
;
8105 uint32_t _ptr_architecture
;
8106 TALLOC_CTX
*_mem_save_architecture_0
;
8107 uint32_t _ptr_driver_path
;
8108 TALLOC_CTX
*_mem_save_driver_path_0
;
8109 uint32_t _ptr_data_file
;
8110 TALLOC_CTX
*_mem_save_data_file_0
;
8111 uint32_t _ptr_config_file
;
8112 TALLOC_CTX
*_mem_save_config_file_0
;
8113 if (ndr_flags
& NDR_SCALARS
) {
8114 NDR_CHECK(ndr_pull_align(ndr
, 5));
8115 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8117 if (_ptr_driver_name
) {
8118 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8120 r
->driver_name
= NULL
;
8122 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8123 if (_ptr_architecture
) {
8124 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8126 r
->architecture
= NULL
;
8128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8129 if (_ptr_driver_path
) {
8130 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8132 r
->driver_path
= NULL
;
8134 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8135 if (_ptr_data_file
) {
8136 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8138 r
->data_file
= NULL
;
8140 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8141 if (_ptr_config_file
) {
8142 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8144 r
->config_file
= NULL
;
8146 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8148 if (ndr_flags
& NDR_BUFFERS
) {
8149 if (r
->driver_name
) {
8150 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8151 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8152 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8153 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8154 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8155 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
));
8157 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8158 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8161 if (r
->architecture
) {
8162 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8163 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8164 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8165 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8166 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8167 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
));
8169 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8170 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8173 if (r
->driver_path
) {
8174 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8175 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8178 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8179 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
));
8181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8182 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8186 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8187 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8188 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8189 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8190 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8191 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
));
8193 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8194 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8197 if (r
->config_file
) {
8198 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8199 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8200 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8201 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8202 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8203 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
));
8205 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8206 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8210 return NDR_ERR_SUCCESS
;
8213 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8215 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8217 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8218 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8220 if (r
->driver_name
) {
8221 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8224 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8226 if (r
->architecture
) {
8227 ndr_print_string(ndr
, "architecture", r
->architecture
);
8230 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8232 if (r
->driver_path
) {
8233 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8236 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8239 ndr_print_string(ndr
, "data_file", r
->data_file
);
8242 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8244 if (r
->config_file
) {
8245 ndr_print_string(ndr
, "config_file", r
->config_file
);
8251 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8253 if (ndr_flags
& NDR_SCALARS
) {
8254 NDR_CHECK(ndr_push_align(ndr
, 5));
8255 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8257 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8258 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8259 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8262 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8263 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8265 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8266 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8268 if (ndr_flags
& NDR_BUFFERS
) {
8269 if (r
->driver_name
) {
8270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8271 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8272 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8273 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8275 if (r
->architecture
) {
8276 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8277 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8278 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8279 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8281 if (r
->driver_path
) {
8282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8283 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8285 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8288 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8289 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8290 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8291 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8293 if (r
->config_file
) {
8294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8295 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8296 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8303 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8305 if (r
->monitor_name
) {
8306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8307 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8309 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8311 if (r
->default_datatype
) {
8312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8313 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8315 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8317 if (r
->dependent_files
) {
8318 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8321 return NDR_ERR_SUCCESS
;
8324 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8326 uint32_t _ptr_driver_name
;
8327 TALLOC_CTX
*_mem_save_driver_name_0
;
8328 uint32_t _ptr_architecture
;
8329 TALLOC_CTX
*_mem_save_architecture_0
;
8330 uint32_t _ptr_driver_path
;
8331 TALLOC_CTX
*_mem_save_driver_path_0
;
8332 uint32_t _ptr_data_file
;
8333 TALLOC_CTX
*_mem_save_data_file_0
;
8334 uint32_t _ptr_config_file
;
8335 TALLOC_CTX
*_mem_save_config_file_0
;
8336 uint32_t _ptr_help_file
;
8337 TALLOC_CTX
*_mem_save_help_file_0
;
8338 uint32_t _ptr_monitor_name
;
8339 TALLOC_CTX
*_mem_save_monitor_name_0
;
8340 uint32_t _ptr_default_datatype
;
8341 TALLOC_CTX
*_mem_save_default_datatype_0
;
8342 uint32_t _ptr_dependent_files
;
8343 TALLOC_CTX
*_mem_save_dependent_files_0
;
8344 if (ndr_flags
& NDR_SCALARS
) {
8345 NDR_CHECK(ndr_pull_align(ndr
, 5));
8346 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8348 if (_ptr_driver_name
) {
8349 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8351 r
->driver_name
= NULL
;
8353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8354 if (_ptr_architecture
) {
8355 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8357 r
->architecture
= NULL
;
8359 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8360 if (_ptr_driver_path
) {
8361 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8363 r
->driver_path
= NULL
;
8365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8366 if (_ptr_data_file
) {
8367 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8369 r
->data_file
= NULL
;
8371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8372 if (_ptr_config_file
) {
8373 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8375 r
->config_file
= NULL
;
8377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8378 if (_ptr_help_file
) {
8379 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8381 r
->help_file
= NULL
;
8383 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8384 if (_ptr_monitor_name
) {
8385 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8387 r
->monitor_name
= NULL
;
8389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8390 if (_ptr_default_datatype
) {
8391 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8393 r
->default_datatype
= NULL
;
8395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8397 if (_ptr_dependent_files
) {
8398 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8400 r
->dependent_files
= NULL
;
8402 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8404 if (ndr_flags
& NDR_BUFFERS
) {
8405 if (r
->driver_name
) {
8406 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8407 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8408 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8409 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8410 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8411 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
));
8413 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8414 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8417 if (r
->architecture
) {
8418 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8419 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8420 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8421 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8422 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8423 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
));
8425 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8426 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8429 if (r
->driver_path
) {
8430 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8431 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8432 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8433 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8434 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8435 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
));
8437 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8438 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8442 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8443 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8444 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8445 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8446 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8447 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
));
8449 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8450 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8453 if (r
->config_file
) {
8454 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8455 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8456 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8457 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8458 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8459 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
));
8461 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8462 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8466 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8467 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8468 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8469 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8470 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8471 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
));
8473 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8474 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8477 if (r
->monitor_name
) {
8478 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8479 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8480 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8481 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8482 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8483 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
));
8485 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8486 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8489 if (r
->default_datatype
) {
8490 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8491 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8492 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8493 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8494 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8495 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
));
8497 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8498 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8501 if (r
->dependent_files
) {
8502 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8503 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8504 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8508 return NDR_ERR_SUCCESS
;
8511 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
8513 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
8515 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8516 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8518 if (r
->driver_name
) {
8519 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8522 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8524 if (r
->architecture
) {
8525 ndr_print_string(ndr
, "architecture", r
->architecture
);
8528 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8530 if (r
->driver_path
) {
8531 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8534 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8537 ndr_print_string(ndr
, "data_file", r
->data_file
);
8540 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8542 if (r
->config_file
) {
8543 ndr_print_string(ndr
, "config_file", r
->config_file
);
8546 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8549 ndr_print_string(ndr
, "help_file", r
->help_file
);
8552 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8554 if (r
->monitor_name
) {
8555 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8558 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8560 if (r
->default_datatype
) {
8561 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8564 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
);
8565 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8567 if (r
->dependent_files
) {
8568 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8574 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8576 if (ndr_flags
& NDR_SCALARS
) {
8577 NDR_CHECK(ndr_push_align(ndr
, 5));
8578 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8591 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8593 if (ndr_flags
& NDR_BUFFERS
) {
8594 if (r
->driver_name
) {
8595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8596 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8597 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8598 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8600 if (r
->architecture
) {
8601 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8602 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8604 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8606 if (r
->driver_path
) {
8607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8610 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8613 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8614 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8615 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8616 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8618 if (r
->config_file
) {
8619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8620 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8621 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8622 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8625 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8626 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8627 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8628 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8630 if (r
->monitor_name
) {
8631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8632 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8633 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8634 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8636 if (r
->default_datatype
) {
8637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8638 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8639 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8642 if (r
->dependent_files
) {
8643 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8645 if (r
->previous_names
) {
8646 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8649 return NDR_ERR_SUCCESS
;
8652 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8654 uint32_t _ptr_driver_name
;
8655 TALLOC_CTX
*_mem_save_driver_name_0
;
8656 uint32_t _ptr_architecture
;
8657 TALLOC_CTX
*_mem_save_architecture_0
;
8658 uint32_t _ptr_driver_path
;
8659 TALLOC_CTX
*_mem_save_driver_path_0
;
8660 uint32_t _ptr_data_file
;
8661 TALLOC_CTX
*_mem_save_data_file_0
;
8662 uint32_t _ptr_config_file
;
8663 TALLOC_CTX
*_mem_save_config_file_0
;
8664 uint32_t _ptr_help_file
;
8665 TALLOC_CTX
*_mem_save_help_file_0
;
8666 uint32_t _ptr_monitor_name
;
8667 TALLOC_CTX
*_mem_save_monitor_name_0
;
8668 uint32_t _ptr_default_datatype
;
8669 TALLOC_CTX
*_mem_save_default_datatype_0
;
8670 uint32_t _ptr_dependent_files
;
8671 TALLOC_CTX
*_mem_save_dependent_files_0
;
8672 uint32_t _ptr_previous_names
;
8673 TALLOC_CTX
*_mem_save_previous_names_0
;
8674 if (ndr_flags
& NDR_SCALARS
) {
8675 NDR_CHECK(ndr_pull_align(ndr
, 5));
8676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8677 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8678 if (_ptr_driver_name
) {
8679 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8681 r
->driver_name
= NULL
;
8683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8684 if (_ptr_architecture
) {
8685 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8687 r
->architecture
= NULL
;
8689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8690 if (_ptr_driver_path
) {
8691 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8693 r
->driver_path
= NULL
;
8695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8696 if (_ptr_data_file
) {
8697 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8699 r
->data_file
= NULL
;
8701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8702 if (_ptr_config_file
) {
8703 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8705 r
->config_file
= NULL
;
8707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8708 if (_ptr_help_file
) {
8709 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8711 r
->help_file
= NULL
;
8713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8714 if (_ptr_monitor_name
) {
8715 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8717 r
->monitor_name
= NULL
;
8719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8720 if (_ptr_default_datatype
) {
8721 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8723 r
->default_datatype
= NULL
;
8725 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8726 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8727 if (_ptr_dependent_files
) {
8728 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8730 r
->dependent_files
= NULL
;
8732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8734 if (_ptr_previous_names
) {
8735 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8737 r
->previous_names
= NULL
;
8739 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8741 if (ndr_flags
& NDR_BUFFERS
) {
8742 if (r
->driver_name
) {
8743 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8744 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8745 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8746 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8747 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8748 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
));
8750 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8751 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8752 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8754 if (r
->architecture
) {
8755 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8756 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8757 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8758 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8759 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8760 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
));
8762 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8763 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8766 if (r
->driver_path
) {
8767 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8768 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8769 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8770 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8771 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8772 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
));
8774 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8775 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8776 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8779 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8780 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8781 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8782 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8783 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8784 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
));
8786 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8787 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8790 if (r
->config_file
) {
8791 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8792 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8793 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8794 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8795 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8796 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
));
8798 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8799 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8803 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8804 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8805 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8806 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8807 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8808 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
));
8810 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8811 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8814 if (r
->monitor_name
) {
8815 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8816 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8819 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8820 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
));
8822 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8823 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8826 if (r
->default_datatype
) {
8827 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8828 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8831 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8832 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
));
8834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8838 if (r
->dependent_files
) {
8839 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8840 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8841 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8844 if (r
->previous_names
) {
8845 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8846 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8847 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8851 return NDR_ERR_SUCCESS
;
8854 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8856 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8858 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8859 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8861 if (r
->driver_name
) {
8862 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8865 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8867 if (r
->architecture
) {
8868 ndr_print_string(ndr
, "architecture", r
->architecture
);
8871 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8873 if (r
->driver_path
) {
8874 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8877 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8880 ndr_print_string(ndr
, "data_file", r
->data_file
);
8883 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8885 if (r
->config_file
) {
8886 ndr_print_string(ndr
, "config_file", r
->config_file
);
8889 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8892 ndr_print_string(ndr
, "help_file", r
->help_file
);
8895 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8897 if (r
->monitor_name
) {
8898 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8901 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8903 if (r
->default_datatype
) {
8904 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8907 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
);
8908 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8910 if (r
->dependent_files
) {
8911 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8914 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
);
8915 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8917 if (r
->previous_names
) {
8918 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8924 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8927 return NDR_ERR_SUCCESS
;
8930 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8935 return NDR_ERR_SUCCESS
;
8938 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8940 ndr_print_uint32(ndr
, name
, r
);
8942 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
8946 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8948 if (ndr_flags
& NDR_SCALARS
) {
8949 NDR_CHECK(ndr_push_align(ndr
, 8));
8950 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8963 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8964 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8969 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
8971 if (ndr_flags
& NDR_BUFFERS
) {
8972 if (r
->driver_name
) {
8973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8975 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8976 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8978 if (r
->architecture
) {
8979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8980 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8981 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8982 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8984 if (r
->driver_path
) {
8985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8986 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8987 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8988 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8992 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8993 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8994 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8996 if (r
->config_file
) {
8997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8998 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8999 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9000 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9004 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9006 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9008 if (r
->monitor_name
) {
9009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9010 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9012 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9014 if (r
->default_datatype
) {
9015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9016 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9018 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9020 if (r
->dependent_files
) {
9021 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9023 if (r
->previous_names
) {
9024 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9026 if (r
->manufacturer_name
) {
9027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9028 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9029 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9030 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9032 if (r
->manufacturer_url
) {
9033 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9034 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9035 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9036 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9038 if (r
->hardware_id
) {
9039 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9040 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9041 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9042 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9045 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9046 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9047 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9048 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9051 return NDR_ERR_SUCCESS
;
9054 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9056 uint32_t _ptr_driver_name
;
9057 TALLOC_CTX
*_mem_save_driver_name_0
;
9058 uint32_t _ptr_architecture
;
9059 TALLOC_CTX
*_mem_save_architecture_0
;
9060 uint32_t _ptr_driver_path
;
9061 TALLOC_CTX
*_mem_save_driver_path_0
;
9062 uint32_t _ptr_data_file
;
9063 TALLOC_CTX
*_mem_save_data_file_0
;
9064 uint32_t _ptr_config_file
;
9065 TALLOC_CTX
*_mem_save_config_file_0
;
9066 uint32_t _ptr_help_file
;
9067 TALLOC_CTX
*_mem_save_help_file_0
;
9068 uint32_t _ptr_monitor_name
;
9069 TALLOC_CTX
*_mem_save_monitor_name_0
;
9070 uint32_t _ptr_default_datatype
;
9071 TALLOC_CTX
*_mem_save_default_datatype_0
;
9072 uint32_t _ptr_dependent_files
;
9073 TALLOC_CTX
*_mem_save_dependent_files_0
;
9074 uint32_t _ptr_previous_names
;
9075 TALLOC_CTX
*_mem_save_previous_names_0
;
9076 uint32_t _ptr_manufacturer_name
;
9077 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9078 uint32_t _ptr_manufacturer_url
;
9079 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9080 uint32_t _ptr_hardware_id
;
9081 TALLOC_CTX
*_mem_save_hardware_id_0
;
9082 uint32_t _ptr_provider
;
9083 TALLOC_CTX
*_mem_save_provider_0
;
9084 if (ndr_flags
& NDR_SCALARS
) {
9085 NDR_CHECK(ndr_pull_align(ndr
, 8));
9086 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9088 if (_ptr_driver_name
) {
9089 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9091 r
->driver_name
= NULL
;
9093 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9094 if (_ptr_architecture
) {
9095 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9097 r
->architecture
= NULL
;
9099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9100 if (_ptr_driver_path
) {
9101 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9103 r
->driver_path
= NULL
;
9105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9106 if (_ptr_data_file
) {
9107 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9109 r
->data_file
= NULL
;
9111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9112 if (_ptr_config_file
) {
9113 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9115 r
->config_file
= NULL
;
9117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9118 if (_ptr_help_file
) {
9119 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9121 r
->help_file
= NULL
;
9123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9124 if (_ptr_monitor_name
) {
9125 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9127 r
->monitor_name
= NULL
;
9129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9130 if (_ptr_default_datatype
) {
9131 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9133 r
->default_datatype
= NULL
;
9135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9137 if (_ptr_dependent_files
) {
9138 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9140 r
->dependent_files
= NULL
;
9142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9143 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9144 if (_ptr_previous_names
) {
9145 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9147 r
->previous_names
= NULL
;
9149 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9150 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9152 if (_ptr_manufacturer_name
) {
9153 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9155 r
->manufacturer_name
= NULL
;
9157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9158 if (_ptr_manufacturer_url
) {
9159 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9161 r
->manufacturer_url
= NULL
;
9163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9164 if (_ptr_hardware_id
) {
9165 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9167 r
->hardware_id
= NULL
;
9169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9170 if (_ptr_provider
) {
9171 NDR_PULL_ALLOC(ndr
, r
->provider
);
9175 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9177 if (ndr_flags
& NDR_BUFFERS
) {
9178 if (r
->driver_name
) {
9179 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9180 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9181 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9182 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9183 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9184 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
));
9186 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9187 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9190 if (r
->architecture
) {
9191 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9192 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9193 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9194 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9195 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9196 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
));
9198 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9199 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9202 if (r
->driver_path
) {
9203 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9204 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9205 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9206 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9207 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9208 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
));
9210 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9211 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9215 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9216 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9217 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9218 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9219 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9220 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
));
9222 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9223 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9226 if (r
->config_file
) {
9227 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9228 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9229 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9230 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9231 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9232 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
));
9234 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9235 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9239 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9240 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9241 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9242 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9243 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9244 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
));
9246 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9247 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9250 if (r
->monitor_name
) {
9251 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9252 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9253 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9254 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9255 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9256 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
));
9258 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9259 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9262 if (r
->default_datatype
) {
9263 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9264 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9267 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9268 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
));
9270 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9271 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9274 if (r
->dependent_files
) {
9275 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9276 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9278 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9280 if (r
->previous_names
) {
9281 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9282 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9283 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9286 if (r
->manufacturer_name
) {
9287 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9288 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9289 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9290 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9291 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9292 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
));
9294 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9295 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9296 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9298 if (r
->manufacturer_url
) {
9299 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9300 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9301 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9302 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9303 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9304 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
));
9306 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9307 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9310 if (r
->hardware_id
) {
9311 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9312 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9313 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9314 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9315 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9316 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
));
9318 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9319 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9323 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9324 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9325 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9326 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9327 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9328 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
));
9330 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9331 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9332 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9335 return NDR_ERR_SUCCESS
;
9338 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9340 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9342 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9343 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9345 if (r
->driver_name
) {
9346 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9349 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9351 if (r
->architecture
) {
9352 ndr_print_string(ndr
, "architecture", r
->architecture
);
9355 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9357 if (r
->driver_path
) {
9358 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9361 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9364 ndr_print_string(ndr
, "data_file", r
->data_file
);
9367 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9369 if (r
->config_file
) {
9370 ndr_print_string(ndr
, "config_file", r
->config_file
);
9373 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9376 ndr_print_string(ndr
, "help_file", r
->help_file
);
9379 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9381 if (r
->monitor_name
) {
9382 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9385 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9387 if (r
->default_datatype
) {
9388 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9391 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
);
9392 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9394 if (r
->dependent_files
) {
9395 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9398 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
);
9399 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9401 if (r
->previous_names
) {
9402 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9405 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9406 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9407 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9409 if (r
->manufacturer_name
) {
9410 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9413 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9415 if (r
->manufacturer_url
) {
9416 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9419 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9421 if (r
->hardware_id
) {
9422 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9425 ndr_print_ptr(ndr
, "provider", r
->provider
);
9428 ndr_print_string(ndr
, "provider", r
->provider
);
9434 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9436 if (ndr_flags
& NDR_SCALARS
) {
9437 NDR_CHECK(ndr_push_align(ndr
, 8));
9438 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9443 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9444 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9445 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9451 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9452 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9456 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9457 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9460 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9461 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9465 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9466 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9467 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9469 if (ndr_flags
& NDR_BUFFERS
) {
9470 if (r
->driver_name
) {
9471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9472 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9473 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9474 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9476 if (r
->architecture
) {
9477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9478 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9479 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9480 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9482 if (r
->driver_path
) {
9483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9484 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9485 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9492 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9494 if (r
->config_file
) {
9495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9504 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9506 if (r
->monitor_name
) {
9507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9508 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9510 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9512 if (r
->default_datatype
) {
9513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9514 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9516 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9518 if (r
->dependent_files
) {
9519 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9521 if (r
->previous_names
) {
9522 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9524 if (r
->manufacturer_name
) {
9525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9530 if (r
->manufacturer_url
) {
9531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9532 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9534 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9536 if (r
->hardware_id
) {
9537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9538 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9543 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9546 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9548 if (r
->print_processor
) {
9549 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9550 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9552 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9554 if (r
->vendor_setup
) {
9555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9556 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9558 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9560 if (r
->color_profiles
) {
9561 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9569 if (r
->core_driver_dependencies
) {
9570 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9573 return NDR_ERR_SUCCESS
;
9576 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9578 uint32_t _ptr_driver_name
;
9579 TALLOC_CTX
*_mem_save_driver_name_0
;
9580 uint32_t _ptr_architecture
;
9581 TALLOC_CTX
*_mem_save_architecture_0
;
9582 uint32_t _ptr_driver_path
;
9583 TALLOC_CTX
*_mem_save_driver_path_0
;
9584 uint32_t _ptr_data_file
;
9585 TALLOC_CTX
*_mem_save_data_file_0
;
9586 uint32_t _ptr_config_file
;
9587 TALLOC_CTX
*_mem_save_config_file_0
;
9588 uint32_t _ptr_help_file
;
9589 TALLOC_CTX
*_mem_save_help_file_0
;
9590 uint32_t _ptr_monitor_name
;
9591 TALLOC_CTX
*_mem_save_monitor_name_0
;
9592 uint32_t _ptr_default_datatype
;
9593 TALLOC_CTX
*_mem_save_default_datatype_0
;
9594 uint32_t _ptr_dependent_files
;
9595 TALLOC_CTX
*_mem_save_dependent_files_0
;
9596 uint32_t _ptr_previous_names
;
9597 TALLOC_CTX
*_mem_save_previous_names_0
;
9598 uint32_t _ptr_manufacturer_name
;
9599 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9600 uint32_t _ptr_manufacturer_url
;
9601 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9602 uint32_t _ptr_hardware_id
;
9603 TALLOC_CTX
*_mem_save_hardware_id_0
;
9604 uint32_t _ptr_provider
;
9605 TALLOC_CTX
*_mem_save_provider_0
;
9606 uint32_t _ptr_print_processor
;
9607 TALLOC_CTX
*_mem_save_print_processor_0
;
9608 uint32_t _ptr_vendor_setup
;
9609 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9610 uint32_t _ptr_color_profiles
;
9611 TALLOC_CTX
*_mem_save_color_profiles_0
;
9612 uint32_t _ptr_inf_path
;
9613 TALLOC_CTX
*_mem_save_inf_path_0
;
9614 uint32_t _ptr_core_driver_dependencies
;
9615 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9616 if (ndr_flags
& NDR_SCALARS
) {
9617 NDR_CHECK(ndr_pull_align(ndr
, 8));
9618 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9620 if (_ptr_driver_name
) {
9621 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9623 r
->driver_name
= NULL
;
9625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9626 if (_ptr_architecture
) {
9627 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9629 r
->architecture
= NULL
;
9631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9632 if (_ptr_driver_path
) {
9633 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9635 r
->driver_path
= NULL
;
9637 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9638 if (_ptr_data_file
) {
9639 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9641 r
->data_file
= NULL
;
9643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9644 if (_ptr_config_file
) {
9645 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9647 r
->config_file
= NULL
;
9649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9650 if (_ptr_help_file
) {
9651 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9653 r
->help_file
= NULL
;
9655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9656 if (_ptr_monitor_name
) {
9657 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9659 r
->monitor_name
= NULL
;
9661 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9662 if (_ptr_default_datatype
) {
9663 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9665 r
->default_datatype
= NULL
;
9667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9669 if (_ptr_dependent_files
) {
9670 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9672 r
->dependent_files
= NULL
;
9674 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9676 if (_ptr_previous_names
) {
9677 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9679 r
->previous_names
= NULL
;
9681 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9682 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9684 if (_ptr_manufacturer_name
) {
9685 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9687 r
->manufacturer_name
= NULL
;
9689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9690 if (_ptr_manufacturer_url
) {
9691 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9693 r
->manufacturer_url
= NULL
;
9695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9696 if (_ptr_hardware_id
) {
9697 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9699 r
->hardware_id
= NULL
;
9701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9702 if (_ptr_provider
) {
9703 NDR_PULL_ALLOC(ndr
, r
->provider
);
9707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9708 if (_ptr_print_processor
) {
9709 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9711 r
->print_processor
= NULL
;
9713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9714 if (_ptr_vendor_setup
) {
9715 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9717 r
->vendor_setup
= NULL
;
9719 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9721 if (_ptr_color_profiles
) {
9722 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9724 r
->color_profiles
= NULL
;
9726 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9727 if (_ptr_inf_path
) {
9728 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9734 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9735 if (_ptr_core_driver_dependencies
) {
9736 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9738 r
->core_driver_dependencies
= NULL
;
9740 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9741 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9742 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9744 if (ndr_flags
& NDR_BUFFERS
) {
9745 if (r
->driver_name
) {
9746 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9747 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9748 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9749 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9750 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9751 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
));
9753 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9754 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9757 if (r
->architecture
) {
9758 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9759 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9760 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9761 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9762 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9763 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
));
9765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9766 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9769 if (r
->driver_path
) {
9770 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9771 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9772 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9773 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9774 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9775 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
));
9777 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9778 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9782 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9783 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9784 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9785 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9786 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9787 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
));
9789 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9790 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9793 if (r
->config_file
) {
9794 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9795 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9796 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9797 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9798 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9799 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
));
9801 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9802 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9806 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9807 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9808 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9809 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9810 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9811 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
));
9813 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9814 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9817 if (r
->monitor_name
) {
9818 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9819 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9820 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9821 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9822 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9823 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
));
9825 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9826 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9829 if (r
->default_datatype
) {
9830 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9831 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9832 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9833 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9834 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9835 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
));
9837 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9838 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9839 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9841 if (r
->dependent_files
) {
9842 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9843 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9844 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9845 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9847 if (r
->previous_names
) {
9848 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9849 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9850 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9851 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9853 if (r
->manufacturer_name
) {
9854 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9855 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9856 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9857 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9858 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9859 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
));
9861 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9862 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9865 if (r
->manufacturer_url
) {
9866 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9867 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9868 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9869 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9870 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9871 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
));
9873 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9874 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9877 if (r
->hardware_id
) {
9878 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9879 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9880 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9881 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9882 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9883 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
));
9885 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9886 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9890 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9891 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9892 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9893 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9894 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9895 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
));
9897 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9898 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9901 if (r
->print_processor
) {
9902 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9903 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9906 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9907 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
));
9909 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9910 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9913 if (r
->vendor_setup
) {
9914 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9915 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9916 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9917 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9918 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9919 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
));
9921 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9922 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9923 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9925 if (r
->color_profiles
) {
9926 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9927 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9928 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9932 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9933 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9934 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9935 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9936 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9937 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
));
9939 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9940 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9943 if (r
->core_driver_dependencies
) {
9944 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9945 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9946 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9950 return NDR_ERR_SUCCESS
;
9953 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9955 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9957 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9958 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9960 if (r
->driver_name
) {
9961 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9964 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9966 if (r
->architecture
) {
9967 ndr_print_string(ndr
, "architecture", r
->architecture
);
9970 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9972 if (r
->driver_path
) {
9973 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9976 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9979 ndr_print_string(ndr
, "data_file", r
->data_file
);
9982 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9984 if (r
->config_file
) {
9985 ndr_print_string(ndr
, "config_file", r
->config_file
);
9988 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9991 ndr_print_string(ndr
, "help_file", r
->help_file
);
9994 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9996 if (r
->monitor_name
) {
9997 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10000 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10002 if (r
->default_datatype
) {
10003 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10006 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
);
10007 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10009 if (r
->dependent_files
) {
10010 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10013 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
);
10014 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10016 if (r
->previous_names
) {
10017 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10020 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10021 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10022 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10024 if (r
->manufacturer_name
) {
10025 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10028 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10030 if (r
->manufacturer_url
) {
10031 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10034 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10036 if (r
->hardware_id
) {
10037 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10040 ndr_print_ptr(ndr
, "provider", r
->provider
);
10043 ndr_print_string(ndr
, "provider", r
->provider
);
10046 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10048 if (r
->print_processor
) {
10049 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10052 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10054 if (r
->vendor_setup
) {
10055 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10058 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
);
10059 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10061 if (r
->color_profiles
) {
10062 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10065 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10068 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10071 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10072 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
);
10073 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10075 if (r
->core_driver_dependencies
) {
10076 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10079 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10080 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10084 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10086 if (ndr_flags
& NDR_SCALARS
) {
10087 int level
= ndr_push_get_switch_value(ndr
, r
);
10088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10089 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10104 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10116 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10119 if (ndr_flags
& NDR_BUFFERS
) {
10120 int level
= ndr_push_get_switch_value(ndr
, r
);
10124 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10130 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10136 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10142 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10148 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10154 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10159 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10162 return NDR_ERR_SUCCESS
;
10165 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10169 TALLOC_CTX
*_mem_save_info1_0
;
10170 TALLOC_CTX
*_mem_save_info2_0
;
10171 TALLOC_CTX
*_mem_save_info3_0
;
10172 TALLOC_CTX
*_mem_save_info4_0
;
10173 TALLOC_CTX
*_mem_save_info6_0
;
10174 TALLOC_CTX
*_mem_save_info8_0
;
10175 level
= ndr_pull_get_switch_value(ndr
, r
);
10176 if (ndr_flags
& NDR_SCALARS
) {
10177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10178 if (_level
!= level
) {
10179 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10181 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10184 uint32_t _ptr_info1
;
10185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10187 NDR_PULL_ALLOC(ndr
, r
->info1
);
10194 uint32_t _ptr_info2
;
10195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10197 NDR_PULL_ALLOC(ndr
, r
->info2
);
10204 uint32_t _ptr_info3
;
10205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10207 NDR_PULL_ALLOC(ndr
, r
->info3
);
10214 uint32_t _ptr_info4
;
10215 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10217 NDR_PULL_ALLOC(ndr
, r
->info4
);
10224 uint32_t _ptr_info6
;
10225 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10227 NDR_PULL_ALLOC(ndr
, r
->info6
);
10234 uint32_t _ptr_info8
;
10235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10237 NDR_PULL_ALLOC(ndr
, r
->info8
);
10244 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10247 if (ndr_flags
& NDR_BUFFERS
) {
10251 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10252 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10253 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10254 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10260 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10261 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10262 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10269 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10270 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10271 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10278 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10279 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10280 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10287 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10288 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10289 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10296 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10297 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10298 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10304 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10307 return NDR_ERR_SUCCESS
;
10310 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10313 level
= ndr_print_get_switch_value(ndr
, r
);
10314 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10317 ndr_print_ptr(ndr
, "info1", r
->info1
);
10320 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10326 ndr_print_ptr(ndr
, "info2", r
->info2
);
10329 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10335 ndr_print_ptr(ndr
, "info3", r
->info3
);
10338 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10344 ndr_print_ptr(ndr
, "info4", r
->info4
);
10347 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10353 ndr_print_ptr(ndr
, "info6", r
->info6
);
10356 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10362 ndr_print_ptr(ndr
, "info8", r
->info8
);
10365 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10371 ndr_print_bad_level(ndr
, name
, level
);
10375 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10377 if (ndr_flags
& NDR_SCALARS
) {
10378 NDR_CHECK(ndr_push_align(ndr
, 5));
10379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10380 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10381 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10382 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10384 if (ndr_flags
& NDR_BUFFERS
) {
10385 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10387 return NDR_ERR_SUCCESS
;
10390 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10392 if (ndr_flags
& NDR_SCALARS
) {
10393 NDR_CHECK(ndr_pull_align(ndr
, 5));
10394 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10395 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10396 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10397 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10399 if (ndr_flags
& NDR_BUFFERS
) {
10400 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10402 return NDR_ERR_SUCCESS
;
10405 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10407 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10409 ndr_print_uint32(ndr
, "level", r
->level
);
10410 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10411 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10415 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10417 if (ndr_flags
& NDR_SCALARS
) {
10418 NDR_CHECK(ndr_push_align(ndr
, 5));
10420 uint32_t _flags_save_string
= ndr
->flags
;
10421 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10422 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10423 ndr
->flags
= _flags_save_string
;
10425 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10427 if (ndr_flags
& NDR_BUFFERS
) {
10429 uint32_t _flags_save_string
= ndr
->flags
;
10430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10431 if (r
->driver_name
) {
10432 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10433 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10435 ndr
->flags
= _flags_save_string
;
10438 return NDR_ERR_SUCCESS
;
10441 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10443 uint32_t _ptr_driver_name
;
10444 TALLOC_CTX
*_mem_save_driver_name_0
;
10445 if (ndr_flags
& NDR_SCALARS
) {
10446 NDR_CHECK(ndr_pull_align(ndr
, 5));
10448 uint32_t _flags_save_string
= ndr
->flags
;
10449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10451 if (_ptr_driver_name
) {
10452 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10453 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10455 r
->driver_name
= NULL
;
10457 ndr
->flags
= _flags_save_string
;
10459 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10461 if (ndr_flags
& NDR_BUFFERS
) {
10463 uint32_t _flags_save_string
= ndr
->flags
;
10464 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10465 if (r
->driver_name
) {
10466 uint32_t _relative_save_offset
;
10467 _relative_save_offset
= ndr
->offset
;
10468 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10469 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10470 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10471 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10473 ndr
->offset
= _relative_save_offset
;
10475 ndr
->flags
= _flags_save_string
;
10478 return NDR_ERR_SUCCESS
;
10481 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10483 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
10485 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10487 if (r
->driver_name
) {
10488 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10494 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10496 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
10499 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
10501 if (ndr_flags
& NDR_SCALARS
) {
10502 NDR_CHECK(ndr_push_align(ndr
, 5));
10503 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10505 uint32_t _flags_save_string
= ndr
->flags
;
10506 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10507 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10508 ndr
->flags
= _flags_save_string
;
10511 uint32_t _flags_save_string
= ndr
->flags
;
10512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10513 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10514 ndr
->flags
= _flags_save_string
;
10517 uint32_t _flags_save_string
= ndr
->flags
;
10518 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10519 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10520 ndr
->flags
= _flags_save_string
;
10523 uint32_t _flags_save_string
= ndr
->flags
;
10524 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10525 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10526 ndr
->flags
= _flags_save_string
;
10529 uint32_t _flags_save_string
= ndr
->flags
;
10530 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10531 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10532 ndr
->flags
= _flags_save_string
;
10534 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10536 if (ndr_flags
& NDR_BUFFERS
) {
10538 uint32_t _flags_save_string
= ndr
->flags
;
10539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10540 if (r
->driver_name
) {
10541 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10542 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10544 ndr
->flags
= _flags_save_string
;
10547 uint32_t _flags_save_string
= ndr
->flags
;
10548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10549 if (r
->architecture
) {
10550 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10551 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10553 ndr
->flags
= _flags_save_string
;
10556 uint32_t _flags_save_string
= ndr
->flags
;
10557 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10558 if (r
->driver_path
) {
10559 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10560 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10562 ndr
->flags
= _flags_save_string
;
10565 uint32_t _flags_save_string
= ndr
->flags
;
10566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10567 if (r
->data_file
) {
10568 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10569 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10571 ndr
->flags
= _flags_save_string
;
10574 uint32_t _flags_save_string
= ndr
->flags
;
10575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10576 if (r
->config_file
) {
10577 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10578 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10580 ndr
->flags
= _flags_save_string
;
10583 return NDR_ERR_SUCCESS
;
10586 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10588 uint32_t _ptr_driver_name
;
10589 TALLOC_CTX
*_mem_save_driver_name_0
;
10590 uint32_t _ptr_architecture
;
10591 TALLOC_CTX
*_mem_save_architecture_0
;
10592 uint32_t _ptr_driver_path
;
10593 TALLOC_CTX
*_mem_save_driver_path_0
;
10594 uint32_t _ptr_data_file
;
10595 TALLOC_CTX
*_mem_save_data_file_0
;
10596 uint32_t _ptr_config_file
;
10597 TALLOC_CTX
*_mem_save_config_file_0
;
10598 if (ndr_flags
& NDR_SCALARS
) {
10599 NDR_CHECK(ndr_pull_align(ndr
, 5));
10600 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10602 uint32_t _flags_save_string
= ndr
->flags
;
10603 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10605 if (_ptr_driver_name
) {
10606 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10607 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10609 r
->driver_name
= NULL
;
10611 ndr
->flags
= _flags_save_string
;
10614 uint32_t _flags_save_string
= ndr
->flags
;
10615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10616 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10617 if (_ptr_architecture
) {
10618 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10619 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10621 r
->architecture
= NULL
;
10623 ndr
->flags
= _flags_save_string
;
10626 uint32_t _flags_save_string
= ndr
->flags
;
10627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10628 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10629 if (_ptr_driver_path
) {
10630 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10631 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10633 r
->driver_path
= NULL
;
10635 ndr
->flags
= _flags_save_string
;
10638 uint32_t _flags_save_string
= ndr
->flags
;
10639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10641 if (_ptr_data_file
) {
10642 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10643 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10645 r
->data_file
= NULL
;
10647 ndr
->flags
= _flags_save_string
;
10650 uint32_t _flags_save_string
= ndr
->flags
;
10651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10653 if (_ptr_config_file
) {
10654 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10655 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10657 r
->config_file
= NULL
;
10659 ndr
->flags
= _flags_save_string
;
10661 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10663 if (ndr_flags
& NDR_BUFFERS
) {
10665 uint32_t _flags_save_string
= ndr
->flags
;
10666 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10667 if (r
->driver_name
) {
10668 uint32_t _relative_save_offset
;
10669 _relative_save_offset
= ndr
->offset
;
10670 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10671 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10672 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10673 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10675 ndr
->offset
= _relative_save_offset
;
10677 ndr
->flags
= _flags_save_string
;
10680 uint32_t _flags_save_string
= ndr
->flags
;
10681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10682 if (r
->architecture
) {
10683 uint32_t _relative_save_offset
;
10684 _relative_save_offset
= ndr
->offset
;
10685 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10686 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10687 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10688 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10690 ndr
->offset
= _relative_save_offset
;
10692 ndr
->flags
= _flags_save_string
;
10695 uint32_t _flags_save_string
= ndr
->flags
;
10696 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10697 if (r
->driver_path
) {
10698 uint32_t _relative_save_offset
;
10699 _relative_save_offset
= ndr
->offset
;
10700 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10701 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10702 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10703 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10705 ndr
->offset
= _relative_save_offset
;
10707 ndr
->flags
= _flags_save_string
;
10710 uint32_t _flags_save_string
= ndr
->flags
;
10711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10712 if (r
->data_file
) {
10713 uint32_t _relative_save_offset
;
10714 _relative_save_offset
= ndr
->offset
;
10715 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10716 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10717 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10718 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10720 ndr
->offset
= _relative_save_offset
;
10722 ndr
->flags
= _flags_save_string
;
10725 uint32_t _flags_save_string
= ndr
->flags
;
10726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10727 if (r
->config_file
) {
10728 uint32_t _relative_save_offset
;
10729 _relative_save_offset
= ndr
->offset
;
10730 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10731 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10732 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10733 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10735 ndr
->offset
= _relative_save_offset
;
10737 ndr
->flags
= _flags_save_string
;
10740 return NDR_ERR_SUCCESS
;
10743 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10745 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10747 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10748 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10750 if (r
->driver_name
) {
10751 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10754 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10756 if (r
->architecture
) {
10757 ndr_print_string(ndr
, "architecture", r
->architecture
);
10760 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10762 if (r
->driver_path
) {
10763 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10766 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10768 if (r
->data_file
) {
10769 ndr_print_string(ndr
, "data_file", r
->data_file
);
10772 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10774 if (r
->config_file
) {
10775 ndr_print_string(ndr
, "config_file", r
->config_file
);
10781 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10783 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10786 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10788 if (ndr_flags
& NDR_SCALARS
) {
10789 NDR_CHECK(ndr_push_align(ndr
, 5));
10790 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10792 uint32_t _flags_save_string
= ndr
->flags
;
10793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10794 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10795 ndr
->flags
= _flags_save_string
;
10798 uint32_t _flags_save_string
= ndr
->flags
;
10799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10800 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10801 ndr
->flags
= _flags_save_string
;
10804 uint32_t _flags_save_string
= ndr
->flags
;
10805 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10806 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10807 ndr
->flags
= _flags_save_string
;
10810 uint32_t _flags_save_string
= ndr
->flags
;
10811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10812 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10813 ndr
->flags
= _flags_save_string
;
10816 uint32_t _flags_save_string
= ndr
->flags
;
10817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10818 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10819 ndr
->flags
= _flags_save_string
;
10822 uint32_t _flags_save_string
= ndr
->flags
;
10823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10824 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10825 ndr
->flags
= _flags_save_string
;
10828 uint32_t _flags_save_string_array
= ndr
->flags
;
10829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10830 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10831 ndr
->flags
= _flags_save_string_array
;
10834 uint32_t _flags_save_string
= ndr
->flags
;
10835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10836 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10837 ndr
->flags
= _flags_save_string
;
10840 uint32_t _flags_save_string
= ndr
->flags
;
10841 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10842 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10843 ndr
->flags
= _flags_save_string
;
10845 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10847 if (ndr_flags
& NDR_BUFFERS
) {
10849 uint32_t _flags_save_string
= ndr
->flags
;
10850 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10851 if (r
->driver_name
) {
10852 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10853 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10855 ndr
->flags
= _flags_save_string
;
10858 uint32_t _flags_save_string
= ndr
->flags
;
10859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10860 if (r
->architecture
) {
10861 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10862 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10864 ndr
->flags
= _flags_save_string
;
10867 uint32_t _flags_save_string
= ndr
->flags
;
10868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10869 if (r
->driver_path
) {
10870 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10871 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10873 ndr
->flags
= _flags_save_string
;
10876 uint32_t _flags_save_string
= ndr
->flags
;
10877 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10878 if (r
->data_file
) {
10879 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10880 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10882 ndr
->flags
= _flags_save_string
;
10885 uint32_t _flags_save_string
= ndr
->flags
;
10886 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10887 if (r
->config_file
) {
10888 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10889 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10891 ndr
->flags
= _flags_save_string
;
10894 uint32_t _flags_save_string
= ndr
->flags
;
10895 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10896 if (r
->help_file
) {
10897 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10898 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10900 ndr
->flags
= _flags_save_string
;
10903 uint32_t _flags_save_string_array
= ndr
->flags
;
10904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10905 if (r
->dependent_files
) {
10906 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10907 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10909 ndr
->flags
= _flags_save_string_array
;
10912 uint32_t _flags_save_string
= ndr
->flags
;
10913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10914 if (r
->monitor_name
) {
10915 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10916 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10918 ndr
->flags
= _flags_save_string
;
10921 uint32_t _flags_save_string
= ndr
->flags
;
10922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10923 if (r
->default_datatype
) {
10924 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10925 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10927 ndr
->flags
= _flags_save_string
;
10930 return NDR_ERR_SUCCESS
;
10933 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10935 uint32_t _ptr_driver_name
;
10936 TALLOC_CTX
*_mem_save_driver_name_0
;
10937 uint32_t _ptr_architecture
;
10938 TALLOC_CTX
*_mem_save_architecture_0
;
10939 uint32_t _ptr_driver_path
;
10940 TALLOC_CTX
*_mem_save_driver_path_0
;
10941 uint32_t _ptr_data_file
;
10942 TALLOC_CTX
*_mem_save_data_file_0
;
10943 uint32_t _ptr_config_file
;
10944 TALLOC_CTX
*_mem_save_config_file_0
;
10945 uint32_t _ptr_help_file
;
10946 TALLOC_CTX
*_mem_save_help_file_0
;
10947 uint32_t _ptr_dependent_files
;
10948 TALLOC_CTX
*_mem_save_dependent_files_0
;
10949 uint32_t _ptr_monitor_name
;
10950 TALLOC_CTX
*_mem_save_monitor_name_0
;
10951 uint32_t _ptr_default_datatype
;
10952 TALLOC_CTX
*_mem_save_default_datatype_0
;
10953 if (ndr_flags
& NDR_SCALARS
) {
10954 NDR_CHECK(ndr_pull_align(ndr
, 5));
10955 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10957 uint32_t _flags_save_string
= ndr
->flags
;
10958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10960 if (_ptr_driver_name
) {
10961 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10964 r
->driver_name
= NULL
;
10966 ndr
->flags
= _flags_save_string
;
10969 uint32_t _flags_save_string
= ndr
->flags
;
10970 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10972 if (_ptr_architecture
) {
10973 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10974 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10976 r
->architecture
= NULL
;
10978 ndr
->flags
= _flags_save_string
;
10981 uint32_t _flags_save_string
= ndr
->flags
;
10982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10983 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10984 if (_ptr_driver_path
) {
10985 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10986 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10988 r
->driver_path
= NULL
;
10990 ndr
->flags
= _flags_save_string
;
10993 uint32_t _flags_save_string
= ndr
->flags
;
10994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10996 if (_ptr_data_file
) {
10997 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10998 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11000 r
->data_file
= NULL
;
11002 ndr
->flags
= _flags_save_string
;
11005 uint32_t _flags_save_string
= ndr
->flags
;
11006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11007 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11008 if (_ptr_config_file
) {
11009 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11010 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11012 r
->config_file
= NULL
;
11014 ndr
->flags
= _flags_save_string
;
11017 uint32_t _flags_save_string
= ndr
->flags
;
11018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11020 if (_ptr_help_file
) {
11021 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11022 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11024 r
->help_file
= NULL
;
11026 ndr
->flags
= _flags_save_string
;
11029 uint32_t _flags_save_string_array
= ndr
->flags
;
11030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11031 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11032 if (_ptr_dependent_files
) {
11033 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11034 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11036 r
->dependent_files
= NULL
;
11038 ndr
->flags
= _flags_save_string_array
;
11041 uint32_t _flags_save_string
= ndr
->flags
;
11042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11043 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11044 if (_ptr_monitor_name
) {
11045 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11046 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11048 r
->monitor_name
= NULL
;
11050 ndr
->flags
= _flags_save_string
;
11053 uint32_t _flags_save_string
= ndr
->flags
;
11054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11056 if (_ptr_default_datatype
) {
11057 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11058 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11060 r
->default_datatype
= NULL
;
11062 ndr
->flags
= _flags_save_string
;
11064 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11066 if (ndr_flags
& NDR_BUFFERS
) {
11068 uint32_t _flags_save_string
= ndr
->flags
;
11069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11070 if (r
->driver_name
) {
11071 uint32_t _relative_save_offset
;
11072 _relative_save_offset
= ndr
->offset
;
11073 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11074 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11075 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11076 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11078 ndr
->offset
= _relative_save_offset
;
11080 ndr
->flags
= _flags_save_string
;
11083 uint32_t _flags_save_string
= ndr
->flags
;
11084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11085 if (r
->architecture
) {
11086 uint32_t _relative_save_offset
;
11087 _relative_save_offset
= ndr
->offset
;
11088 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11089 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11090 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11091 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11093 ndr
->offset
= _relative_save_offset
;
11095 ndr
->flags
= _flags_save_string
;
11098 uint32_t _flags_save_string
= ndr
->flags
;
11099 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11100 if (r
->driver_path
) {
11101 uint32_t _relative_save_offset
;
11102 _relative_save_offset
= ndr
->offset
;
11103 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11104 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11105 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11106 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11107 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11108 ndr
->offset
= _relative_save_offset
;
11110 ndr
->flags
= _flags_save_string
;
11113 uint32_t _flags_save_string
= ndr
->flags
;
11114 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11115 if (r
->data_file
) {
11116 uint32_t _relative_save_offset
;
11117 _relative_save_offset
= ndr
->offset
;
11118 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11119 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11120 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11121 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11123 ndr
->offset
= _relative_save_offset
;
11125 ndr
->flags
= _flags_save_string
;
11128 uint32_t _flags_save_string
= ndr
->flags
;
11129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11130 if (r
->config_file
) {
11131 uint32_t _relative_save_offset
;
11132 _relative_save_offset
= ndr
->offset
;
11133 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11134 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11135 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11136 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11138 ndr
->offset
= _relative_save_offset
;
11140 ndr
->flags
= _flags_save_string
;
11143 uint32_t _flags_save_string
= ndr
->flags
;
11144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11145 if (r
->help_file
) {
11146 uint32_t _relative_save_offset
;
11147 _relative_save_offset
= ndr
->offset
;
11148 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11149 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11150 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11151 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11153 ndr
->offset
= _relative_save_offset
;
11155 ndr
->flags
= _flags_save_string
;
11158 uint32_t _flags_save_string_array
= ndr
->flags
;
11159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11160 if (r
->dependent_files
) {
11161 uint32_t _relative_save_offset
;
11162 _relative_save_offset
= ndr
->offset
;
11163 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11164 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11165 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11166 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11167 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11168 ndr
->offset
= _relative_save_offset
;
11170 ndr
->flags
= _flags_save_string_array
;
11173 uint32_t _flags_save_string
= ndr
->flags
;
11174 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11175 if (r
->monitor_name
) {
11176 uint32_t _relative_save_offset
;
11177 _relative_save_offset
= ndr
->offset
;
11178 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11179 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11180 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11181 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11183 ndr
->offset
= _relative_save_offset
;
11185 ndr
->flags
= _flags_save_string
;
11188 uint32_t _flags_save_string
= ndr
->flags
;
11189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11190 if (r
->default_datatype
) {
11191 uint32_t _relative_save_offset
;
11192 _relative_save_offset
= ndr
->offset
;
11193 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11194 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11195 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11196 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11198 ndr
->offset
= _relative_save_offset
;
11200 ndr
->flags
= _flags_save_string
;
11203 return NDR_ERR_SUCCESS
;
11206 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11208 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11210 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11211 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11213 if (r
->driver_name
) {
11214 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11217 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11219 if (r
->architecture
) {
11220 ndr_print_string(ndr
, "architecture", r
->architecture
);
11223 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11225 if (r
->driver_path
) {
11226 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11229 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11231 if (r
->data_file
) {
11232 ndr_print_string(ndr
, "data_file", r
->data_file
);
11235 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11237 if (r
->config_file
) {
11238 ndr_print_string(ndr
, "config_file", r
->config_file
);
11241 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11243 if (r
->help_file
) {
11244 ndr_print_string(ndr
, "help_file", r
->help_file
);
11247 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11249 if (r
->dependent_files
) {
11250 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11253 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11255 if (r
->monitor_name
) {
11256 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11259 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11261 if (r
->default_datatype
) {
11262 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11268 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11270 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11273 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11275 if (ndr_flags
& NDR_SCALARS
) {
11276 NDR_CHECK(ndr_push_align(ndr
, 5));
11277 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11279 uint32_t _flags_save_string
= ndr
->flags
;
11280 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11281 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11282 ndr
->flags
= _flags_save_string
;
11285 uint32_t _flags_save_string
= ndr
->flags
;
11286 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11287 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11288 ndr
->flags
= _flags_save_string
;
11291 uint32_t _flags_save_string
= ndr
->flags
;
11292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11293 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11294 ndr
->flags
= _flags_save_string
;
11297 uint32_t _flags_save_string
= ndr
->flags
;
11298 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11299 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11300 ndr
->flags
= _flags_save_string
;
11303 uint32_t _flags_save_string
= ndr
->flags
;
11304 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11305 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11306 ndr
->flags
= _flags_save_string
;
11309 uint32_t _flags_save_string
= ndr
->flags
;
11310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11311 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11312 ndr
->flags
= _flags_save_string
;
11315 uint32_t _flags_save_string_array
= ndr
->flags
;
11316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11317 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11318 ndr
->flags
= _flags_save_string_array
;
11321 uint32_t _flags_save_string
= ndr
->flags
;
11322 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11323 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11324 ndr
->flags
= _flags_save_string
;
11327 uint32_t _flags_save_string
= ndr
->flags
;
11328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11329 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11330 ndr
->flags
= _flags_save_string
;
11333 uint32_t _flags_save_string_array
= ndr
->flags
;
11334 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11335 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11336 ndr
->flags
= _flags_save_string_array
;
11338 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11340 if (ndr_flags
& NDR_BUFFERS
) {
11342 uint32_t _flags_save_string
= ndr
->flags
;
11343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11344 if (r
->driver_name
) {
11345 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11346 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11348 ndr
->flags
= _flags_save_string
;
11351 uint32_t _flags_save_string
= ndr
->flags
;
11352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11353 if (r
->architecture
) {
11354 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11355 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11357 ndr
->flags
= _flags_save_string
;
11360 uint32_t _flags_save_string
= ndr
->flags
;
11361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11362 if (r
->driver_path
) {
11363 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11364 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11366 ndr
->flags
= _flags_save_string
;
11369 uint32_t _flags_save_string
= ndr
->flags
;
11370 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11371 if (r
->data_file
) {
11372 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11373 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11375 ndr
->flags
= _flags_save_string
;
11378 uint32_t _flags_save_string
= ndr
->flags
;
11379 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11380 if (r
->config_file
) {
11381 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11382 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11384 ndr
->flags
= _flags_save_string
;
11387 uint32_t _flags_save_string
= ndr
->flags
;
11388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11389 if (r
->help_file
) {
11390 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11391 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11393 ndr
->flags
= _flags_save_string
;
11396 uint32_t _flags_save_string_array
= ndr
->flags
;
11397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11398 if (r
->dependent_files
) {
11399 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11400 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11402 ndr
->flags
= _flags_save_string_array
;
11405 uint32_t _flags_save_string
= ndr
->flags
;
11406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11407 if (r
->monitor_name
) {
11408 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11409 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11411 ndr
->flags
= _flags_save_string
;
11414 uint32_t _flags_save_string
= ndr
->flags
;
11415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11416 if (r
->default_datatype
) {
11417 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11418 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11420 ndr
->flags
= _flags_save_string
;
11423 uint32_t _flags_save_string_array
= ndr
->flags
;
11424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11425 if (r
->previous_names
) {
11426 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11427 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11429 ndr
->flags
= _flags_save_string_array
;
11432 return NDR_ERR_SUCCESS
;
11435 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
11437 uint32_t _ptr_driver_name
;
11438 TALLOC_CTX
*_mem_save_driver_name_0
;
11439 uint32_t _ptr_architecture
;
11440 TALLOC_CTX
*_mem_save_architecture_0
;
11441 uint32_t _ptr_driver_path
;
11442 TALLOC_CTX
*_mem_save_driver_path_0
;
11443 uint32_t _ptr_data_file
;
11444 TALLOC_CTX
*_mem_save_data_file_0
;
11445 uint32_t _ptr_config_file
;
11446 TALLOC_CTX
*_mem_save_config_file_0
;
11447 uint32_t _ptr_help_file
;
11448 TALLOC_CTX
*_mem_save_help_file_0
;
11449 uint32_t _ptr_dependent_files
;
11450 TALLOC_CTX
*_mem_save_dependent_files_0
;
11451 uint32_t _ptr_monitor_name
;
11452 TALLOC_CTX
*_mem_save_monitor_name_0
;
11453 uint32_t _ptr_default_datatype
;
11454 TALLOC_CTX
*_mem_save_default_datatype_0
;
11455 uint32_t _ptr_previous_names
;
11456 TALLOC_CTX
*_mem_save_previous_names_0
;
11457 if (ndr_flags
& NDR_SCALARS
) {
11458 NDR_CHECK(ndr_pull_align(ndr
, 5));
11459 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11461 uint32_t _flags_save_string
= ndr
->flags
;
11462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11464 if (_ptr_driver_name
) {
11465 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11466 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11468 r
->driver_name
= NULL
;
11470 ndr
->flags
= _flags_save_string
;
11473 uint32_t _flags_save_string
= ndr
->flags
;
11474 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11475 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11476 if (_ptr_architecture
) {
11477 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11478 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11480 r
->architecture
= NULL
;
11482 ndr
->flags
= _flags_save_string
;
11485 uint32_t _flags_save_string
= ndr
->flags
;
11486 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11487 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11488 if (_ptr_driver_path
) {
11489 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11490 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11492 r
->driver_path
= NULL
;
11494 ndr
->flags
= _flags_save_string
;
11497 uint32_t _flags_save_string
= ndr
->flags
;
11498 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11500 if (_ptr_data_file
) {
11501 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11502 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11504 r
->data_file
= NULL
;
11506 ndr
->flags
= _flags_save_string
;
11509 uint32_t _flags_save_string
= ndr
->flags
;
11510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11511 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11512 if (_ptr_config_file
) {
11513 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11514 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11516 r
->config_file
= NULL
;
11518 ndr
->flags
= _flags_save_string
;
11521 uint32_t _flags_save_string
= ndr
->flags
;
11522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11524 if (_ptr_help_file
) {
11525 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11526 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11528 r
->help_file
= NULL
;
11530 ndr
->flags
= _flags_save_string
;
11533 uint32_t _flags_save_string_array
= ndr
->flags
;
11534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11536 if (_ptr_dependent_files
) {
11537 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11538 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11540 r
->dependent_files
= NULL
;
11542 ndr
->flags
= _flags_save_string_array
;
11545 uint32_t _flags_save_string
= ndr
->flags
;
11546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11548 if (_ptr_monitor_name
) {
11549 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11550 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11552 r
->monitor_name
= NULL
;
11554 ndr
->flags
= _flags_save_string
;
11557 uint32_t _flags_save_string
= ndr
->flags
;
11558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11560 if (_ptr_default_datatype
) {
11561 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11562 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11564 r
->default_datatype
= NULL
;
11566 ndr
->flags
= _flags_save_string
;
11569 uint32_t _flags_save_string_array
= ndr
->flags
;
11570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11572 if (_ptr_previous_names
) {
11573 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11574 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11576 r
->previous_names
= NULL
;
11578 ndr
->flags
= _flags_save_string_array
;
11580 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11582 if (ndr_flags
& NDR_BUFFERS
) {
11584 uint32_t _flags_save_string
= ndr
->flags
;
11585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11586 if (r
->driver_name
) {
11587 uint32_t _relative_save_offset
;
11588 _relative_save_offset
= ndr
->offset
;
11589 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11590 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11591 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11592 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11594 ndr
->offset
= _relative_save_offset
;
11596 ndr
->flags
= _flags_save_string
;
11599 uint32_t _flags_save_string
= ndr
->flags
;
11600 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11601 if (r
->architecture
) {
11602 uint32_t _relative_save_offset
;
11603 _relative_save_offset
= ndr
->offset
;
11604 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11605 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11606 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11607 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11609 ndr
->offset
= _relative_save_offset
;
11611 ndr
->flags
= _flags_save_string
;
11614 uint32_t _flags_save_string
= ndr
->flags
;
11615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11616 if (r
->driver_path
) {
11617 uint32_t _relative_save_offset
;
11618 _relative_save_offset
= ndr
->offset
;
11619 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11620 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11621 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11622 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11623 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11624 ndr
->offset
= _relative_save_offset
;
11626 ndr
->flags
= _flags_save_string
;
11629 uint32_t _flags_save_string
= ndr
->flags
;
11630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11631 if (r
->data_file
) {
11632 uint32_t _relative_save_offset
;
11633 _relative_save_offset
= ndr
->offset
;
11634 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11635 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11636 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11637 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11639 ndr
->offset
= _relative_save_offset
;
11641 ndr
->flags
= _flags_save_string
;
11644 uint32_t _flags_save_string
= ndr
->flags
;
11645 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11646 if (r
->config_file
) {
11647 uint32_t _relative_save_offset
;
11648 _relative_save_offset
= ndr
->offset
;
11649 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11650 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11651 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11652 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11654 ndr
->offset
= _relative_save_offset
;
11656 ndr
->flags
= _flags_save_string
;
11659 uint32_t _flags_save_string
= ndr
->flags
;
11660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11661 if (r
->help_file
) {
11662 uint32_t _relative_save_offset
;
11663 _relative_save_offset
= ndr
->offset
;
11664 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11665 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11666 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11667 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11669 ndr
->offset
= _relative_save_offset
;
11671 ndr
->flags
= _flags_save_string
;
11674 uint32_t _flags_save_string_array
= ndr
->flags
;
11675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11676 if (r
->dependent_files
) {
11677 uint32_t _relative_save_offset
;
11678 _relative_save_offset
= ndr
->offset
;
11679 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11680 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11681 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11682 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11684 ndr
->offset
= _relative_save_offset
;
11686 ndr
->flags
= _flags_save_string_array
;
11689 uint32_t _flags_save_string
= ndr
->flags
;
11690 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11691 if (r
->monitor_name
) {
11692 uint32_t _relative_save_offset
;
11693 _relative_save_offset
= ndr
->offset
;
11694 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11695 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11696 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11697 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11699 ndr
->offset
= _relative_save_offset
;
11701 ndr
->flags
= _flags_save_string
;
11704 uint32_t _flags_save_string
= ndr
->flags
;
11705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11706 if (r
->default_datatype
) {
11707 uint32_t _relative_save_offset
;
11708 _relative_save_offset
= ndr
->offset
;
11709 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11710 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11711 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11712 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11714 ndr
->offset
= _relative_save_offset
;
11716 ndr
->flags
= _flags_save_string
;
11719 uint32_t _flags_save_string_array
= ndr
->flags
;
11720 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11721 if (r
->previous_names
) {
11722 uint32_t _relative_save_offset
;
11723 _relative_save_offset
= ndr
->offset
;
11724 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11725 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11726 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11727 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11729 ndr
->offset
= _relative_save_offset
;
11731 ndr
->flags
= _flags_save_string_array
;
11734 return NDR_ERR_SUCCESS
;
11737 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11739 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11741 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11742 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11744 if (r
->driver_name
) {
11745 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11748 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11750 if (r
->architecture
) {
11751 ndr_print_string(ndr
, "architecture", r
->architecture
);
11754 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11756 if (r
->driver_path
) {
11757 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11760 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11762 if (r
->data_file
) {
11763 ndr_print_string(ndr
, "data_file", r
->data_file
);
11766 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11768 if (r
->config_file
) {
11769 ndr_print_string(ndr
, "config_file", r
->config_file
);
11772 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11774 if (r
->help_file
) {
11775 ndr_print_string(ndr
, "help_file", r
->help_file
);
11778 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11780 if (r
->dependent_files
) {
11781 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11784 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11786 if (r
->monitor_name
) {
11787 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11790 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11792 if (r
->default_datatype
) {
11793 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11796 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11798 if (r
->previous_names
) {
11799 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11805 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11807 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11810 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11812 if (ndr_flags
& NDR_SCALARS
) {
11813 NDR_CHECK(ndr_push_align(ndr
, 5));
11814 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11816 uint32_t _flags_save_string
= ndr
->flags
;
11817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11818 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11819 ndr
->flags
= _flags_save_string
;
11822 uint32_t _flags_save_string
= ndr
->flags
;
11823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11824 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11825 ndr
->flags
= _flags_save_string
;
11828 uint32_t _flags_save_string
= ndr
->flags
;
11829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11830 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11831 ndr
->flags
= _flags_save_string
;
11834 uint32_t _flags_save_string
= ndr
->flags
;
11835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11836 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11837 ndr
->flags
= _flags_save_string
;
11840 uint32_t _flags_save_string
= ndr
->flags
;
11841 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11842 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11843 ndr
->flags
= _flags_save_string
;
11845 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11848 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11850 if (ndr_flags
& NDR_BUFFERS
) {
11852 uint32_t _flags_save_string
= ndr
->flags
;
11853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11854 if (r
->driver_name
) {
11855 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11856 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11858 ndr
->flags
= _flags_save_string
;
11861 uint32_t _flags_save_string
= ndr
->flags
;
11862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11863 if (r
->architecture
) {
11864 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11865 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11867 ndr
->flags
= _flags_save_string
;
11870 uint32_t _flags_save_string
= ndr
->flags
;
11871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11872 if (r
->driver_path
) {
11873 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11874 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11876 ndr
->flags
= _flags_save_string
;
11879 uint32_t _flags_save_string
= ndr
->flags
;
11880 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11881 if (r
->data_file
) {
11882 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11883 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11885 ndr
->flags
= _flags_save_string
;
11888 uint32_t _flags_save_string
= ndr
->flags
;
11889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11890 if (r
->config_file
) {
11891 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11892 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11894 ndr
->flags
= _flags_save_string
;
11897 return NDR_ERR_SUCCESS
;
11900 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11902 uint32_t _ptr_driver_name
;
11903 TALLOC_CTX
*_mem_save_driver_name_0
;
11904 uint32_t _ptr_architecture
;
11905 TALLOC_CTX
*_mem_save_architecture_0
;
11906 uint32_t _ptr_driver_path
;
11907 TALLOC_CTX
*_mem_save_driver_path_0
;
11908 uint32_t _ptr_data_file
;
11909 TALLOC_CTX
*_mem_save_data_file_0
;
11910 uint32_t _ptr_config_file
;
11911 TALLOC_CTX
*_mem_save_config_file_0
;
11912 if (ndr_flags
& NDR_SCALARS
) {
11913 NDR_CHECK(ndr_pull_align(ndr
, 5));
11914 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11916 uint32_t _flags_save_string
= ndr
->flags
;
11917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11918 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11919 if (_ptr_driver_name
) {
11920 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11921 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11923 r
->driver_name
= NULL
;
11925 ndr
->flags
= _flags_save_string
;
11928 uint32_t _flags_save_string
= ndr
->flags
;
11929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11930 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11931 if (_ptr_architecture
) {
11932 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11933 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11935 r
->architecture
= NULL
;
11937 ndr
->flags
= _flags_save_string
;
11940 uint32_t _flags_save_string
= ndr
->flags
;
11941 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11942 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11943 if (_ptr_driver_path
) {
11944 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11945 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11947 r
->driver_path
= NULL
;
11949 ndr
->flags
= _flags_save_string
;
11952 uint32_t _flags_save_string
= ndr
->flags
;
11953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11954 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11955 if (_ptr_data_file
) {
11956 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11957 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11959 r
->data_file
= NULL
;
11961 ndr
->flags
= _flags_save_string
;
11964 uint32_t _flags_save_string
= ndr
->flags
;
11965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11966 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11967 if (_ptr_config_file
) {
11968 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11969 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11971 r
->config_file
= NULL
;
11973 ndr
->flags
= _flags_save_string
;
11975 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11978 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11980 if (ndr_flags
& NDR_BUFFERS
) {
11982 uint32_t _flags_save_string
= ndr
->flags
;
11983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11984 if (r
->driver_name
) {
11985 uint32_t _relative_save_offset
;
11986 _relative_save_offset
= ndr
->offset
;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11988 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11989 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11990 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11992 ndr
->offset
= _relative_save_offset
;
11994 ndr
->flags
= _flags_save_string
;
11997 uint32_t _flags_save_string
= ndr
->flags
;
11998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11999 if (r
->architecture
) {
12000 uint32_t _relative_save_offset
;
12001 _relative_save_offset
= ndr
->offset
;
12002 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12003 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12004 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12005 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12007 ndr
->offset
= _relative_save_offset
;
12009 ndr
->flags
= _flags_save_string
;
12012 uint32_t _flags_save_string
= ndr
->flags
;
12013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12014 if (r
->driver_path
) {
12015 uint32_t _relative_save_offset
;
12016 _relative_save_offset
= ndr
->offset
;
12017 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12018 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12019 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12020 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12022 ndr
->offset
= _relative_save_offset
;
12024 ndr
->flags
= _flags_save_string
;
12027 uint32_t _flags_save_string
= ndr
->flags
;
12028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12029 if (r
->data_file
) {
12030 uint32_t _relative_save_offset
;
12031 _relative_save_offset
= ndr
->offset
;
12032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12033 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12034 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12037 ndr
->offset
= _relative_save_offset
;
12039 ndr
->flags
= _flags_save_string
;
12042 uint32_t _flags_save_string
= ndr
->flags
;
12043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12044 if (r
->config_file
) {
12045 uint32_t _relative_save_offset
;
12046 _relative_save_offset
= ndr
->offset
;
12047 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12048 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12049 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12050 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12052 ndr
->offset
= _relative_save_offset
;
12054 ndr
->flags
= _flags_save_string
;
12057 return NDR_ERR_SUCCESS
;
12060 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12062 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12064 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12065 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12067 if (r
->driver_name
) {
12068 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12071 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12073 if (r
->architecture
) {
12074 ndr_print_string(ndr
, "architecture", r
->architecture
);
12077 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12079 if (r
->driver_path
) {
12080 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12083 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12085 if (r
->data_file
) {
12086 ndr_print_string(ndr
, "data_file", r
->data_file
);
12089 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12091 if (r
->config_file
) {
12092 ndr_print_string(ndr
, "config_file", r
->config_file
);
12095 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12096 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12097 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12101 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12103 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12106 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12108 if (ndr_flags
& NDR_SCALARS
) {
12109 NDR_CHECK(ndr_push_align(ndr
, 8));
12110 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12112 uint32_t _flags_save_string
= ndr
->flags
;
12113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12114 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12115 ndr
->flags
= _flags_save_string
;
12118 uint32_t _flags_save_string
= ndr
->flags
;
12119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12120 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12121 ndr
->flags
= _flags_save_string
;
12124 uint32_t _flags_save_string
= ndr
->flags
;
12125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12126 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12127 ndr
->flags
= _flags_save_string
;
12130 uint32_t _flags_save_string
= ndr
->flags
;
12131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12132 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12133 ndr
->flags
= _flags_save_string
;
12136 uint32_t _flags_save_string
= ndr
->flags
;
12137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12138 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12139 ndr
->flags
= _flags_save_string
;
12142 uint32_t _flags_save_string
= ndr
->flags
;
12143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12144 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12145 ndr
->flags
= _flags_save_string
;
12148 uint32_t _flags_save_string_array
= ndr
->flags
;
12149 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12150 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12151 ndr
->flags
= _flags_save_string_array
;
12154 uint32_t _flags_save_string
= ndr
->flags
;
12155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12156 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12157 ndr
->flags
= _flags_save_string
;
12160 uint32_t _flags_save_string
= ndr
->flags
;
12161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12162 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12163 ndr
->flags
= _flags_save_string
;
12166 uint32_t _flags_save_string_array
= ndr
->flags
;
12167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12168 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12169 ndr
->flags
= _flags_save_string_array
;
12171 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12172 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12174 uint32_t _flags_save_string
= ndr
->flags
;
12175 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12176 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12177 ndr
->flags
= _flags_save_string
;
12180 uint32_t _flags_save_string
= ndr
->flags
;
12181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12182 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12183 ndr
->flags
= _flags_save_string
;
12186 uint32_t _flags_save_string
= ndr
->flags
;
12187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12188 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12189 ndr
->flags
= _flags_save_string
;
12192 uint32_t _flags_save_string
= ndr
->flags
;
12193 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12194 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12195 ndr
->flags
= _flags_save_string
;
12197 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12199 if (ndr_flags
& NDR_BUFFERS
) {
12201 uint32_t _flags_save_string
= ndr
->flags
;
12202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12203 if (r
->driver_name
) {
12204 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12205 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12207 ndr
->flags
= _flags_save_string
;
12210 uint32_t _flags_save_string
= ndr
->flags
;
12211 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12212 if (r
->architecture
) {
12213 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12214 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12216 ndr
->flags
= _flags_save_string
;
12219 uint32_t _flags_save_string
= ndr
->flags
;
12220 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12221 if (r
->driver_path
) {
12222 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12223 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12225 ndr
->flags
= _flags_save_string
;
12228 uint32_t _flags_save_string
= ndr
->flags
;
12229 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12230 if (r
->data_file
) {
12231 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12232 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12234 ndr
->flags
= _flags_save_string
;
12237 uint32_t _flags_save_string
= ndr
->flags
;
12238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12239 if (r
->config_file
) {
12240 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12241 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12243 ndr
->flags
= _flags_save_string
;
12246 uint32_t _flags_save_string
= ndr
->flags
;
12247 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12248 if (r
->help_file
) {
12249 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12250 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12252 ndr
->flags
= _flags_save_string
;
12255 uint32_t _flags_save_string_array
= ndr
->flags
;
12256 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12257 if (r
->dependent_files
) {
12258 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12259 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12261 ndr
->flags
= _flags_save_string_array
;
12264 uint32_t _flags_save_string
= ndr
->flags
;
12265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12266 if (r
->monitor_name
) {
12267 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12268 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12270 ndr
->flags
= _flags_save_string
;
12273 uint32_t _flags_save_string
= ndr
->flags
;
12274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12275 if (r
->default_datatype
) {
12276 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12277 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12279 ndr
->flags
= _flags_save_string
;
12282 uint32_t _flags_save_string_array
= ndr
->flags
;
12283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12284 if (r
->previous_names
) {
12285 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12286 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12288 ndr
->flags
= _flags_save_string_array
;
12291 uint32_t _flags_save_string
= ndr
->flags
;
12292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12293 if (r
->manufacturer_name
) {
12294 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12295 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12297 ndr
->flags
= _flags_save_string
;
12300 uint32_t _flags_save_string
= ndr
->flags
;
12301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12302 if (r
->manufacturer_url
) {
12303 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12306 ndr
->flags
= _flags_save_string
;
12309 uint32_t _flags_save_string
= ndr
->flags
;
12310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12311 if (r
->hardware_id
) {
12312 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12313 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12315 ndr
->flags
= _flags_save_string
;
12318 uint32_t _flags_save_string
= ndr
->flags
;
12319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12321 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12322 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12324 ndr
->flags
= _flags_save_string
;
12327 return NDR_ERR_SUCCESS
;
12330 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12332 uint32_t _ptr_driver_name
;
12333 TALLOC_CTX
*_mem_save_driver_name_0
;
12334 uint32_t _ptr_architecture
;
12335 TALLOC_CTX
*_mem_save_architecture_0
;
12336 uint32_t _ptr_driver_path
;
12337 TALLOC_CTX
*_mem_save_driver_path_0
;
12338 uint32_t _ptr_data_file
;
12339 TALLOC_CTX
*_mem_save_data_file_0
;
12340 uint32_t _ptr_config_file
;
12341 TALLOC_CTX
*_mem_save_config_file_0
;
12342 uint32_t _ptr_help_file
;
12343 TALLOC_CTX
*_mem_save_help_file_0
;
12344 uint32_t _ptr_dependent_files
;
12345 TALLOC_CTX
*_mem_save_dependent_files_0
;
12346 uint32_t _ptr_monitor_name
;
12347 TALLOC_CTX
*_mem_save_monitor_name_0
;
12348 uint32_t _ptr_default_datatype
;
12349 TALLOC_CTX
*_mem_save_default_datatype_0
;
12350 uint32_t _ptr_previous_names
;
12351 TALLOC_CTX
*_mem_save_previous_names_0
;
12352 uint32_t _ptr_manufacturer_name
;
12353 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12354 uint32_t _ptr_manufacturer_url
;
12355 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12356 uint32_t _ptr_hardware_id
;
12357 TALLOC_CTX
*_mem_save_hardware_id_0
;
12358 uint32_t _ptr_provider
;
12359 TALLOC_CTX
*_mem_save_provider_0
;
12360 if (ndr_flags
& NDR_SCALARS
) {
12361 NDR_CHECK(ndr_pull_align(ndr
, 8));
12362 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12364 uint32_t _flags_save_string
= ndr
->flags
;
12365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12366 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12367 if (_ptr_driver_name
) {
12368 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12369 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12371 r
->driver_name
= NULL
;
12373 ndr
->flags
= _flags_save_string
;
12376 uint32_t _flags_save_string
= ndr
->flags
;
12377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12379 if (_ptr_architecture
) {
12380 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12381 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12383 r
->architecture
= NULL
;
12385 ndr
->flags
= _flags_save_string
;
12388 uint32_t _flags_save_string
= ndr
->flags
;
12389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12390 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12391 if (_ptr_driver_path
) {
12392 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12393 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12395 r
->driver_path
= NULL
;
12397 ndr
->flags
= _flags_save_string
;
12400 uint32_t _flags_save_string
= ndr
->flags
;
12401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12403 if (_ptr_data_file
) {
12404 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12405 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12407 r
->data_file
= NULL
;
12409 ndr
->flags
= _flags_save_string
;
12412 uint32_t _flags_save_string
= ndr
->flags
;
12413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12415 if (_ptr_config_file
) {
12416 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12417 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12419 r
->config_file
= NULL
;
12421 ndr
->flags
= _flags_save_string
;
12424 uint32_t _flags_save_string
= ndr
->flags
;
12425 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12426 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12427 if (_ptr_help_file
) {
12428 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12429 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12431 r
->help_file
= NULL
;
12433 ndr
->flags
= _flags_save_string
;
12436 uint32_t _flags_save_string_array
= ndr
->flags
;
12437 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12438 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12439 if (_ptr_dependent_files
) {
12440 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12441 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12443 r
->dependent_files
= NULL
;
12445 ndr
->flags
= _flags_save_string_array
;
12448 uint32_t _flags_save_string
= ndr
->flags
;
12449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12451 if (_ptr_monitor_name
) {
12452 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12453 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12455 r
->monitor_name
= NULL
;
12457 ndr
->flags
= _flags_save_string
;
12460 uint32_t _flags_save_string
= ndr
->flags
;
12461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12463 if (_ptr_default_datatype
) {
12464 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12465 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12467 r
->default_datatype
= NULL
;
12469 ndr
->flags
= _flags_save_string
;
12472 uint32_t _flags_save_string_array
= ndr
->flags
;
12473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12475 if (_ptr_previous_names
) {
12476 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12477 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12479 r
->previous_names
= NULL
;
12481 ndr
->flags
= _flags_save_string_array
;
12483 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12484 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12486 uint32_t _flags_save_string
= ndr
->flags
;
12487 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12488 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12489 if (_ptr_manufacturer_name
) {
12490 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12491 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12493 r
->manufacturer_name
= NULL
;
12495 ndr
->flags
= _flags_save_string
;
12498 uint32_t _flags_save_string
= ndr
->flags
;
12499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12500 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12501 if (_ptr_manufacturer_url
) {
12502 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12503 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12505 r
->manufacturer_url
= NULL
;
12507 ndr
->flags
= _flags_save_string
;
12510 uint32_t _flags_save_string
= ndr
->flags
;
12511 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12512 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12513 if (_ptr_hardware_id
) {
12514 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12515 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12517 r
->hardware_id
= NULL
;
12519 ndr
->flags
= _flags_save_string
;
12522 uint32_t _flags_save_string
= ndr
->flags
;
12523 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12524 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12525 if (_ptr_provider
) {
12526 NDR_PULL_ALLOC(ndr
, r
->provider
);
12527 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12529 r
->provider
= NULL
;
12531 ndr
->flags
= _flags_save_string
;
12533 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
12535 if (ndr_flags
& NDR_BUFFERS
) {
12537 uint32_t _flags_save_string
= ndr
->flags
;
12538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12539 if (r
->driver_name
) {
12540 uint32_t _relative_save_offset
;
12541 _relative_save_offset
= ndr
->offset
;
12542 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12543 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12544 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12545 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12547 ndr
->offset
= _relative_save_offset
;
12549 ndr
->flags
= _flags_save_string
;
12552 uint32_t _flags_save_string
= ndr
->flags
;
12553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12554 if (r
->architecture
) {
12555 uint32_t _relative_save_offset
;
12556 _relative_save_offset
= ndr
->offset
;
12557 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12558 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12559 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12560 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12562 ndr
->offset
= _relative_save_offset
;
12564 ndr
->flags
= _flags_save_string
;
12567 uint32_t _flags_save_string
= ndr
->flags
;
12568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12569 if (r
->driver_path
) {
12570 uint32_t _relative_save_offset
;
12571 _relative_save_offset
= ndr
->offset
;
12572 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12573 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12574 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12575 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12577 ndr
->offset
= _relative_save_offset
;
12579 ndr
->flags
= _flags_save_string
;
12582 uint32_t _flags_save_string
= ndr
->flags
;
12583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12584 if (r
->data_file
) {
12585 uint32_t _relative_save_offset
;
12586 _relative_save_offset
= ndr
->offset
;
12587 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12588 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12589 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12590 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12592 ndr
->offset
= _relative_save_offset
;
12594 ndr
->flags
= _flags_save_string
;
12597 uint32_t _flags_save_string
= ndr
->flags
;
12598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12599 if (r
->config_file
) {
12600 uint32_t _relative_save_offset
;
12601 _relative_save_offset
= ndr
->offset
;
12602 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12603 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12604 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12605 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12607 ndr
->offset
= _relative_save_offset
;
12609 ndr
->flags
= _flags_save_string
;
12612 uint32_t _flags_save_string
= ndr
->flags
;
12613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12614 if (r
->help_file
) {
12615 uint32_t _relative_save_offset
;
12616 _relative_save_offset
= ndr
->offset
;
12617 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12618 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12619 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12620 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12622 ndr
->offset
= _relative_save_offset
;
12624 ndr
->flags
= _flags_save_string
;
12627 uint32_t _flags_save_string_array
= ndr
->flags
;
12628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12629 if (r
->dependent_files
) {
12630 uint32_t _relative_save_offset
;
12631 _relative_save_offset
= ndr
->offset
;
12632 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12633 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12634 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12635 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12637 ndr
->offset
= _relative_save_offset
;
12639 ndr
->flags
= _flags_save_string_array
;
12642 uint32_t _flags_save_string
= ndr
->flags
;
12643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12644 if (r
->monitor_name
) {
12645 uint32_t _relative_save_offset
;
12646 _relative_save_offset
= ndr
->offset
;
12647 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12648 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12649 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12652 ndr
->offset
= _relative_save_offset
;
12654 ndr
->flags
= _flags_save_string
;
12657 uint32_t _flags_save_string
= ndr
->flags
;
12658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12659 if (r
->default_datatype
) {
12660 uint32_t _relative_save_offset
;
12661 _relative_save_offset
= ndr
->offset
;
12662 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12663 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12664 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12665 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12667 ndr
->offset
= _relative_save_offset
;
12669 ndr
->flags
= _flags_save_string
;
12672 uint32_t _flags_save_string_array
= ndr
->flags
;
12673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12674 if (r
->previous_names
) {
12675 uint32_t _relative_save_offset
;
12676 _relative_save_offset
= ndr
->offset
;
12677 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12678 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12679 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12680 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12682 ndr
->offset
= _relative_save_offset
;
12684 ndr
->flags
= _flags_save_string_array
;
12687 uint32_t _flags_save_string
= ndr
->flags
;
12688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12689 if (r
->manufacturer_name
) {
12690 uint32_t _relative_save_offset
;
12691 _relative_save_offset
= ndr
->offset
;
12692 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12693 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12694 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12695 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12697 ndr
->offset
= _relative_save_offset
;
12699 ndr
->flags
= _flags_save_string
;
12702 uint32_t _flags_save_string
= ndr
->flags
;
12703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12704 if (r
->manufacturer_url
) {
12705 uint32_t _relative_save_offset
;
12706 _relative_save_offset
= ndr
->offset
;
12707 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12708 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12709 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12710 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12712 ndr
->offset
= _relative_save_offset
;
12714 ndr
->flags
= _flags_save_string
;
12717 uint32_t _flags_save_string
= ndr
->flags
;
12718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12719 if (r
->hardware_id
) {
12720 uint32_t _relative_save_offset
;
12721 _relative_save_offset
= ndr
->offset
;
12722 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12723 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12724 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12725 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12727 ndr
->offset
= _relative_save_offset
;
12729 ndr
->flags
= _flags_save_string
;
12732 uint32_t _flags_save_string
= ndr
->flags
;
12733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12735 uint32_t _relative_save_offset
;
12736 _relative_save_offset
= ndr
->offset
;
12737 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12738 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12739 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12740 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12742 ndr
->offset
= _relative_save_offset
;
12744 ndr
->flags
= _flags_save_string
;
12747 return NDR_ERR_SUCCESS
;
12750 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12752 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12754 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12755 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12757 if (r
->driver_name
) {
12758 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12761 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12763 if (r
->architecture
) {
12764 ndr_print_string(ndr
, "architecture", r
->architecture
);
12767 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12769 if (r
->driver_path
) {
12770 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12773 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12775 if (r
->data_file
) {
12776 ndr_print_string(ndr
, "data_file", r
->data_file
);
12779 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12781 if (r
->config_file
) {
12782 ndr_print_string(ndr
, "config_file", r
->config_file
);
12785 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12787 if (r
->help_file
) {
12788 ndr_print_string(ndr
, "help_file", r
->help_file
);
12791 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12793 if (r
->dependent_files
) {
12794 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12797 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12799 if (r
->monitor_name
) {
12800 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12803 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12805 if (r
->default_datatype
) {
12806 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12809 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12811 if (r
->previous_names
) {
12812 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12815 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12816 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12817 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12819 if (r
->manufacturer_name
) {
12820 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12823 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12825 if (r
->manufacturer_url
) {
12826 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12829 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12831 if (r
->hardware_id
) {
12832 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12835 ndr_print_ptr(ndr
, "provider", r
->provider
);
12838 ndr_print_string(ndr
, "provider", r
->provider
);
12844 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12846 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12849 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo7
*r
)
12851 if (ndr_flags
& NDR_SCALARS
) {
12852 NDR_CHECK(ndr_push_align(ndr
, 5));
12853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
12854 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12856 uint32_t _flags_save_string
= ndr
->flags
;
12857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12858 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12859 ndr
->flags
= _flags_save_string
;
12862 uint32_t _flags_save_string
= ndr
->flags
;
12863 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12864 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_name
));
12865 ndr
->flags
= _flags_save_string
;
12868 uint32_t _flags_save_string
= ndr
->flags
;
12869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12870 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->install_source_root
));
12871 ndr
->flags
= _flags_save_string
;
12873 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
12875 if (ndr_flags
& NDR_BUFFERS
) {
12877 uint32_t _flags_save_string
= ndr
->flags
;
12878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12879 if (r
->driver_name
) {
12880 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12883 ndr
->flags
= _flags_save_string
;
12886 uint32_t _flags_save_string
= ndr
->flags
;
12887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12889 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_name
));
12890 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_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 if (r
->install_source_root
) {
12898 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->install_source_root
));
12899 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->install_source_root
));
12901 ndr
->flags
= _flags_save_string
;
12904 return NDR_ERR_SUCCESS
;
12907 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo7
*r
)
12909 uint32_t _ptr_driver_name
;
12910 TALLOC_CTX
*_mem_save_driver_name_0
;
12911 uint32_t _ptr_inf_name
;
12912 TALLOC_CTX
*_mem_save_inf_name_0
;
12913 uint32_t _ptr_install_source_root
;
12914 TALLOC_CTX
*_mem_save_install_source_root_0
;
12915 if (ndr_flags
& NDR_SCALARS
) {
12916 NDR_CHECK(ndr_pull_align(ndr
, 5));
12917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
12918 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12920 uint32_t _flags_save_string
= ndr
->flags
;
12921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12923 if (_ptr_driver_name
) {
12924 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12925 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12927 r
->driver_name
= NULL
;
12929 ndr
->flags
= _flags_save_string
;
12932 uint32_t _flags_save_string
= ndr
->flags
;
12933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12934 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_name
));
12935 if (_ptr_inf_name
) {
12936 NDR_PULL_ALLOC(ndr
, r
->inf_name
);
12937 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_name
, _ptr_inf_name
));
12939 r
->inf_name
= NULL
;
12941 ndr
->flags
= _flags_save_string
;
12944 uint32_t _flags_save_string
= ndr
->flags
;
12945 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12946 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_install_source_root
));
12947 if (_ptr_install_source_root
) {
12948 NDR_PULL_ALLOC(ndr
, r
->install_source_root
);
12949 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->install_source_root
, _ptr_install_source_root
));
12951 r
->install_source_root
= NULL
;
12953 ndr
->flags
= _flags_save_string
;
12955 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12957 if (ndr_flags
& NDR_BUFFERS
) {
12959 uint32_t _flags_save_string
= ndr
->flags
;
12960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12961 if (r
->driver_name
) {
12962 uint32_t _relative_save_offset
;
12963 _relative_save_offset
= ndr
->offset
;
12964 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12965 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12966 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12967 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12969 ndr
->offset
= _relative_save_offset
;
12971 ndr
->flags
= _flags_save_string
;
12974 uint32_t _flags_save_string
= ndr
->flags
;
12975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12977 uint32_t _relative_save_offset
;
12978 _relative_save_offset
= ndr
->offset
;
12979 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_name
));
12980 _mem_save_inf_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12981 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_name
, 0);
12982 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_name
));
12983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_name_0
, 0);
12984 ndr
->offset
= _relative_save_offset
;
12986 ndr
->flags
= _flags_save_string
;
12989 uint32_t _flags_save_string
= ndr
->flags
;
12990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12991 if (r
->install_source_root
) {
12992 uint32_t _relative_save_offset
;
12993 _relative_save_offset
= ndr
->offset
;
12994 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->install_source_root
));
12995 _mem_save_install_source_root_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12996 NDR_PULL_SET_MEM_CTX(ndr
, r
->install_source_root
, 0);
12997 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->install_source_root
));
12998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_install_source_root_0
, 0);
12999 ndr
->offset
= _relative_save_offset
;
13001 ndr
->flags
= _flags_save_string
;
13004 return NDR_ERR_SUCCESS
;
13007 _PUBLIC_
void ndr_print_spoolss_DriverInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo7
*r
)
13009 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo7");
13011 ndr_print_uint32(ndr
, "size", r
->size
);
13012 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13013 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13015 if (r
->driver_name
) {
13016 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13019 ndr_print_ptr(ndr
, "inf_name", r
->inf_name
);
13022 ndr_print_string(ndr
, "inf_name", r
->inf_name
);
13025 ndr_print_ptr(ndr
, "install_source_root", r
->install_source_root
);
13027 if (r
->install_source_root
) {
13028 ndr_print_string(ndr
, "install_source_root", r
->install_source_root
);
13034 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13036 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo7
, ic
);
13039 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
13041 if (ndr_flags
& NDR_SCALARS
) {
13042 NDR_CHECK(ndr_push_align(ndr
, 8));
13043 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13045 uint32_t _flags_save_string
= ndr
->flags
;
13046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13047 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13048 ndr
->flags
= _flags_save_string
;
13051 uint32_t _flags_save_string
= ndr
->flags
;
13052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13053 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
13054 ndr
->flags
= _flags_save_string
;
13057 uint32_t _flags_save_string
= ndr
->flags
;
13058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13059 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
13060 ndr
->flags
= _flags_save_string
;
13063 uint32_t _flags_save_string
= ndr
->flags
;
13064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13065 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
13066 ndr
->flags
= _flags_save_string
;
13069 uint32_t _flags_save_string
= ndr
->flags
;
13070 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13071 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
13072 ndr
->flags
= _flags_save_string
;
13075 uint32_t _flags_save_string
= ndr
->flags
;
13076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13077 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
13078 ndr
->flags
= _flags_save_string
;
13081 uint32_t _flags_save_string_array
= ndr
->flags
;
13082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13083 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
13084 ndr
->flags
= _flags_save_string_array
;
13087 uint32_t _flags_save_string
= ndr
->flags
;
13088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13089 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
13090 ndr
->flags
= _flags_save_string
;
13093 uint32_t _flags_save_string
= ndr
->flags
;
13094 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13095 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
13096 ndr
->flags
= _flags_save_string
;
13099 uint32_t _flags_save_string_array
= ndr
->flags
;
13100 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13101 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
13102 ndr
->flags
= _flags_save_string_array
;
13104 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
13105 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
13107 uint32_t _flags_save_string
= ndr
->flags
;
13108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13109 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
13110 ndr
->flags
= _flags_save_string
;
13113 uint32_t _flags_save_string
= ndr
->flags
;
13114 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13115 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
13116 ndr
->flags
= _flags_save_string
;
13119 uint32_t _flags_save_string
= ndr
->flags
;
13120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13121 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
13122 ndr
->flags
= _flags_save_string
;
13125 uint32_t _flags_save_string
= ndr
->flags
;
13126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13127 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
13128 ndr
->flags
= _flags_save_string
;
13131 uint32_t _flags_save_string
= ndr
->flags
;
13132 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13133 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
13134 ndr
->flags
= _flags_save_string
;
13137 uint32_t _flags_save_string
= ndr
->flags
;
13138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13139 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
13140 ndr
->flags
= _flags_save_string
;
13143 uint32_t _flags_save_string_array
= ndr
->flags
;
13144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13145 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
13146 ndr
->flags
= _flags_save_string_array
;
13149 uint32_t _flags_save_string
= ndr
->flags
;
13150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13151 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
13152 ndr
->flags
= _flags_save_string
;
13154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
13156 uint32_t _flags_save_string_array
= ndr
->flags
;
13157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13158 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
13159 ndr
->flags
= _flags_save_string_array
;
13161 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
13162 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
13163 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
13165 if (ndr_flags
& NDR_BUFFERS
) {
13167 uint32_t _flags_save_string
= ndr
->flags
;
13168 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13169 if (r
->driver_name
) {
13170 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
13171 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13173 ndr
->flags
= _flags_save_string
;
13176 uint32_t _flags_save_string
= ndr
->flags
;
13177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13178 if (r
->architecture
) {
13179 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
13180 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
13182 ndr
->flags
= _flags_save_string
;
13185 uint32_t _flags_save_string
= ndr
->flags
;
13186 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13187 if (r
->driver_path
) {
13188 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
13189 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
13191 ndr
->flags
= _flags_save_string
;
13194 uint32_t _flags_save_string
= ndr
->flags
;
13195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13196 if (r
->data_file
) {
13197 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
13198 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13200 ndr
->flags
= _flags_save_string
;
13203 uint32_t _flags_save_string
= ndr
->flags
;
13204 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13205 if (r
->config_file
) {
13206 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
13207 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13209 ndr
->flags
= _flags_save_string
;
13212 uint32_t _flags_save_string
= ndr
->flags
;
13213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13214 if (r
->help_file
) {
13215 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
13216 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13218 ndr
->flags
= _flags_save_string
;
13221 uint32_t _flags_save_string_array
= ndr
->flags
;
13222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13223 if (r
->dependent_files
) {
13224 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
13225 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13227 ndr
->flags
= _flags_save_string_array
;
13230 uint32_t _flags_save_string
= ndr
->flags
;
13231 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13232 if (r
->monitor_name
) {
13233 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
13234 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13236 ndr
->flags
= _flags_save_string
;
13239 uint32_t _flags_save_string
= ndr
->flags
;
13240 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13241 if (r
->default_datatype
) {
13242 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
13243 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13245 ndr
->flags
= _flags_save_string
;
13248 uint32_t _flags_save_string_array
= ndr
->flags
;
13249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13250 if (r
->previous_names
) {
13251 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
13252 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13254 ndr
->flags
= _flags_save_string_array
;
13257 uint32_t _flags_save_string
= ndr
->flags
;
13258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13259 if (r
->manufacturer_name
) {
13260 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
13261 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13263 ndr
->flags
= _flags_save_string
;
13266 uint32_t _flags_save_string
= ndr
->flags
;
13267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13268 if (r
->manufacturer_url
) {
13269 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
13270 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13272 ndr
->flags
= _flags_save_string
;
13275 uint32_t _flags_save_string
= ndr
->flags
;
13276 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13277 if (r
->hardware_id
) {
13278 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
13279 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13281 ndr
->flags
= _flags_save_string
;
13284 uint32_t _flags_save_string
= ndr
->flags
;
13285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13287 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
13288 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
13290 ndr
->flags
= _flags_save_string
;
13293 uint32_t _flags_save_string
= ndr
->flags
;
13294 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13295 if (r
->print_processor
) {
13296 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
13297 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
13299 ndr
->flags
= _flags_save_string
;
13302 uint32_t _flags_save_string
= ndr
->flags
;
13303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13304 if (r
->vendor_setup
) {
13305 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
13306 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
13308 ndr
->flags
= _flags_save_string
;
13311 uint32_t _flags_save_string_array
= ndr
->flags
;
13312 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13313 if (r
->color_profiles
) {
13314 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
13315 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
13317 ndr
->flags
= _flags_save_string_array
;
13320 uint32_t _flags_save_string
= ndr
->flags
;
13321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13323 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
13324 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
13326 ndr
->flags
= _flags_save_string
;
13329 uint32_t _flags_save_string_array
= ndr
->flags
;
13330 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13331 if (r
->core_driver_dependencies
) {
13332 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13333 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
13335 ndr
->flags
= _flags_save_string_array
;
13338 return NDR_ERR_SUCCESS
;
13341 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
13343 uint32_t _ptr_driver_name
;
13344 TALLOC_CTX
*_mem_save_driver_name_0
;
13345 uint32_t _ptr_architecture
;
13346 TALLOC_CTX
*_mem_save_architecture_0
;
13347 uint32_t _ptr_driver_path
;
13348 TALLOC_CTX
*_mem_save_driver_path_0
;
13349 uint32_t _ptr_data_file
;
13350 TALLOC_CTX
*_mem_save_data_file_0
;
13351 uint32_t _ptr_config_file
;
13352 TALLOC_CTX
*_mem_save_config_file_0
;
13353 uint32_t _ptr_help_file
;
13354 TALLOC_CTX
*_mem_save_help_file_0
;
13355 uint32_t _ptr_dependent_files
;
13356 TALLOC_CTX
*_mem_save_dependent_files_0
;
13357 uint32_t _ptr_monitor_name
;
13358 TALLOC_CTX
*_mem_save_monitor_name_0
;
13359 uint32_t _ptr_default_datatype
;
13360 TALLOC_CTX
*_mem_save_default_datatype_0
;
13361 uint32_t _ptr_previous_names
;
13362 TALLOC_CTX
*_mem_save_previous_names_0
;
13363 uint32_t _ptr_manufacturer_name
;
13364 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13365 uint32_t _ptr_manufacturer_url
;
13366 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13367 uint32_t _ptr_hardware_id
;
13368 TALLOC_CTX
*_mem_save_hardware_id_0
;
13369 uint32_t _ptr_provider
;
13370 TALLOC_CTX
*_mem_save_provider_0
;
13371 uint32_t _ptr_print_processor
;
13372 TALLOC_CTX
*_mem_save_print_processor_0
;
13373 uint32_t _ptr_vendor_setup
;
13374 TALLOC_CTX
*_mem_save_vendor_setup_0
;
13375 uint32_t _ptr_color_profiles
;
13376 TALLOC_CTX
*_mem_save_color_profiles_0
;
13377 uint32_t _ptr_inf_path
;
13378 TALLOC_CTX
*_mem_save_inf_path_0
;
13379 uint32_t _ptr_core_driver_dependencies
;
13380 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
13381 if (ndr_flags
& NDR_SCALARS
) {
13382 NDR_CHECK(ndr_pull_align(ndr
, 8));
13383 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13385 uint32_t _flags_save_string
= ndr
->flags
;
13386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13388 if (_ptr_driver_name
) {
13389 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13390 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13392 r
->driver_name
= NULL
;
13394 ndr
->flags
= _flags_save_string
;
13397 uint32_t _flags_save_string
= ndr
->flags
;
13398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13400 if (_ptr_architecture
) {
13401 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13402 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13404 r
->architecture
= NULL
;
13406 ndr
->flags
= _flags_save_string
;
13409 uint32_t _flags_save_string
= ndr
->flags
;
13410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13412 if (_ptr_driver_path
) {
13413 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13414 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13416 r
->driver_path
= NULL
;
13418 ndr
->flags
= _flags_save_string
;
13421 uint32_t _flags_save_string
= ndr
->flags
;
13422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13423 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13424 if (_ptr_data_file
) {
13425 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13426 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13428 r
->data_file
= NULL
;
13430 ndr
->flags
= _flags_save_string
;
13433 uint32_t _flags_save_string
= ndr
->flags
;
13434 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13436 if (_ptr_config_file
) {
13437 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13438 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13440 r
->config_file
= NULL
;
13442 ndr
->flags
= _flags_save_string
;
13445 uint32_t _flags_save_string
= ndr
->flags
;
13446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13448 if (_ptr_help_file
) {
13449 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13450 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13452 r
->help_file
= NULL
;
13454 ndr
->flags
= _flags_save_string
;
13457 uint32_t _flags_save_string_array
= ndr
->flags
;
13458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13459 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13460 if (_ptr_dependent_files
) {
13461 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13462 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13464 r
->dependent_files
= NULL
;
13466 ndr
->flags
= _flags_save_string_array
;
13469 uint32_t _flags_save_string
= ndr
->flags
;
13470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13471 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13472 if (_ptr_monitor_name
) {
13473 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13474 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13476 r
->monitor_name
= NULL
;
13478 ndr
->flags
= _flags_save_string
;
13481 uint32_t _flags_save_string
= ndr
->flags
;
13482 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13483 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13484 if (_ptr_default_datatype
) {
13485 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13486 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13488 r
->default_datatype
= NULL
;
13490 ndr
->flags
= _flags_save_string
;
13493 uint32_t _flags_save_string_array
= ndr
->flags
;
13494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13495 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13496 if (_ptr_previous_names
) {
13497 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13498 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13500 r
->previous_names
= NULL
;
13502 ndr
->flags
= _flags_save_string_array
;
13504 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13505 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13507 uint32_t _flags_save_string
= ndr
->flags
;
13508 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13510 if (_ptr_manufacturer_name
) {
13511 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13512 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13514 r
->manufacturer_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13522 if (_ptr_manufacturer_url
) {
13523 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13524 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13526 r
->manufacturer_url
= NULL
;
13528 ndr
->flags
= _flags_save_string
;
13531 uint32_t _flags_save_string
= ndr
->flags
;
13532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13534 if (_ptr_hardware_id
) {
13535 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13536 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13538 r
->hardware_id
= NULL
;
13540 ndr
->flags
= _flags_save_string
;
13543 uint32_t _flags_save_string
= ndr
->flags
;
13544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13546 if (_ptr_provider
) {
13547 NDR_PULL_ALLOC(ndr
, r
->provider
);
13548 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13550 r
->provider
= NULL
;
13552 ndr
->flags
= _flags_save_string
;
13555 uint32_t _flags_save_string
= ndr
->flags
;
13556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
13558 if (_ptr_print_processor
) {
13559 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
13560 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
13562 r
->print_processor
= NULL
;
13564 ndr
->flags
= _flags_save_string
;
13567 uint32_t _flags_save_string
= ndr
->flags
;
13568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
13570 if (_ptr_vendor_setup
) {
13571 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
13572 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
13574 r
->vendor_setup
= NULL
;
13576 ndr
->flags
= _flags_save_string
;
13579 uint32_t _flags_save_string_array
= ndr
->flags
;
13580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
13582 if (_ptr_color_profiles
) {
13583 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
13584 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
13586 r
->color_profiles
= NULL
;
13588 ndr
->flags
= _flags_save_string_array
;
13591 uint32_t _flags_save_string
= ndr
->flags
;
13592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
13594 if (_ptr_inf_path
) {
13595 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
13596 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
13598 r
->inf_path
= NULL
;
13600 ndr
->flags
= _flags_save_string
;
13602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
13604 uint32_t _flags_save_string_array
= ndr
->flags
;
13605 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
13607 if (_ptr_core_driver_dependencies
) {
13608 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
13609 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
13611 r
->core_driver_dependencies
= NULL
;
13613 ndr
->flags
= _flags_save_string_array
;
13615 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
13616 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
13617 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13619 if (ndr_flags
& NDR_BUFFERS
) {
13621 uint32_t _flags_save_string
= ndr
->flags
;
13622 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13623 if (r
->driver_name
) {
13624 uint32_t _relative_save_offset
;
13625 _relative_save_offset
= ndr
->offset
;
13626 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13627 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13628 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13629 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13631 ndr
->offset
= _relative_save_offset
;
13633 ndr
->flags
= _flags_save_string
;
13636 uint32_t _flags_save_string
= ndr
->flags
;
13637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13638 if (r
->architecture
) {
13639 uint32_t _relative_save_offset
;
13640 _relative_save_offset
= ndr
->offset
;
13641 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13642 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13643 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13644 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13646 ndr
->offset
= _relative_save_offset
;
13648 ndr
->flags
= _flags_save_string
;
13651 uint32_t _flags_save_string
= ndr
->flags
;
13652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13653 if (r
->driver_path
) {
13654 uint32_t _relative_save_offset
;
13655 _relative_save_offset
= ndr
->offset
;
13656 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13657 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13658 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13659 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13661 ndr
->offset
= _relative_save_offset
;
13663 ndr
->flags
= _flags_save_string
;
13666 uint32_t _flags_save_string
= ndr
->flags
;
13667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13668 if (r
->data_file
) {
13669 uint32_t _relative_save_offset
;
13670 _relative_save_offset
= ndr
->offset
;
13671 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13672 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13673 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13674 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13676 ndr
->offset
= _relative_save_offset
;
13678 ndr
->flags
= _flags_save_string
;
13681 uint32_t _flags_save_string
= ndr
->flags
;
13682 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13683 if (r
->config_file
) {
13684 uint32_t _relative_save_offset
;
13685 _relative_save_offset
= ndr
->offset
;
13686 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13687 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13688 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13689 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13691 ndr
->offset
= _relative_save_offset
;
13693 ndr
->flags
= _flags_save_string
;
13696 uint32_t _flags_save_string
= ndr
->flags
;
13697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13698 if (r
->help_file
) {
13699 uint32_t _relative_save_offset
;
13700 _relative_save_offset
= ndr
->offset
;
13701 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13702 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13703 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13704 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13706 ndr
->offset
= _relative_save_offset
;
13708 ndr
->flags
= _flags_save_string
;
13711 uint32_t _flags_save_string_array
= ndr
->flags
;
13712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13713 if (r
->dependent_files
) {
13714 uint32_t _relative_save_offset
;
13715 _relative_save_offset
= ndr
->offset
;
13716 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13717 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13718 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13719 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13721 ndr
->offset
= _relative_save_offset
;
13723 ndr
->flags
= _flags_save_string_array
;
13726 uint32_t _flags_save_string
= ndr
->flags
;
13727 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13728 if (r
->monitor_name
) {
13729 uint32_t _relative_save_offset
;
13730 _relative_save_offset
= ndr
->offset
;
13731 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13732 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13733 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13734 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13736 ndr
->offset
= _relative_save_offset
;
13738 ndr
->flags
= _flags_save_string
;
13741 uint32_t _flags_save_string
= ndr
->flags
;
13742 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13743 if (r
->default_datatype
) {
13744 uint32_t _relative_save_offset
;
13745 _relative_save_offset
= ndr
->offset
;
13746 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13747 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13748 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13749 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13751 ndr
->offset
= _relative_save_offset
;
13753 ndr
->flags
= _flags_save_string
;
13756 uint32_t _flags_save_string_array
= ndr
->flags
;
13757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13758 if (r
->previous_names
) {
13759 uint32_t _relative_save_offset
;
13760 _relative_save_offset
= ndr
->offset
;
13761 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13762 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13763 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13764 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13766 ndr
->offset
= _relative_save_offset
;
13768 ndr
->flags
= _flags_save_string_array
;
13771 uint32_t _flags_save_string
= ndr
->flags
;
13772 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13773 if (r
->manufacturer_name
) {
13774 uint32_t _relative_save_offset
;
13775 _relative_save_offset
= ndr
->offset
;
13776 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13777 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13778 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13779 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13781 ndr
->offset
= _relative_save_offset
;
13783 ndr
->flags
= _flags_save_string
;
13786 uint32_t _flags_save_string
= ndr
->flags
;
13787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13788 if (r
->manufacturer_url
) {
13789 uint32_t _relative_save_offset
;
13790 _relative_save_offset
= ndr
->offset
;
13791 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13792 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13793 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13794 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13796 ndr
->offset
= _relative_save_offset
;
13798 ndr
->flags
= _flags_save_string
;
13801 uint32_t _flags_save_string
= ndr
->flags
;
13802 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13803 if (r
->hardware_id
) {
13804 uint32_t _relative_save_offset
;
13805 _relative_save_offset
= ndr
->offset
;
13806 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13807 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13808 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13809 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13811 ndr
->offset
= _relative_save_offset
;
13813 ndr
->flags
= _flags_save_string
;
13816 uint32_t _flags_save_string
= ndr
->flags
;
13817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13819 uint32_t _relative_save_offset
;
13820 _relative_save_offset
= ndr
->offset
;
13821 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13822 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13823 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13824 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13826 ndr
->offset
= _relative_save_offset
;
13828 ndr
->flags
= _flags_save_string
;
13831 uint32_t _flags_save_string
= ndr
->flags
;
13832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13833 if (r
->print_processor
) {
13834 uint32_t _relative_save_offset
;
13835 _relative_save_offset
= ndr
->offset
;
13836 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13837 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13838 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13839 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13841 ndr
->offset
= _relative_save_offset
;
13843 ndr
->flags
= _flags_save_string
;
13846 uint32_t _flags_save_string
= ndr
->flags
;
13847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13848 if (r
->vendor_setup
) {
13849 uint32_t _relative_save_offset
;
13850 _relative_save_offset
= ndr
->offset
;
13851 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13852 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13853 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13854 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13856 ndr
->offset
= _relative_save_offset
;
13858 ndr
->flags
= _flags_save_string
;
13861 uint32_t _flags_save_string_array
= ndr
->flags
;
13862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13863 if (r
->color_profiles
) {
13864 uint32_t _relative_save_offset
;
13865 _relative_save_offset
= ndr
->offset
;
13866 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13867 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13868 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13869 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13871 ndr
->offset
= _relative_save_offset
;
13873 ndr
->flags
= _flags_save_string_array
;
13876 uint32_t _flags_save_string
= ndr
->flags
;
13877 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13879 uint32_t _relative_save_offset
;
13880 _relative_save_offset
= ndr
->offset
;
13881 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13882 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13883 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13884 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13886 ndr
->offset
= _relative_save_offset
;
13888 ndr
->flags
= _flags_save_string
;
13891 uint32_t _flags_save_string_array
= ndr
->flags
;
13892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13893 if (r
->core_driver_dependencies
) {
13894 uint32_t _relative_save_offset
;
13895 _relative_save_offset
= ndr
->offset
;
13896 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13897 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13898 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13899 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13901 ndr
->offset
= _relative_save_offset
;
13903 ndr
->flags
= _flags_save_string_array
;
13906 return NDR_ERR_SUCCESS
;
13909 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13911 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13913 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13914 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13916 if (r
->driver_name
) {
13917 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13920 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13922 if (r
->architecture
) {
13923 ndr_print_string(ndr
, "architecture", r
->architecture
);
13926 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13928 if (r
->driver_path
) {
13929 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13932 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13934 if (r
->data_file
) {
13935 ndr_print_string(ndr
, "data_file", r
->data_file
);
13938 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13940 if (r
->config_file
) {
13941 ndr_print_string(ndr
, "config_file", r
->config_file
);
13944 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13946 if (r
->help_file
) {
13947 ndr_print_string(ndr
, "help_file", r
->help_file
);
13950 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13952 if (r
->dependent_files
) {
13953 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13956 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13958 if (r
->monitor_name
) {
13959 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13962 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13964 if (r
->default_datatype
) {
13965 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13968 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13970 if (r
->previous_names
) {
13971 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13974 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13975 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13976 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13978 if (r
->manufacturer_name
) {
13979 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13982 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13984 if (r
->manufacturer_url
) {
13985 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13988 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13990 if (r
->hardware_id
) {
13991 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13994 ndr_print_ptr(ndr
, "provider", r
->provider
);
13997 ndr_print_string(ndr
, "provider", r
->provider
);
14000 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
14002 if (r
->print_processor
) {
14003 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
14006 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
14008 if (r
->vendor_setup
) {
14009 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
14012 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
14014 if (r
->color_profiles
) {
14015 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
14018 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
14021 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
14024 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
14025 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14027 if (r
->core_driver_dependencies
) {
14028 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14031 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
14032 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
14036 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14038 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
14041 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
14043 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
14044 return NDR_ERR_SUCCESS
;
14047 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
14050 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
14052 return NDR_ERR_SUCCESS
;
14055 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
14057 const char *val
= NULL
;
14060 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14061 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14062 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14063 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14064 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14066 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14069 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
14071 if (ndr_flags
& NDR_SCALARS
) {
14072 NDR_CHECK(ndr_push_align(ndr
, 5));
14074 uint32_t _flags_save_string
= ndr
->flags
;
14075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14076 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
14077 ndr
->flags
= _flags_save_string
;
14079 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
14080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
14081 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14083 if (ndr_flags
& NDR_BUFFERS
) {
14085 uint32_t _flags_save_string
= ndr
->flags
;
14086 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14087 if (r
->file_name
) {
14088 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
14089 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
14091 ndr
->flags
= _flags_save_string
;
14094 return NDR_ERR_SUCCESS
;
14097 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
14099 uint32_t _ptr_file_name
;
14100 TALLOC_CTX
*_mem_save_file_name_0
;
14101 if (ndr_flags
& NDR_SCALARS
) {
14102 NDR_CHECK(ndr_pull_align(ndr
, 5));
14104 uint32_t _flags_save_string
= ndr
->flags
;
14105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
14107 if (_ptr_file_name
) {
14108 NDR_PULL_ALLOC(ndr
, r
->file_name
);
14109 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
14111 r
->file_name
= NULL
;
14113 ndr
->flags
= _flags_save_string
;
14115 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
14116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
14117 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14119 if (ndr_flags
& NDR_BUFFERS
) {
14121 uint32_t _flags_save_string
= ndr
->flags
;
14122 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14123 if (r
->file_name
) {
14124 uint32_t _relative_save_offset
;
14125 _relative_save_offset
= ndr
->offset
;
14126 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
14127 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14128 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
14129 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
14130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
14131 ndr
->offset
= _relative_save_offset
;
14133 ndr
->flags
= _flags_save_string
;
14136 return NDR_ERR_SUCCESS
;
14139 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
14141 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
14143 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
14145 if (r
->file_name
) {
14146 ndr_print_string(ndr
, "file_name", r
->file_name
);
14149 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
14150 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
14154 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
14156 uint32_t cntr_file_info_1
;
14157 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
14159 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14160 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14162 if (r
->driver_name
) {
14163 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14166 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14168 if (r
->architecture
) {
14169 ndr_print_string(ndr
, "architecture", r
->architecture
);
14172 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
14174 if (r
->file_info
) {
14175 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
14177 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
14179 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
14180 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
14187 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
14188 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14190 if (r
->monitor_name
) {
14191 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14194 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14196 if (r
->default_datatype
) {
14197 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14200 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14202 if (r
->previous_names
) {
14203 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14206 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14207 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14208 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14210 if (r
->manufacturer_name
) {
14211 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14214 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14216 if (r
->manufacturer_url
) {
14217 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14220 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14222 if (r
->hardware_id
) {
14223 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14226 ndr_print_ptr(ndr
, "provider", r
->provider
);
14229 ndr_print_string(ndr
, "provider", r
->provider
);
14235 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14237 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
14240 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
14242 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14243 if (ndr_flags
& NDR_SCALARS
) {
14244 int level
= ndr_push_get_switch_value(ndr
, r
);
14245 NDR_CHECK(ndr_push_union_align(ndr
, 8));
14248 NDR_CHECK(ndr_push_align(ndr
, 5));
14249 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14250 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14254 NDR_CHECK(ndr_push_align(ndr
, 5));
14255 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14256 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14260 NDR_CHECK(ndr_push_align(ndr
, 5));
14261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14262 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14266 NDR_CHECK(ndr_push_align(ndr
, 5));
14267 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14268 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14272 NDR_CHECK(ndr_push_align(ndr
, 5));
14273 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14274 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14278 NDR_CHECK(ndr_push_align(ndr
, 8));
14279 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14280 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14284 NDR_CHECK(ndr_push_align(ndr
, 5));
14285 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14286 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
14290 NDR_CHECK(ndr_push_align(ndr
, 8));
14291 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14292 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14296 NDR_CHECK(ndr_push_align(ndr
, 8));
14297 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14298 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14306 if (ndr_flags
& NDR_BUFFERS
) {
14307 int level
= ndr_push_get_switch_value(ndr
, r
);
14308 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14311 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14315 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14319 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14323 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14327 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14331 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14335 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
14339 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14343 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14351 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14352 return NDR_ERR_SUCCESS
;
14355 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
14357 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14359 level
= ndr_pull_get_switch_value(ndr
, r
);
14360 if (ndr_flags
& NDR_SCALARS
) {
14361 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
14364 NDR_CHECK(ndr_pull_align(ndr
, 5));
14365 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14366 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14370 NDR_CHECK(ndr_pull_align(ndr
, 5));
14371 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14372 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14376 NDR_CHECK(ndr_pull_align(ndr
, 5));
14377 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14378 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14382 NDR_CHECK(ndr_pull_align(ndr
, 5));
14383 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14384 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14388 NDR_CHECK(ndr_pull_align(ndr
, 5));
14389 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14390 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14394 NDR_CHECK(ndr_pull_align(ndr
, 8));
14395 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14396 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14400 NDR_CHECK(ndr_pull_align(ndr
, 5));
14401 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14402 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
14406 NDR_CHECK(ndr_pull_align(ndr
, 8));
14407 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14408 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14412 NDR_CHECK(ndr_pull_align(ndr
, 8));
14413 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14414 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14422 if (ndr_flags
& NDR_BUFFERS
) {
14423 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14426 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14430 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14434 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14438 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14442 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14446 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14450 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
14454 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14458 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14466 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14467 return NDR_ERR_SUCCESS
;
14470 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
14473 level
= ndr_print_get_switch_value(ndr
, r
);
14474 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
14477 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
14481 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
14485 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
14489 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
14493 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
14497 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
14501 ndr_print_spoolss_DriverInfo7(ndr
, "info7", &r
->info7
);
14505 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
14509 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
14518 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14520 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
14523 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
14525 if (ndr_flags
& NDR_SCALARS
) {
14526 NDR_CHECK(ndr_push_align(ndr
, 4));
14528 uint32_t _flags_save_string
= ndr
->flags
;
14529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14530 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14531 ndr
->flags
= _flags_save_string
;
14533 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14535 if (ndr_flags
& NDR_BUFFERS
) {
14537 return NDR_ERR_SUCCESS
;
14540 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
14542 if (ndr_flags
& NDR_SCALARS
) {
14543 NDR_CHECK(ndr_pull_align(ndr
, 4));
14545 uint32_t _flags_save_string
= ndr
->flags
;
14546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14547 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14548 ndr
->flags
= _flags_save_string
;
14550 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14552 if (ndr_flags
& NDR_BUFFERS
) {
14554 return NDR_ERR_SUCCESS
;
14557 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
14559 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
14561 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14565 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14567 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
14570 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
14572 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14573 if (ndr_flags
& NDR_SCALARS
) {
14574 int level
= ndr_push_get_switch_value(ndr
, r
);
14575 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14578 NDR_CHECK(ndr_push_align(ndr
, 4));
14579 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14580 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14584 NDR_CHECK(ndr_push_align(ndr
, 4));
14585 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14586 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14591 if (ndr_flags
& NDR_BUFFERS
) {
14592 int level
= ndr_push_get_switch_value(ndr
, r
);
14593 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14603 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14604 return NDR_ERR_SUCCESS
;
14607 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
14609 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14611 level
= ndr_pull_get_switch_value(ndr
, r
);
14612 if (ndr_flags
& NDR_SCALARS
) {
14613 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14616 NDR_CHECK(ndr_pull_align(ndr
, 4));
14617 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14618 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14622 NDR_CHECK(ndr_pull_align(ndr
, 4));
14623 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14624 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14629 if (ndr_flags
& NDR_BUFFERS
) {
14630 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14640 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14641 return NDR_ERR_SUCCESS
;
14644 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
14647 level
= ndr_print_get_switch_value(ndr
, r
);
14648 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
14651 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14655 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14661 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14663 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
14666 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
14668 if (ndr_flags
& NDR_SCALARS
) {
14669 NDR_CHECK(ndr_push_align(ndr
, 5));
14671 uint32_t _flags_save_string
= ndr
->flags
;
14672 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14673 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
14674 ndr
->flags
= _flags_save_string
;
14676 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14678 if (ndr_flags
& NDR_BUFFERS
) {
14680 uint32_t _flags_save_string
= ndr
->flags
;
14681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14682 if (r
->print_processor_name
) {
14683 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
14684 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
14686 ndr
->flags
= _flags_save_string
;
14689 return NDR_ERR_SUCCESS
;
14692 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
14694 uint32_t _ptr_print_processor_name
;
14695 TALLOC_CTX
*_mem_save_print_processor_name_0
;
14696 if (ndr_flags
& NDR_SCALARS
) {
14697 NDR_CHECK(ndr_pull_align(ndr
, 5));
14699 uint32_t _flags_save_string
= ndr
->flags
;
14700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
14702 if (_ptr_print_processor_name
) {
14703 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
14704 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
14706 r
->print_processor_name
= NULL
;
14708 ndr
->flags
= _flags_save_string
;
14710 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14712 if (ndr_flags
& NDR_BUFFERS
) {
14714 uint32_t _flags_save_string
= ndr
->flags
;
14715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14716 if (r
->print_processor_name
) {
14717 uint32_t _relative_save_offset
;
14718 _relative_save_offset
= ndr
->offset
;
14719 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
14720 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14721 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
14722 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
14723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
14724 ndr
->offset
= _relative_save_offset
;
14726 ndr
->flags
= _flags_save_string
;
14729 return NDR_ERR_SUCCESS
;
14732 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
14734 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
14736 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
14738 if (r
->print_processor_name
) {
14739 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
14745 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14747 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
14750 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
14752 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14753 if (ndr_flags
& NDR_SCALARS
) {
14754 int level
= ndr_push_get_switch_value(ndr
, r
);
14755 NDR_CHECK(ndr_push_union_align(ndr
, 5));
14758 NDR_CHECK(ndr_push_align(ndr
, 5));
14759 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14760 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14768 if (ndr_flags
& NDR_BUFFERS
) {
14769 int level
= ndr_push_get_switch_value(ndr
, r
);
14770 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14773 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14781 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14782 return NDR_ERR_SUCCESS
;
14785 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
14787 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14789 level
= ndr_pull_get_switch_value(ndr
, r
);
14790 if (ndr_flags
& NDR_SCALARS
) {
14791 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
14794 NDR_CHECK(ndr_pull_align(ndr
, 5));
14795 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14796 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14804 if (ndr_flags
& NDR_BUFFERS
) {
14805 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14808 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14816 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14817 return NDR_ERR_SUCCESS
;
14820 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14823 level
= ndr_print_get_switch_value(ndr
, r
);
14824 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14827 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14836 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14838 if (ndr_flags
& NDR_SCALARS
) {
14839 NDR_CHECK(ndr_push_align(ndr
, 4));
14841 uint32_t _flags_save_string
= ndr
->flags
;
14842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14843 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14844 ndr
->flags
= _flags_save_string
;
14846 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14848 if (ndr_flags
& NDR_BUFFERS
) {
14850 return NDR_ERR_SUCCESS
;
14853 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14855 if (ndr_flags
& NDR_SCALARS
) {
14856 NDR_CHECK(ndr_pull_align(ndr
, 4));
14858 uint32_t _flags_save_string
= ndr
->flags
;
14859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14860 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14861 ndr
->flags
= _flags_save_string
;
14863 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14865 if (ndr_flags
& NDR_BUFFERS
) {
14867 return NDR_ERR_SUCCESS
;
14870 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14872 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14874 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14878 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14880 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14883 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14885 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14886 if (ndr_flags
& NDR_SCALARS
) {
14887 int level
= ndr_push_get_switch_value(ndr
, r
);
14888 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14891 NDR_CHECK(ndr_push_align(ndr
, 4));
14892 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14893 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14897 NDR_CHECK(ndr_push_align(ndr
, 4));
14898 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14899 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14904 if (ndr_flags
& NDR_BUFFERS
) {
14905 int level
= ndr_push_get_switch_value(ndr
, r
);
14906 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14916 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14917 return NDR_ERR_SUCCESS
;
14920 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14922 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14924 level
= ndr_pull_get_switch_value(ndr
, r
);
14925 if (ndr_flags
& NDR_SCALARS
) {
14926 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14929 NDR_CHECK(ndr_pull_align(ndr
, 4));
14930 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14931 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14935 NDR_CHECK(ndr_pull_align(ndr
, 4));
14936 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14937 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14942 if (ndr_flags
& NDR_BUFFERS
) {
14943 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14953 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14954 return NDR_ERR_SUCCESS
;
14957 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14960 level
= ndr_print_get_switch_value(ndr
, r
);
14961 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14964 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14968 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14974 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14976 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14979 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14981 if (ndr_flags
& NDR_SCALARS
) {
14982 NDR_CHECK(ndr_push_align(ndr
, 5));
14983 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14984 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14985 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14986 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14988 if (ndr_flags
& NDR_BUFFERS
) {
14989 if (r
->document_name
) {
14990 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14992 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14995 if (r
->output_file
) {
14996 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14998 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14999 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15004 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15005 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15008 return NDR_ERR_SUCCESS
;
15011 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
15013 uint32_t _ptr_document_name
;
15014 TALLOC_CTX
*_mem_save_document_name_0
;
15015 uint32_t _ptr_output_file
;
15016 TALLOC_CTX
*_mem_save_output_file_0
;
15017 uint32_t _ptr_datatype
;
15018 TALLOC_CTX
*_mem_save_datatype_0
;
15019 if (ndr_flags
& NDR_SCALARS
) {
15020 NDR_CHECK(ndr_pull_align(ndr
, 5));
15021 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
15022 if (_ptr_document_name
) {
15023 NDR_PULL_ALLOC(ndr
, r
->document_name
);
15025 r
->document_name
= NULL
;
15027 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
15028 if (_ptr_output_file
) {
15029 NDR_PULL_ALLOC(ndr
, r
->output_file
);
15031 r
->output_file
= NULL
;
15033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
15034 if (_ptr_datatype
) {
15035 NDR_PULL_ALLOC(ndr
, r
->datatype
);
15037 r
->datatype
= NULL
;
15039 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15041 if (ndr_flags
& NDR_BUFFERS
) {
15042 if (r
->document_name
) {
15043 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15044 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
15045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
15046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
15047 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
15048 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
));
15050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
15051 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
15052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
15054 if (r
->output_file
) {
15055 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15056 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
15057 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
15058 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
15059 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
15060 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
));
15062 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
15063 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
15064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
15067 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15068 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
15069 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
15070 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
15071 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
15072 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
));
15074 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
15075 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
15076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
15079 return NDR_ERR_SUCCESS
;
15082 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
15084 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
15086 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
15088 if (r
->document_name
) {
15089 ndr_print_string(ndr
, "document_name", r
->document_name
);
15092 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
15094 if (r
->output_file
) {
15095 ndr_print_string(ndr
, "output_file", r
->output_file
);
15098 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
15101 ndr_print_string(ndr
, "datatype", r
->datatype
);
15107 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
15109 if (ndr_flags
& NDR_SCALARS
) {
15110 int level
= ndr_push_get_switch_value(ndr
, r
);
15111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15112 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15115 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15129 if (ndr_flags
& NDR_BUFFERS
) {
15130 int level
= ndr_push_get_switch_value(ndr
, r
);
15134 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15149 return NDR_ERR_SUCCESS
;
15152 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
15156 TALLOC_CTX
*_mem_save_info1_0
;
15157 level
= ndr_pull_get_switch_value(ndr
, r
);
15158 if (ndr_flags
& NDR_SCALARS
) {
15159 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15160 if (_level
!= level
) {
15161 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
15163 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15166 uint32_t _ptr_info1
;
15167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15169 NDR_PULL_ALLOC(ndr
, r
->info1
);
15186 if (ndr_flags
& NDR_BUFFERS
) {
15190 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15191 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15192 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15208 return NDR_ERR_SUCCESS
;
15211 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
15214 level
= ndr_print_get_switch_value(ndr
, r
);
15215 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
15218 ndr_print_ptr(ndr
, "info1", r
->info1
);
15221 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
15238 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
15240 if (ndr_flags
& NDR_SCALARS
) {
15241 NDR_CHECK(ndr_push_align(ndr
, 4));
15242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15248 uint32_t _flags_save_string
= ndr
->flags
;
15249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15251 struct ndr_push
*_ndr_extra_string
;
15252 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15253 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15254 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15256 ndr
->flags
= _flags_save_string
;
15258 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15260 if (ndr_flags
& NDR_BUFFERS
) {
15262 return NDR_ERR_SUCCESS
;
15265 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
15267 if (ndr_flags
& NDR_SCALARS
) {
15268 NDR_CHECK(ndr_pull_align(ndr
, 4));
15269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15270 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15271 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15272 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15275 uint32_t _flags_save_string
= ndr
->flags
;
15276 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15278 struct ndr_pull
*_ndr_extra_string
;
15279 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15280 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15281 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15283 ndr
->flags
= _flags_save_string
;
15285 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15287 if (ndr_flags
& NDR_BUFFERS
) {
15289 return NDR_ERR_SUCCESS
;
15292 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
15294 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
15296 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
);
15297 ndr_print_uint32(ndr
, "major", r
->major
);
15298 ndr_print_uint32(ndr
, "minor", r
->minor
);
15299 ndr_print_uint32(ndr
, "build", r
->build
);
15300 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15301 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15305 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15307 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
15310 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
15312 if (ndr_flags
& NDR_SCALARS
) {
15313 NDR_CHECK(ndr_push_align(ndr
, 4));
15314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15320 uint32_t _flags_save_string
= ndr
->flags
;
15321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15323 struct ndr_push
*_ndr_extra_string
;
15324 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15325 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15326 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15328 ndr
->flags
= _flags_save_string
;
15330 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
15331 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
15332 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
15333 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
15334 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
15335 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15337 if (ndr_flags
& NDR_BUFFERS
) {
15339 return NDR_ERR_SUCCESS
;
15342 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
15344 if (ndr_flags
& NDR_SCALARS
) {
15345 NDR_CHECK(ndr_pull_align(ndr
, 4));
15346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15352 uint32_t _flags_save_string
= ndr
->flags
;
15353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15355 struct ndr_pull
*_ndr_extra_string
;
15356 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15357 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15358 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15360 ndr
->flags
= _flags_save_string
;
15362 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
15363 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
15364 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
15365 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
15366 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
15367 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15369 if (ndr_flags
& NDR_BUFFERS
) {
15371 return NDR_ERR_SUCCESS
;
15374 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
15376 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
15378 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
);
15379 ndr_print_uint32(ndr
, "major", r
->major
);
15380 ndr_print_uint32(ndr
, "minor", r
->minor
);
15381 ndr_print_uint32(ndr
, "build", r
->build
);
15382 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15383 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15384 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
15385 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
15386 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
15387 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
15388 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
15392 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15394 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
15397 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
15399 if (ndr_flags
& NDR_SCALARS
) {
15400 int level
= ndr_push_get_switch_value(ndr
, r
);
15401 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15408 uint32_t _flags_save_string
= ndr
->flags
;
15409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15410 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
15411 ndr
->flags
= _flags_save_string
;
15417 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15418 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15419 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
15420 ndr
->flags
= _flags_save_DATA_BLOB
;
15425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
15428 case REG_MULTI_SZ
: {
15430 uint32_t _flags_save_string_array
= ndr
->flags
;
15431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15432 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
15433 ndr
->flags
= _flags_save_string_array
;
15439 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15441 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
15442 ndr
->flags
= _flags_save_DATA_BLOB
;
15448 if (ndr_flags
& NDR_BUFFERS
) {
15449 int level
= ndr_push_get_switch_value(ndr
, r
);
15471 return NDR_ERR_SUCCESS
;
15474 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
15477 level
= ndr_pull_get_switch_value(ndr
, r
);
15478 if (ndr_flags
& NDR_SCALARS
) {
15479 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15486 uint32_t _flags_save_string
= ndr
->flags
;
15487 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15488 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
15489 ndr
->flags
= _flags_save_string
;
15495 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15497 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
15498 ndr
->flags
= _flags_save_DATA_BLOB
;
15503 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
15506 case REG_MULTI_SZ
: {
15508 uint32_t _flags_save_string_array
= ndr
->flags
;
15509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15510 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
15511 ndr
->flags
= _flags_save_string_array
;
15517 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15518 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15519 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
15520 ndr
->flags
= _flags_save_DATA_BLOB
;
15526 if (ndr_flags
& NDR_BUFFERS
) {
15548 return NDR_ERR_SUCCESS
;
15551 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
15554 level
= ndr_print_get_switch_value(ndr
, r
);
15555 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
15561 ndr_print_string(ndr
, "string", r
->string
);
15565 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
15569 ndr_print_uint32(ndr
, "value", r
->value
);
15573 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
15577 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
15583 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
15585 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
15586 return NDR_ERR_SUCCESS
;
15589 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
15592 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
15594 return NDR_ERR_SUCCESS
;
15597 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
15599 const char *val
= NULL
;
15602 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
15603 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
15604 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
15606 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15609 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
15611 if (ndr_flags
& NDR_SCALARS
) {
15612 NDR_CHECK(ndr_push_align(ndr
, 4));
15613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
15614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
15615 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15617 if (ndr_flags
& NDR_BUFFERS
) {
15619 return NDR_ERR_SUCCESS
;
15622 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
15624 if (ndr_flags
& NDR_SCALARS
) {
15625 NDR_CHECK(ndr_pull_align(ndr
, 4));
15626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
15627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
15628 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15630 if (ndr_flags
& NDR_BUFFERS
) {
15632 return NDR_ERR_SUCCESS
;
15635 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
15637 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
15639 ndr_print_uint32(ndr
, "width", r
->width
);
15640 ndr_print_uint32(ndr
, "height", r
->height
);
15644 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
15646 if (ndr_flags
& NDR_SCALARS
) {
15647 NDR_CHECK(ndr_push_align(ndr
, 4));
15648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
15649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
15650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
15651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
15652 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15654 if (ndr_flags
& NDR_BUFFERS
) {
15656 return NDR_ERR_SUCCESS
;
15659 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
15661 if (ndr_flags
& NDR_SCALARS
) {
15662 NDR_CHECK(ndr_pull_align(ndr
, 4));
15663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
15664 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
15665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
15666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
15667 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15669 if (ndr_flags
& NDR_BUFFERS
) {
15671 return NDR_ERR_SUCCESS
;
15674 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
15676 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
15678 ndr_print_uint32(ndr
, "left", r
->left
);
15679 ndr_print_uint32(ndr
, "top", r
->top
);
15680 ndr_print_uint32(ndr
, "right", r
->right
);
15681 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
15685 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
15687 if (ndr_flags
& NDR_SCALARS
) {
15688 NDR_CHECK(ndr_push_align(ndr
, 5));
15689 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15691 uint32_t _flags_save_string
= ndr
->flags
;
15692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15693 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15694 ndr
->flags
= _flags_save_string
;
15696 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15697 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15698 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15700 if (ndr_flags
& NDR_BUFFERS
) {
15702 uint32_t _flags_save_string
= ndr
->flags
;
15703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15704 if (r
->form_name
) {
15705 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15706 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15708 ndr
->flags
= _flags_save_string
;
15711 return NDR_ERR_SUCCESS
;
15714 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
15716 uint32_t _ptr_form_name
;
15717 TALLOC_CTX
*_mem_save_form_name_0
;
15718 if (ndr_flags
& NDR_SCALARS
) {
15719 NDR_CHECK(ndr_pull_align(ndr
, 5));
15720 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
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_form_name
));
15725 if (_ptr_form_name
) {
15726 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15727 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15729 r
->form_name
= NULL
;
15731 ndr
->flags
= _flags_save_string
;
15733 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15734 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15735 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15737 if (ndr_flags
& NDR_BUFFERS
) {
15739 uint32_t _flags_save_string
= ndr
->flags
;
15740 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15741 if (r
->form_name
) {
15742 uint32_t _relative_save_offset
;
15743 _relative_save_offset
= ndr
->offset
;
15744 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15745 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15746 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15747 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15749 ndr
->offset
= _relative_save_offset
;
15751 ndr
->flags
= _flags_save_string
;
15754 return NDR_ERR_SUCCESS
;
15757 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
15759 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
15761 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15762 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15764 if (r
->form_name
) {
15765 ndr_print_string(ndr
, "form_name", r
->form_name
);
15768 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15769 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15773 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15775 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
15778 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15781 return NDR_ERR_SUCCESS
;
15784 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15787 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15789 return NDR_ERR_SUCCESS
;
15792 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15794 ndr_print_uint32(ndr
, name
, r
);
15796 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
15797 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
15798 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
15802 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
15804 if (ndr_flags
& NDR_SCALARS
) {
15805 NDR_CHECK(ndr_push_align(ndr
, 5));
15806 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15808 uint32_t _flags_save_string
= ndr
->flags
;
15809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15810 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15811 ndr
->flags
= _flags_save_string
;
15813 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15814 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15816 uint32_t _flags_save_string
= ndr
->flags
;
15817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15818 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
15819 ndr
->flags
= _flags_save_string
;
15821 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15823 uint32_t _flags_save_string
= ndr
->flags
;
15824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15825 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
15826 ndr
->flags
= _flags_save_string
;
15828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15830 uint32_t _flags_save_string
= ndr
->flags
;
15831 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15832 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
15833 ndr
->flags
= _flags_save_string
;
15835 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lang_id
));
15836 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unused
));
15837 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15839 if (ndr_flags
& NDR_BUFFERS
) {
15841 uint32_t _flags_save_string
= ndr
->flags
;
15842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15843 if (r
->form_name
) {
15844 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15845 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15847 ndr
->flags
= _flags_save_string
;
15850 uint32_t _flags_save_string
= ndr
->flags
;
15851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15853 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15854 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15856 ndr
->flags
= _flags_save_string
;
15859 uint32_t _flags_save_string
= ndr
->flags
;
15860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15862 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15863 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15865 ndr
->flags
= _flags_save_string
;
15868 uint32_t _flags_save_string
= ndr
->flags
;
15869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15870 if (r
->display_name
) {
15871 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15872 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15874 ndr
->flags
= _flags_save_string
;
15877 return NDR_ERR_SUCCESS
;
15880 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15882 uint32_t _ptr_form_name
;
15883 TALLOC_CTX
*_mem_save_form_name_0
;
15884 uint32_t _ptr_keyword
;
15885 TALLOC_CTX
*_mem_save_keyword_0
;
15886 uint32_t _ptr_mui_dll
;
15887 TALLOC_CTX
*_mem_save_mui_dll_0
;
15888 uint32_t _ptr_display_name
;
15889 TALLOC_CTX
*_mem_save_display_name_0
;
15890 if (ndr_flags
& NDR_SCALARS
) {
15891 NDR_CHECK(ndr_pull_align(ndr
, 5));
15892 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15894 uint32_t _flags_save_string
= ndr
->flags
;
15895 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15897 if (_ptr_form_name
) {
15898 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15899 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15901 r
->form_name
= NULL
;
15903 ndr
->flags
= _flags_save_string
;
15905 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15906 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15908 uint32_t _flags_save_string
= ndr
->flags
;
15909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15911 if (_ptr_keyword
) {
15912 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15913 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15917 ndr
->flags
= _flags_save_string
;
15919 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15921 uint32_t _flags_save_string
= ndr
->flags
;
15922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15924 if (_ptr_mui_dll
) {
15925 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15926 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15930 ndr
->flags
= _flags_save_string
;
15932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15934 uint32_t _flags_save_string
= ndr
->flags
;
15935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15936 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15937 if (_ptr_display_name
) {
15938 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15939 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15941 r
->display_name
= NULL
;
15943 ndr
->flags
= _flags_save_string
;
15945 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lang_id
));
15946 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unused
));
15947 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15949 if (ndr_flags
& NDR_BUFFERS
) {
15951 uint32_t _flags_save_string
= ndr
->flags
;
15952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15953 if (r
->form_name
) {
15954 uint32_t _relative_save_offset
;
15955 _relative_save_offset
= ndr
->offset
;
15956 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15957 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15958 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15959 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15960 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15961 ndr
->offset
= _relative_save_offset
;
15963 ndr
->flags
= _flags_save_string
;
15966 uint32_t _flags_save_string
= ndr
->flags
;
15967 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15969 uint32_t _relative_save_offset
;
15970 _relative_save_offset
= ndr
->offset
;
15971 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15972 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15973 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15974 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15976 ndr
->offset
= _relative_save_offset
;
15978 ndr
->flags
= _flags_save_string
;
15981 uint32_t _flags_save_string
= ndr
->flags
;
15982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15984 uint32_t _relative_save_offset
;
15985 _relative_save_offset
= ndr
->offset
;
15986 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15987 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15988 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15989 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15991 ndr
->offset
= _relative_save_offset
;
15993 ndr
->flags
= _flags_save_string
;
15996 uint32_t _flags_save_string
= ndr
->flags
;
15997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15998 if (r
->display_name
) {
15999 uint32_t _relative_save_offset
;
16000 _relative_save_offset
= ndr
->offset
;
16001 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
16002 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16003 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16004 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
16005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16006 ndr
->offset
= _relative_save_offset
;
16008 ndr
->flags
= _flags_save_string
;
16011 return NDR_ERR_SUCCESS
;
16014 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
16016 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
16018 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16019 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16021 if (r
->form_name
) {
16022 ndr_print_string(ndr
, "form_name", r
->form_name
);
16025 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16026 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16027 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16030 ndr_print_string(ndr
, "keyword", r
->keyword
);
16033 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16034 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16037 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16040 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16041 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16043 if (r
->display_name
) {
16044 ndr_print_string(ndr
, "display_name", r
->display_name
);
16047 ndr_print_uint16(ndr
, "lang_id", r
->lang_id
);
16048 ndr_print_uint16(ndr
, "unused", r
->unused
);
16052 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16054 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
16057 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
16059 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16060 if (ndr_flags
& NDR_SCALARS
) {
16061 int level
= ndr_push_get_switch_value(ndr
, r
);
16062 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16065 NDR_CHECK(ndr_push_align(ndr
, 5));
16066 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16067 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16071 NDR_CHECK(ndr_push_align(ndr
, 5));
16072 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16073 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16081 if (ndr_flags
& NDR_BUFFERS
) {
16082 int level
= ndr_push_get_switch_value(ndr
, r
);
16083 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16086 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16090 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16098 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16099 return NDR_ERR_SUCCESS
;
16102 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
16104 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16106 level
= ndr_pull_get_switch_value(ndr
, r
);
16107 if (ndr_flags
& NDR_SCALARS
) {
16108 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16111 NDR_CHECK(ndr_pull_align(ndr
, 5));
16112 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16113 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16117 NDR_CHECK(ndr_pull_align(ndr
, 5));
16118 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16119 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16127 if (ndr_flags
& NDR_BUFFERS
) {
16128 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16131 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16135 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16143 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16144 return NDR_ERR_SUCCESS
;
16147 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
16150 level
= ndr_print_get_switch_value(ndr
, r
);
16151 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
16154 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
16158 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
16167 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
16169 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
16172 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
16174 if (ndr_flags
& NDR_SCALARS
) {
16175 NDR_CHECK(ndr_push_align(ndr
, 5));
16176 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16178 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16179 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16180 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16182 if (ndr_flags
& NDR_BUFFERS
) {
16183 if (r
->form_name
) {
16184 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16186 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16187 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16190 return NDR_ERR_SUCCESS
;
16193 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
16195 uint32_t _ptr_form_name
;
16196 TALLOC_CTX
*_mem_save_form_name_0
;
16197 if (ndr_flags
& NDR_SCALARS
) {
16198 NDR_CHECK(ndr_pull_align(ndr
, 5));
16199 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16201 if (_ptr_form_name
) {
16202 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16204 r
->form_name
= NULL
;
16206 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16207 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16208 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16210 if (ndr_flags
& NDR_BUFFERS
) {
16211 if (r
->form_name
) {
16212 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16213 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16216 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16217 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
));
16219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16224 return NDR_ERR_SUCCESS
;
16227 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
16229 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
16231 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16232 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16234 if (r
->form_name
) {
16235 ndr_print_string(ndr
, "form_name", r
->form_name
);
16238 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16239 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16243 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
16245 if (ndr_flags
& NDR_SCALARS
) {
16246 NDR_CHECK(ndr_push_align(ndr
, 5));
16247 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16248 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16249 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16250 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
16252 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16253 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
16254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
16256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
16257 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16259 if (ndr_flags
& NDR_BUFFERS
) {
16260 if (r
->form_name
) {
16261 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16262 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16263 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16264 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16267 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16268 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16269 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16270 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
16273 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16274 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16275 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16276 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16278 if (r
->display_name
) {
16279 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16281 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16282 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16285 return NDR_ERR_SUCCESS
;
16288 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
16290 uint32_t _ptr_form_name
;
16291 TALLOC_CTX
*_mem_save_form_name_0
;
16292 uint32_t _ptr_keyword
;
16293 TALLOC_CTX
*_mem_save_keyword_0
;
16294 uint32_t _ptr_mui_dll
;
16295 TALLOC_CTX
*_mem_save_mui_dll_0
;
16296 uint32_t _ptr_display_name
;
16297 TALLOC_CTX
*_mem_save_display_name_0
;
16298 if (ndr_flags
& NDR_SCALARS
) {
16299 NDR_CHECK(ndr_pull_align(ndr
, 5));
16300 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16301 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16302 if (_ptr_form_name
) {
16303 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16305 r
->form_name
= NULL
;
16307 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16308 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16310 if (_ptr_keyword
) {
16311 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16315 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16317 if (_ptr_mui_dll
) {
16318 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16323 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16324 if (_ptr_display_name
) {
16325 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16327 r
->display_name
= NULL
;
16329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
16330 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16332 if (ndr_flags
& NDR_BUFFERS
) {
16333 if (r
->form_name
) {
16334 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16335 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16336 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16337 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16338 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16339 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
));
16341 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16342 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16346 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16347 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
16349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
16350 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
16351 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
));
16353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
16354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
16355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16358 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16359 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
16361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
16362 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
16363 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
));
16365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
16366 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
16367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16369 if (r
->display_name
) {
16370 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16371 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16372 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
16373 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
16374 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
16375 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
));
16377 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
16378 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
16379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16382 return NDR_ERR_SUCCESS
;
16385 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
16387 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
16389 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16390 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16392 if (r
->form_name
) {
16393 ndr_print_string(ndr
, "form_name", r
->form_name
);
16396 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16397 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16398 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16401 ndr_print_string(ndr
, "keyword", r
->keyword
);
16404 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16405 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16408 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16411 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16412 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16414 if (r
->display_name
) {
16415 ndr_print_string(ndr
, "display_name", r
->display_name
);
16418 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
16422 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
16424 if (ndr_flags
& NDR_SCALARS
) {
16425 int level
= ndr_push_get_switch_value(ndr
, r
);
16426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
16427 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
16434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
16438 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16441 if (ndr_flags
& NDR_BUFFERS
) {
16442 int level
= ndr_push_get_switch_value(ndr
, r
);
16446 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16452 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16457 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16460 return NDR_ERR_SUCCESS
;
16463 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
16467 TALLOC_CTX
*_mem_save_info1_0
;
16468 TALLOC_CTX
*_mem_save_info2_0
;
16469 level
= ndr_pull_get_switch_value(ndr
, r
);
16470 if (ndr_flags
& NDR_SCALARS
) {
16471 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16472 if (_level
!= level
) {
16473 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
16475 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16478 uint32_t _ptr_info1
;
16479 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16481 NDR_PULL_ALLOC(ndr
, r
->info1
);
16488 uint32_t _ptr_info2
;
16489 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
16491 NDR_PULL_ALLOC(ndr
, r
->info2
);
16498 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16501 if (ndr_flags
& NDR_BUFFERS
) {
16505 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16506 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16507 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16514 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16515 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
16516 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
16522 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16525 return NDR_ERR_SUCCESS
;
16528 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
16531 level
= ndr_print_get_switch_value(ndr
, r
);
16532 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
16535 ndr_print_ptr(ndr
, "info1", r
->info1
);
16538 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
16544 ndr_print_ptr(ndr
, "info2", r
->info2
);
16547 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
16553 ndr_print_bad_level(ndr
, name
, level
);
16557 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
16559 if (ndr_flags
& NDR_SCALARS
) {
16560 NDR_CHECK(ndr_push_align(ndr
, 5));
16562 uint32_t _flags_save_string
= ndr
->flags
;
16563 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16564 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16565 ndr
->flags
= _flags_save_string
;
16567 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16569 if (ndr_flags
& NDR_BUFFERS
) {
16571 uint32_t _flags_save_string
= ndr
->flags
;
16572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16573 if (r
->port_name
) {
16574 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16575 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16577 ndr
->flags
= _flags_save_string
;
16580 return NDR_ERR_SUCCESS
;
16583 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
16585 uint32_t _ptr_port_name
;
16586 TALLOC_CTX
*_mem_save_port_name_0
;
16587 if (ndr_flags
& NDR_SCALARS
) {
16588 NDR_CHECK(ndr_pull_align(ndr
, 5));
16590 uint32_t _flags_save_string
= ndr
->flags
;
16591 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16593 if (_ptr_port_name
) {
16594 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16595 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16597 r
->port_name
= NULL
;
16599 ndr
->flags
= _flags_save_string
;
16601 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16603 if (ndr_flags
& NDR_BUFFERS
) {
16605 uint32_t _flags_save_string
= ndr
->flags
;
16606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16607 if (r
->port_name
) {
16608 uint32_t _relative_save_offset
;
16609 _relative_save_offset
= ndr
->offset
;
16610 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16611 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16612 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16613 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16615 ndr
->offset
= _relative_save_offset
;
16617 ndr
->flags
= _flags_save_string
;
16620 return NDR_ERR_SUCCESS
;
16623 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
16625 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
16627 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16629 if (r
->port_name
) {
16630 ndr_print_string(ndr
, "port_name", r
->port_name
);
16636 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16638 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
16641 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16644 return NDR_ERR_SUCCESS
;
16647 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16652 return NDR_ERR_SUCCESS
;
16655 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16657 ndr_print_uint32(ndr
, name
, r
);
16659 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
16660 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
16661 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
16662 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
16666 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
16668 if (ndr_flags
& NDR_SCALARS
) {
16669 NDR_CHECK(ndr_push_align(ndr
, 5));
16671 uint32_t _flags_save_string
= ndr
->flags
;
16672 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16673 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16674 ndr
->flags
= _flags_save_string
;
16677 uint32_t _flags_save_string
= ndr
->flags
;
16678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16679 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16680 ndr
->flags
= _flags_save_string
;
16683 uint32_t _flags_save_string
= ndr
->flags
;
16684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16685 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
16686 ndr
->flags
= _flags_save_string
;
16688 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
16689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16690 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16692 if (ndr_flags
& NDR_BUFFERS
) {
16694 uint32_t _flags_save_string
= ndr
->flags
;
16695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16696 if (r
->port_name
) {
16697 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16698 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16700 ndr
->flags
= _flags_save_string
;
16703 uint32_t _flags_save_string
= ndr
->flags
;
16704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16705 if (r
->monitor_name
) {
16706 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16707 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16709 ndr
->flags
= _flags_save_string
;
16712 uint32_t _flags_save_string
= ndr
->flags
;
16713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16714 if (r
->description
) {
16715 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
16716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
16718 ndr
->flags
= _flags_save_string
;
16721 return NDR_ERR_SUCCESS
;
16724 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
16726 uint32_t _ptr_port_name
;
16727 TALLOC_CTX
*_mem_save_port_name_0
;
16728 uint32_t _ptr_monitor_name
;
16729 TALLOC_CTX
*_mem_save_monitor_name_0
;
16730 uint32_t _ptr_description
;
16731 TALLOC_CTX
*_mem_save_description_0
;
16732 if (ndr_flags
& NDR_SCALARS
) {
16733 NDR_CHECK(ndr_pull_align(ndr
, 5));
16735 uint32_t _flags_save_string
= ndr
->flags
;
16736 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16737 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16738 if (_ptr_port_name
) {
16739 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16740 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16742 r
->port_name
= NULL
;
16744 ndr
->flags
= _flags_save_string
;
16747 uint32_t _flags_save_string
= ndr
->flags
;
16748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16749 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16750 if (_ptr_monitor_name
) {
16751 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16752 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16754 r
->monitor_name
= NULL
;
16756 ndr
->flags
= _flags_save_string
;
16759 uint32_t _flags_save_string
= ndr
->flags
;
16760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
16762 if (_ptr_description
) {
16763 NDR_PULL_ALLOC(ndr
, r
->description
);
16764 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
16766 r
->description
= NULL
;
16768 ndr
->flags
= _flags_save_string
;
16770 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
16771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16772 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16774 if (ndr_flags
& NDR_BUFFERS
) {
16776 uint32_t _flags_save_string
= ndr
->flags
;
16777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16778 if (r
->port_name
) {
16779 uint32_t _relative_save_offset
;
16780 _relative_save_offset
= ndr
->offset
;
16781 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16782 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16783 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16784 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16786 ndr
->offset
= _relative_save_offset
;
16788 ndr
->flags
= _flags_save_string
;
16791 uint32_t _flags_save_string
= ndr
->flags
;
16792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16793 if (r
->monitor_name
) {
16794 uint32_t _relative_save_offset
;
16795 _relative_save_offset
= ndr
->offset
;
16796 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16797 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16798 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16799 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16801 ndr
->offset
= _relative_save_offset
;
16803 ndr
->flags
= _flags_save_string
;
16806 uint32_t _flags_save_string
= ndr
->flags
;
16807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16808 if (r
->description
) {
16809 uint32_t _relative_save_offset
;
16810 _relative_save_offset
= ndr
->offset
;
16811 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
16812 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16813 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
16814 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
16815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
16816 ndr
->offset
= _relative_save_offset
;
16818 ndr
->flags
= _flags_save_string
;
16821 return NDR_ERR_SUCCESS
;
16824 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
16826 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
16828 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16830 if (r
->port_name
) {
16831 ndr_print_string(ndr
, "port_name", r
->port_name
);
16834 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16836 if (r
->monitor_name
) {
16837 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16840 ndr_print_ptr(ndr
, "description", r
->description
);
16842 if (r
->description
) {
16843 ndr_print_string(ndr
, "description", r
->description
);
16846 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
16847 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16851 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16853 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
16856 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
16858 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16859 return NDR_ERR_SUCCESS
;
16862 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16865 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16867 return NDR_ERR_SUCCESS
;
16870 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16872 const char *val
= NULL
;
16875 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16876 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16877 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16878 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16879 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16880 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16881 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16882 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16883 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16884 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16885 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16886 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16887 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16889 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16892 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16894 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16895 return NDR_ERR_SUCCESS
;
16898 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16901 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16903 return NDR_ERR_SUCCESS
;
16906 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16908 const char *val
= NULL
;
16911 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16912 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16913 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16915 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16918 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16920 if (ndr_flags
& NDR_SCALARS
) {
16921 NDR_CHECK(ndr_push_align(ndr
, 5));
16922 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16924 uint32_t _flags_save_string
= ndr
->flags
;
16925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16926 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16927 ndr
->flags
= _flags_save_string
;
16929 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16930 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16932 if (ndr_flags
& NDR_BUFFERS
) {
16934 uint32_t _flags_save_string
= ndr
->flags
;
16935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16936 if (r
->status_string
) {
16937 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16938 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16940 ndr
->flags
= _flags_save_string
;
16943 return NDR_ERR_SUCCESS
;
16946 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16948 uint32_t _ptr_status_string
;
16949 TALLOC_CTX
*_mem_save_status_string_0
;
16950 if (ndr_flags
& NDR_SCALARS
) {
16951 NDR_CHECK(ndr_pull_align(ndr
, 5));
16952 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16954 uint32_t _flags_save_string
= ndr
->flags
;
16955 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16956 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16957 if (_ptr_status_string
) {
16958 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16959 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16961 r
->status_string
= NULL
;
16963 ndr
->flags
= _flags_save_string
;
16965 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16966 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16968 if (ndr_flags
& NDR_BUFFERS
) {
16970 uint32_t _flags_save_string
= ndr
->flags
;
16971 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16972 if (r
->status_string
) {
16973 uint32_t _relative_save_offset
;
16974 _relative_save_offset
= ndr
->offset
;
16975 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16976 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16977 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16978 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16980 ndr
->offset
= _relative_save_offset
;
16982 ndr
->flags
= _flags_save_string
;
16985 return NDR_ERR_SUCCESS
;
16988 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16990 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16992 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16993 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16995 if (r
->status_string
) {
16996 ndr_print_string(ndr
, "status_string", r
->status_string
);
16999 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
17003 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17005 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
17008 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
17010 if (ndr_flags
& NDR_SCALARS
) {
17011 NDR_CHECK(ndr_push_align(ndr
, 5));
17013 uint32_t _flags_save_string
= ndr
->flags
;
17014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17015 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17016 ndr
->flags
= _flags_save_string
;
17018 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
17019 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17021 if (ndr_flags
& NDR_BUFFERS
) {
17023 uint32_t _flags_save_string
= ndr
->flags
;
17024 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17025 if (r
->port_name
) {
17026 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
17027 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17029 ndr
->flags
= _flags_save_string
;
17032 return NDR_ERR_SUCCESS
;
17035 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
17037 uint32_t _ptr_port_name
;
17038 TALLOC_CTX
*_mem_save_port_name_0
;
17039 if (ndr_flags
& NDR_SCALARS
) {
17040 NDR_CHECK(ndr_pull_align(ndr
, 5));
17042 uint32_t _flags_save_string
= ndr
->flags
;
17043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17045 if (_ptr_port_name
) {
17046 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17047 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17049 r
->port_name
= NULL
;
17051 ndr
->flags
= _flags_save_string
;
17053 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
17054 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17056 if (ndr_flags
& NDR_BUFFERS
) {
17058 uint32_t _flags_save_string
= ndr
->flags
;
17059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17060 if (r
->port_name
) {
17061 uint32_t _relative_save_offset
;
17062 _relative_save_offset
= ndr
->offset
;
17063 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17064 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17065 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17066 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17068 ndr
->offset
= _relative_save_offset
;
17070 ndr
->flags
= _flags_save_string
;
17073 return NDR_ERR_SUCCESS
;
17076 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
17078 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
17080 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17082 if (r
->port_name
) {
17083 ndr_print_string(ndr
, "port_name", r
->port_name
);
17086 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
17090 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17092 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
17095 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
17097 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17098 if (ndr_flags
& NDR_SCALARS
) {
17099 int level
= ndr_push_get_switch_value(ndr
, r
);
17100 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17103 NDR_CHECK(ndr_push_align(ndr
, 5));
17104 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17105 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17109 NDR_CHECK(ndr_push_align(ndr
, 5));
17110 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17111 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17115 NDR_CHECK(ndr_push_align(ndr
, 5));
17116 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17117 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
17121 NDR_CHECK(ndr_push_align(ndr
, 5));
17122 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17123 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
17131 if (ndr_flags
& NDR_BUFFERS
) {
17132 int level
= ndr_push_get_switch_value(ndr
, r
);
17133 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17136 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17140 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17144 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17148 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17156 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17157 return NDR_ERR_SUCCESS
;
17160 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
17162 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17164 level
= ndr_pull_get_switch_value(ndr
, r
);
17165 if (ndr_flags
& NDR_SCALARS
) {
17166 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17169 NDR_CHECK(ndr_pull_align(ndr
, 5));
17170 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17171 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17175 NDR_CHECK(ndr_pull_align(ndr
, 5));
17176 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17177 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17181 NDR_CHECK(ndr_pull_align(ndr
, 5));
17182 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17183 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
17187 NDR_CHECK(ndr_pull_align(ndr
, 5));
17188 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17189 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
17197 if (ndr_flags
& NDR_BUFFERS
) {
17198 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17201 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17205 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17209 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17213 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17221 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17222 return NDR_ERR_SUCCESS
;
17225 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
17228 level
= ndr_print_get_switch_value(ndr
, r
);
17229 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
17232 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
17236 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
17240 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
17244 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
17253 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
17255 if (ndr_flags
& NDR_SCALARS
) {
17256 NDR_CHECK(ndr_push_align(ndr
, 5));
17258 uint32_t _flags_save_string
= ndr
->flags
;
17259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17260 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17261 ndr
->flags
= _flags_save_string
;
17263 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17265 if (ndr_flags
& NDR_BUFFERS
) {
17267 uint32_t _flags_save_string
= ndr
->flags
;
17268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17269 if (r
->monitor_name
) {
17270 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17271 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17273 ndr
->flags
= _flags_save_string
;
17276 return NDR_ERR_SUCCESS
;
17279 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
17281 uint32_t _ptr_monitor_name
;
17282 TALLOC_CTX
*_mem_save_monitor_name_0
;
17283 if (ndr_flags
& NDR_SCALARS
) {
17284 NDR_CHECK(ndr_pull_align(ndr
, 5));
17286 uint32_t _flags_save_string
= ndr
->flags
;
17287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17288 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17289 if (_ptr_monitor_name
) {
17290 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17291 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17293 r
->monitor_name
= NULL
;
17295 ndr
->flags
= _flags_save_string
;
17297 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17299 if (ndr_flags
& NDR_BUFFERS
) {
17301 uint32_t _flags_save_string
= ndr
->flags
;
17302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17303 if (r
->monitor_name
) {
17304 uint32_t _relative_save_offset
;
17305 _relative_save_offset
= ndr
->offset
;
17306 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17307 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17308 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17309 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17311 ndr
->offset
= _relative_save_offset
;
17313 ndr
->flags
= _flags_save_string
;
17316 return NDR_ERR_SUCCESS
;
17319 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
17321 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
17323 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17325 if (r
->monitor_name
) {
17326 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17332 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17334 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
17337 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
17339 if (ndr_flags
& NDR_SCALARS
) {
17340 NDR_CHECK(ndr_push_align(ndr
, 5));
17342 uint32_t _flags_save_string
= ndr
->flags
;
17343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17344 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17345 ndr
->flags
= _flags_save_string
;
17348 uint32_t _flags_save_string
= ndr
->flags
;
17349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17350 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
17351 ndr
->flags
= _flags_save_string
;
17354 uint32_t _flags_save_string
= ndr
->flags
;
17355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17356 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
17357 ndr
->flags
= _flags_save_string
;
17359 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17361 if (ndr_flags
& NDR_BUFFERS
) {
17363 uint32_t _flags_save_string
= ndr
->flags
;
17364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17365 if (r
->monitor_name
) {
17366 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17367 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17369 ndr
->flags
= _flags_save_string
;
17372 uint32_t _flags_save_string
= ndr
->flags
;
17373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17374 if (r
->environment
) {
17375 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
17376 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
17378 ndr
->flags
= _flags_save_string
;
17381 uint32_t _flags_save_string
= ndr
->flags
;
17382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17384 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
17385 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
17387 ndr
->flags
= _flags_save_string
;
17390 return NDR_ERR_SUCCESS
;
17393 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
17395 uint32_t _ptr_monitor_name
;
17396 TALLOC_CTX
*_mem_save_monitor_name_0
;
17397 uint32_t _ptr_environment
;
17398 TALLOC_CTX
*_mem_save_environment_0
;
17399 uint32_t _ptr_dll_name
;
17400 TALLOC_CTX
*_mem_save_dll_name_0
;
17401 if (ndr_flags
& NDR_SCALARS
) {
17402 NDR_CHECK(ndr_pull_align(ndr
, 5));
17404 uint32_t _flags_save_string
= ndr
->flags
;
17405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17406 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17407 if (_ptr_monitor_name
) {
17408 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17409 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17411 r
->monitor_name
= NULL
;
17413 ndr
->flags
= _flags_save_string
;
17416 uint32_t _flags_save_string
= ndr
->flags
;
17417 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
17419 if (_ptr_environment
) {
17420 NDR_PULL_ALLOC(ndr
, r
->environment
);
17421 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
17423 r
->environment
= NULL
;
17425 ndr
->flags
= _flags_save_string
;
17428 uint32_t _flags_save_string
= ndr
->flags
;
17429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
17431 if (_ptr_dll_name
) {
17432 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
17433 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
17435 r
->dll_name
= NULL
;
17437 ndr
->flags
= _flags_save_string
;
17439 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17441 if (ndr_flags
& NDR_BUFFERS
) {
17443 uint32_t _flags_save_string
= ndr
->flags
;
17444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17445 if (r
->monitor_name
) {
17446 uint32_t _relative_save_offset
;
17447 _relative_save_offset
= ndr
->offset
;
17448 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17449 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17450 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17451 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17453 ndr
->offset
= _relative_save_offset
;
17455 ndr
->flags
= _flags_save_string
;
17458 uint32_t _flags_save_string
= ndr
->flags
;
17459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17460 if (r
->environment
) {
17461 uint32_t _relative_save_offset
;
17462 _relative_save_offset
= ndr
->offset
;
17463 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
17464 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17465 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
17466 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
17467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
17468 ndr
->offset
= _relative_save_offset
;
17470 ndr
->flags
= _flags_save_string
;
17473 uint32_t _flags_save_string
= ndr
->flags
;
17474 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17476 uint32_t _relative_save_offset
;
17477 _relative_save_offset
= ndr
->offset
;
17478 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
17479 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17480 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
17481 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
17482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
17483 ndr
->offset
= _relative_save_offset
;
17485 ndr
->flags
= _flags_save_string
;
17488 return NDR_ERR_SUCCESS
;
17491 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
17493 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
17495 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17497 if (r
->monitor_name
) {
17498 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17501 ndr_print_ptr(ndr
, "environment", r
->environment
);
17503 if (r
->environment
) {
17504 ndr_print_string(ndr
, "environment", r
->environment
);
17507 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
17510 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
17516 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17518 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
17521 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
17523 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17524 if (ndr_flags
& NDR_SCALARS
) {
17525 int level
= ndr_push_get_switch_value(ndr
, r
);
17526 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17529 NDR_CHECK(ndr_push_align(ndr
, 5));
17530 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17531 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17535 NDR_CHECK(ndr_push_align(ndr
, 5));
17536 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17537 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17545 if (ndr_flags
& NDR_BUFFERS
) {
17546 int level
= ndr_push_get_switch_value(ndr
, r
);
17547 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17550 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17554 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17562 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17563 return NDR_ERR_SUCCESS
;
17566 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
17568 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17570 level
= ndr_pull_get_switch_value(ndr
, r
);
17571 if (ndr_flags
& NDR_SCALARS
) {
17572 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17575 NDR_CHECK(ndr_pull_align(ndr
, 5));
17576 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17577 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17581 NDR_CHECK(ndr_pull_align(ndr
, 5));
17582 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17583 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17591 if (ndr_flags
& NDR_BUFFERS
) {
17592 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17595 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17599 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17607 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17608 return NDR_ERR_SUCCESS
;
17611 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
17614 level
= ndr_print_get_switch_value(ndr
, r
);
17615 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
17618 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
17622 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
17631 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17633 if (ndr_flags
& NDR_SCALARS
) {
17634 NDR_CHECK(ndr_push_align(ndr
, 5));
17636 uint32_t _flags_save_string
= ndr
->flags
;
17637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17638 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
17639 ndr
->flags
= _flags_save_string
;
17641 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17643 if (ndr_flags
& NDR_BUFFERS
) {
17645 uint32_t _flags_save_string
= ndr
->flags
;
17646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17647 if (r
->name_array
) {
17648 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
17649 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
17651 ndr
->flags
= _flags_save_string
;
17654 return NDR_ERR_SUCCESS
;
17657 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
17659 uint32_t _ptr_name_array
;
17660 TALLOC_CTX
*_mem_save_name_array_0
;
17661 if (ndr_flags
& NDR_SCALARS
) {
17662 NDR_CHECK(ndr_pull_align(ndr
, 5));
17664 uint32_t _flags_save_string
= ndr
->flags
;
17665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17666 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
17667 if (_ptr_name_array
) {
17668 NDR_PULL_ALLOC(ndr
, r
->name_array
);
17669 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
17671 r
->name_array
= NULL
;
17673 ndr
->flags
= _flags_save_string
;
17675 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17677 if (ndr_flags
& NDR_BUFFERS
) {
17679 uint32_t _flags_save_string
= ndr
->flags
;
17680 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17681 if (r
->name_array
) {
17682 uint32_t _relative_save_offset
;
17683 _relative_save_offset
= ndr
->offset
;
17684 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
17685 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17686 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
17687 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
17688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
17689 ndr
->offset
= _relative_save_offset
;
17691 ndr
->flags
= _flags_save_string
;
17694 return NDR_ERR_SUCCESS
;
17697 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17699 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
17701 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
17703 if (r
->name_array
) {
17704 ndr_print_string(ndr
, "name_array", r
->name_array
);
17710 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17712 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
17715 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
17717 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17718 if (ndr_flags
& NDR_SCALARS
) {
17719 int level
= ndr_push_get_switch_value(ndr
, r
);
17720 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17723 NDR_CHECK(ndr_push_align(ndr
, 5));
17724 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17725 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17733 if (ndr_flags
& NDR_BUFFERS
) {
17734 int level
= ndr_push_get_switch_value(ndr
, r
);
17735 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17738 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17746 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17747 return NDR_ERR_SUCCESS
;
17750 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
17752 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17754 level
= ndr_pull_get_switch_value(ndr
, r
);
17755 if (ndr_flags
& NDR_SCALARS
) {
17756 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17759 NDR_CHECK(ndr_pull_align(ndr
, 5));
17760 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17761 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17769 if (ndr_flags
& NDR_BUFFERS
) {
17770 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17773 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17781 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17782 return NDR_ERR_SUCCESS
;
17785 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
17788 level
= ndr_print_get_switch_value(ndr
, r
);
17789 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
17792 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
17801 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17804 return NDR_ERR_SUCCESS
;
17807 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17812 return NDR_ERR_SUCCESS
;
17815 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17817 ndr_print_uint32(ndr
, name
, r
);
17819 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
17820 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
17821 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
17822 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
17823 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
17824 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
17825 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
17826 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
17827 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
17828 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
17829 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
17830 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
17831 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
17832 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
17833 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
17834 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
17835 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
17836 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
17837 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
17838 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
17839 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
17843 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
17845 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17846 return NDR_ERR_SUCCESS
;
17849 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
17852 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17854 return NDR_ERR_SUCCESS
;
17857 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
17859 const char *val
= NULL
;
17862 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17863 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17864 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17865 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
17866 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17867 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
17868 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17869 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17870 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17871 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
17872 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
17873 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17874 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17875 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17876 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
17877 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
17878 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17879 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
17880 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17881 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
17882 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17883 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17884 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17885 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17887 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17890 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
17892 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17893 return NDR_ERR_SUCCESS
;
17896 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
17899 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17901 return NDR_ERR_SUCCESS
;
17904 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
17906 const char *val
= NULL
;
17909 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17910 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17911 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17912 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17913 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17914 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17915 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17916 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17917 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17918 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17919 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17920 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17921 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17922 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17923 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17924 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17925 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17926 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17927 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
17928 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17929 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17930 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17931 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17932 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17933 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17934 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17935 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17936 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17938 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17941 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17943 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17944 return NDR_ERR_SUCCESS
;
17947 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17950 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17952 return NDR_ERR_SUCCESS
;
17955 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17957 const char *val
= NULL
;
17960 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17961 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17963 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17966 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
17968 if (ndr_flags
& NDR_SCALARS
) {
17969 int level
= ndr_push_get_switch_value(ndr
, r
);
17970 NDR_CHECK(ndr_push_union_align(ndr
, 2));
17972 case PRINTER_NOTIFY_TYPE
: {
17973 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17976 case JOB_NOTIFY_TYPE
: {
17977 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17981 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17986 if (ndr_flags
& NDR_BUFFERS
) {
17987 int level
= ndr_push_get_switch_value(ndr
, r
);
17989 case PRINTER_NOTIFY_TYPE
:
17992 case JOB_NOTIFY_TYPE
:
18000 return NDR_ERR_SUCCESS
;
18003 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
18006 level
= ndr_pull_get_switch_value(ndr
, r
);
18007 if (ndr_flags
& NDR_SCALARS
) {
18008 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
18010 case PRINTER_NOTIFY_TYPE
: {
18011 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18014 case JOB_NOTIFY_TYPE
: {
18015 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18019 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18024 if (ndr_flags
& NDR_BUFFERS
) {
18026 case PRINTER_NOTIFY_TYPE
:
18029 case JOB_NOTIFY_TYPE
:
18037 return NDR_ERR_SUCCESS
;
18040 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
18042 uint32_t cntr_fields_1
;
18043 if (ndr_flags
& NDR_SCALARS
) {
18044 NDR_CHECK(ndr_push_align(ndr
, 5));
18045 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18046 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
18047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
18048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
18049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18050 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
18051 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18053 if (ndr_flags
& NDR_BUFFERS
) {
18055 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18056 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
18057 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
18058 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
18062 return NDR_ERR_SUCCESS
;
18065 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
18067 uint32_t _ptr_fields
;
18068 uint32_t cntr_fields_1
;
18069 TALLOC_CTX
*_mem_save_fields_0
;
18070 TALLOC_CTX
*_mem_save_fields_1
;
18071 if (ndr_flags
& NDR_SCALARS
) {
18072 NDR_CHECK(ndr_pull_align(ndr
, 5));
18073 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18074 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
18075 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
18076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
18077 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
18080 NDR_PULL_ALLOC(ndr
, r
->fields
);
18084 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18086 if (ndr_flags
& NDR_BUFFERS
) {
18088 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18089 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
18090 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
18091 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
18092 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
18093 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
18094 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
18095 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
18096 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
18098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
18099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
18102 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
18105 return NDR_ERR_SUCCESS
;
18108 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
18110 uint32_t cntr_fields_1
;
18111 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
18113 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18114 ndr_print_uint16(ndr
, "u1", r
->u1
);
18115 ndr_print_uint32(ndr
, "u2", r
->u2
);
18116 ndr_print_uint32(ndr
, "u3", r
->u3
);
18117 ndr_print_uint32(ndr
, "count", r
->count
);
18118 ndr_print_ptr(ndr
, "fields", r
->fields
);
18121 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
18123 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
18125 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
18126 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
18127 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
18137 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18140 return NDR_ERR_SUCCESS
;
18143 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18146 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18148 return NDR_ERR_SUCCESS
;
18151 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18153 ndr_print_uint32(ndr
, name
, r
);
18155 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
18159 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
18161 uint32_t cntr_types_1
;
18162 if (ndr_flags
& NDR_SCALARS
) {
18163 NDR_CHECK(ndr_push_align(ndr
, 5));
18164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18165 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
18166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18167 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
18168 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18170 if (ndr_flags
& NDR_BUFFERS
) {
18172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18173 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18174 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18176 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18177 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18181 return NDR_ERR_SUCCESS
;
18184 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
18186 uint32_t _ptr_types
;
18187 uint32_t cntr_types_1
;
18188 TALLOC_CTX
*_mem_save_types_0
;
18189 TALLOC_CTX
*_mem_save_types_1
;
18190 if (ndr_flags
& NDR_SCALARS
) {
18191 NDR_CHECK(ndr_pull_align(ndr
, 5));
18192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18193 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
18194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
18197 NDR_PULL_ALLOC(ndr
, r
->types
);
18201 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18203 if (ndr_flags
& NDR_BUFFERS
) {
18205 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18206 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18207 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
18208 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
18209 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
18210 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18211 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18212 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18214 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18215 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
18218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
18221 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
18224 return NDR_ERR_SUCCESS
;
18227 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
18229 uint32_t cntr_types_1
;
18230 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
18232 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18233 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
18234 ndr_print_uint32(ndr
, "count", r
->count
);
18235 ndr_print_ptr(ndr
, "types", r
->types
);
18238 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
18240 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
18242 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
18243 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
18253 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
18255 if (ndr_flags
& NDR_SCALARS
) {
18256 NDR_CHECK(ndr_push_align(ndr
, 5));
18257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18258 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
18259 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18261 if (ndr_flags
& NDR_BUFFERS
) {
18263 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
18264 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
18267 return NDR_ERR_SUCCESS
;
18270 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
18272 uint32_t _ptr_string
;
18273 TALLOC_CTX
*_mem_save_string_0
;
18274 if (ndr_flags
& NDR_SCALARS
) {
18275 NDR_CHECK(ndr_pull_align(ndr
, 5));
18276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18277 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
18279 NDR_PULL_ALLOC(ndr
, r
->string
);
18283 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18285 if (ndr_flags
& NDR_BUFFERS
) {
18287 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18288 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
18289 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
18290 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
18291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
18294 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
18297 return NDR_ERR_SUCCESS
;
18300 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
18302 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
18304 ndr_print_uint32(ndr
, "size", r
->size
);
18305 ndr_print_ptr(ndr
, "string", r
->string
);
18308 ndr_print_string(ndr
, "string", r
->string
);
18314 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
18316 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
18317 return NDR_ERR_SUCCESS
;
18320 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
18323 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
18325 return NDR_ERR_SUCCESS
;
18328 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
18330 const char *val
= NULL
;
18333 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
18334 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
18335 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
18336 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
18337 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18339 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18342 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
18344 if (ndr_flags
& NDR_SCALARS
) {
18345 int level
= ndr_push_get_switch_value(ndr
, r
);
18346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18347 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18350 uint32_t cntr_integer_0
;
18351 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
18357 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18361 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18365 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18369 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18373 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18376 if (ndr_flags
& NDR_BUFFERS
) {
18377 int level
= ndr_push_get_switch_value(ndr
, r
);
18383 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18387 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18391 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18395 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18399 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18402 return NDR_ERR_SUCCESS
;
18405 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
18409 level
= ndr_pull_get_switch_value(ndr
, r
);
18410 if (ndr_flags
& NDR_SCALARS
) {
18411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18412 if (_level
!= level
) {
18413 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18415 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18418 uint32_t cntr_integer_0
;
18419 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
18425 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18429 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18433 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18437 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18441 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18444 if (ndr_flags
& NDR_BUFFERS
) {
18450 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18454 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18458 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18462 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18466 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18469 return NDR_ERR_SUCCESS
;
18472 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
18475 uint32_t cntr_integer_0
;
18476 level
= ndr_print_get_switch_value(ndr
, r
);
18477 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
18480 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
18482 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
18484 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
18485 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
18493 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
18497 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
18501 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
18505 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
18509 ndr_print_bad_level(ndr
, name
, level
);
18513 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
18515 if (ndr_flags
& NDR_SCALARS
) {
18516 NDR_CHECK(ndr_push_align(ndr
, 5));
18517 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18518 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
18519 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18520 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
18521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
18522 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18523 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18524 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18526 if (ndr_flags
& NDR_BUFFERS
) {
18527 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18529 return NDR_ERR_SUCCESS
;
18532 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
18534 if (ndr_flags
& NDR_SCALARS
) {
18535 NDR_CHECK(ndr_pull_align(ndr
, 5));
18536 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18537 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
18538 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18539 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
18540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
18541 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18542 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18543 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18545 if (ndr_flags
& NDR_BUFFERS
) {
18546 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18548 return NDR_ERR_SUCCESS
;
18551 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
18553 ndr_print_struct(ndr
, name
, "spoolss_Notify");
18555 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18556 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
18557 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
18558 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
18559 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
18560 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
18561 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
18565 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
18567 uint32_t cntr_notifies_0
;
18568 if (ndr_flags
& NDR_SCALARS
) {
18569 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18570 NDR_CHECK(ndr_push_align(ndr
, 5));
18571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18574 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18575 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18577 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18579 if (ndr_flags
& NDR_BUFFERS
) {
18580 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18581 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18584 return NDR_ERR_SUCCESS
;
18587 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
18589 uint32_t cntr_notifies_0
;
18590 TALLOC_CTX
*_mem_save_notifies_0
;
18591 if (ndr_flags
& NDR_SCALARS
) {
18592 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
18593 NDR_CHECK(ndr_pull_align(ndr
, 5));
18594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18595 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18597 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
18598 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18599 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18600 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18601 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18605 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
18607 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18609 if (ndr_flags
& NDR_BUFFERS
) {
18610 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18611 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18612 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18613 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18617 return NDR_ERR_SUCCESS
;
18620 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
18622 uint32_t cntr_notifies_0
;
18623 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
18625 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18626 ndr_print_uint32(ndr
, "flags", r
->flags
);
18627 ndr_print_uint32(ndr
, "count", r
->count
);
18628 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
18630 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
18632 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
18633 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
18641 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
18643 if (ndr_flags
& NDR_SCALARS
) {
18644 int level
= ndr_push_get_switch_value(ndr
, r
);
18645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18646 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18649 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
18653 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18656 if (ndr_flags
& NDR_BUFFERS
) {
18657 int level
= ndr_push_get_switch_value(ndr
, r
);
18661 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18666 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18669 return NDR_ERR_SUCCESS
;
18672 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
18676 TALLOC_CTX
*_mem_save_info0_0
;
18677 level
= ndr_pull_get_switch_value(ndr
, r
);
18678 if (ndr_flags
& NDR_SCALARS
) {
18679 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18680 if (_level
!= level
) {
18681 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18683 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18686 uint32_t _ptr_info0
;
18687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
18689 NDR_PULL_ALLOC(ndr
, r
->info0
);
18696 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18699 if (ndr_flags
& NDR_BUFFERS
) {
18703 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18704 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
18705 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18706 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
18711 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18714 return NDR_ERR_SUCCESS
;
18717 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
18720 level
= ndr_print_get_switch_value(ndr
, r
);
18721 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
18724 ndr_print_ptr(ndr
, "info0", r
->info0
);
18727 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
18733 ndr_print_bad_level(ndr
, name
, level
);
18737 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18740 return NDR_ERR_SUCCESS
;
18743 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18748 return NDR_ERR_SUCCESS
;
18751 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18753 ndr_print_uint32(ndr
, name
, r
);
18755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
18756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
18757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
18761 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
18763 if (ndr_flags
& NDR_SCALARS
) {
18764 NDR_CHECK(ndr_push_align(ndr
, 5));
18765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18766 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18769 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18770 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18771 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18772 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18774 if (ndr_flags
& NDR_BUFFERS
) {
18776 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18777 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18778 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18779 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18782 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18783 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18784 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18785 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18788 return NDR_ERR_SUCCESS
;
18791 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
18793 uint32_t _ptr_client
;
18794 TALLOC_CTX
*_mem_save_client_0
;
18795 uint32_t _ptr_user
;
18796 TALLOC_CTX
*_mem_save_user_0
;
18797 if (ndr_flags
& NDR_SCALARS
) {
18798 NDR_CHECK(ndr_pull_align(ndr
, 5));
18799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18802 NDR_PULL_ALLOC(ndr
, r
->client
);
18806 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18808 NDR_PULL_ALLOC(ndr
, r
->user
);
18812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18813 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18814 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18815 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18816 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18818 if (ndr_flags
& NDR_BUFFERS
) {
18820 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18821 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18822 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18823 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18824 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18825 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
));
18827 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18828 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18829 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18832 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18833 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18834 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18835 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18836 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18837 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
));
18839 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18840 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18841 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18844 return NDR_ERR_SUCCESS
;
18847 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
18849 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
18851 ndr_print_uint32(ndr
, "size", r
->size
);
18852 ndr_print_ptr(ndr
, "client", r
->client
);
18855 ndr_print_string(ndr
, "client", r
->client
);
18858 ndr_print_ptr(ndr
, "user", r
->user
);
18861 ndr_print_string(ndr
, "user", r
->user
);
18864 ndr_print_uint32(ndr
, "build", r
->build
);
18865 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18866 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18867 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18871 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
18873 if (ndr_flags
& NDR_SCALARS
) {
18874 NDR_CHECK(ndr_push_align(ndr
, 4));
18875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
18876 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
18878 if (ndr_flags
& NDR_BUFFERS
) {
18880 return NDR_ERR_SUCCESS
;
18883 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
18885 if (ndr_flags
& NDR_SCALARS
) {
18886 NDR_CHECK(ndr_pull_align(ndr
, 4));
18887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
18888 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
18890 if (ndr_flags
& NDR_BUFFERS
) {
18892 return NDR_ERR_SUCCESS
;
18895 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
18897 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
18899 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
18903 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
18905 if (ndr_flags
& NDR_SCALARS
) {
18906 NDR_CHECK(ndr_push_align(ndr
, 5));
18907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
18910 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18911 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18913 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18914 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18915 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18916 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
18917 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18919 if (ndr_flags
& NDR_BUFFERS
) {
18921 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18922 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18923 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18924 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18927 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18929 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18930 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18933 return NDR_ERR_SUCCESS
;
18936 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
18938 uint32_t _ptr_client
;
18939 TALLOC_CTX
*_mem_save_client_0
;
18940 uint32_t _ptr_user
;
18941 TALLOC_CTX
*_mem_save_user_0
;
18942 if (ndr_flags
& NDR_SCALARS
) {
18943 NDR_CHECK(ndr_pull_align(ndr
, 5));
18944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18945 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18946 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
18947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18949 NDR_PULL_ALLOC(ndr
, r
->client
);
18953 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18955 NDR_PULL_ALLOC(ndr
, r
->user
);
18959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18960 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18961 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18962 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18963 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
18964 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18966 if (ndr_flags
& NDR_BUFFERS
) {
18968 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18969 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18970 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18971 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18972 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18973 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
));
18975 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18976 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18980 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18981 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18982 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18983 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18984 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18985 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
));
18987 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18988 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18992 return NDR_ERR_SUCCESS
;
18995 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
18997 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
18999 ndr_print_uint32(ndr
, "size", r
->size
);
19000 ndr_print_uint32(ndr
, "flags", r
->flags
);
19001 ndr_print_uint32(ndr
, "size2", r
->size2
);
19002 ndr_print_ptr(ndr
, "client", r
->client
);
19005 ndr_print_string(ndr
, "client", r
->client
);
19008 ndr_print_ptr(ndr
, "user", r
->user
);
19011 ndr_print_string(ndr
, "user", r
->user
);
19014 ndr_print_uint32(ndr
, "build", r
->build
);
19015 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19016 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19017 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19018 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
19022 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
19024 if (ndr_flags
& NDR_SCALARS
) {
19025 int level
= ndr_push_get_switch_value(ndr
, r
);
19026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19027 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
19034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
19038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
19042 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19045 if (ndr_flags
& NDR_BUFFERS
) {
19046 int level
= ndr_push_get_switch_value(ndr
, r
);
19050 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
19056 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
19062 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
19067 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19070 return NDR_ERR_SUCCESS
;
19073 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
19077 TALLOC_CTX
*_mem_save_level1_0
;
19078 TALLOC_CTX
*_mem_save_level2_0
;
19079 TALLOC_CTX
*_mem_save_level3_0
;
19080 level
= ndr_pull_get_switch_value(ndr
, r
);
19081 if (ndr_flags
& NDR_SCALARS
) {
19082 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19083 if (_level
!= level
) {
19084 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19086 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19089 uint32_t _ptr_level1
;
19090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
19092 NDR_PULL_ALLOC(ndr
, r
->level1
);
19099 uint32_t _ptr_level2
;
19100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
19102 NDR_PULL_ALLOC(ndr
, r
->level2
);
19109 uint32_t _ptr_level3
;
19110 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
19112 NDR_PULL_ALLOC(ndr
, r
->level3
);
19119 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19122 if (ndr_flags
& NDR_BUFFERS
) {
19126 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19127 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
19128 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
19129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
19135 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19136 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
19137 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
19138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
19144 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19145 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
19146 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
19147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
19152 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19155 return NDR_ERR_SUCCESS
;
19158 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
19161 level
= ndr_print_get_switch_value(ndr
, r
);
19162 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
19165 ndr_print_ptr(ndr
, "level1", r
->level1
);
19168 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
19174 ndr_print_ptr(ndr
, "level2", r
->level2
);
19177 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
19183 ndr_print_ptr(ndr
, "level3", r
->level3
);
19186 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
19192 ndr_print_bad_level(ndr
, name
, level
);
19196 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
19198 if (ndr_flags
& NDR_SCALARS
) {
19199 NDR_CHECK(ndr_push_align(ndr
, 5));
19200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
19201 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19202 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19203 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19205 if (ndr_flags
& NDR_BUFFERS
) {
19206 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19208 return NDR_ERR_SUCCESS
;
19211 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
19213 if (ndr_flags
& NDR_SCALARS
) {
19214 NDR_CHECK(ndr_pull_align(ndr
, 5));
19215 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
19216 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19217 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19218 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19220 if (ndr_flags
& NDR_BUFFERS
) {
19221 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19223 return NDR_ERR_SUCCESS
;
19226 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
19228 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
19230 ndr_print_uint32(ndr
, "level", r
->level
);
19231 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
19232 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
19236 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19239 return NDR_ERR_SUCCESS
;
19242 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19247 return NDR_ERR_SUCCESS
;
19250 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19252 ndr_print_uint32(ndr
, name
, r
);
19254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
19255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
19256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
19257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
19258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
19259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
19263 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
19265 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
19266 if (ndr_flags
& NDR_SCALARS
) {
19267 NDR_CHECK(ndr_push_align(ndr
, 5));
19268 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19270 uint32_t _flags_save_string
= ndr
->flags
;
19271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19272 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
19273 ndr
->flags
= _flags_save_string
;
19275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
19276 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
19277 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
19278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
)));
19279 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19281 if (ndr_flags
& NDR_BUFFERS
) {
19282 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
19284 uint32_t _flags_save_string
= ndr
->flags
;
19285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19286 if (r
->value_name
) {
19287 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->value_name
));
19288 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
19290 ndr
->flags
= _flags_save_string
;
19293 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data
));
19295 struct ndr_push
*_ndr_data
;
19296 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19297 NDR_CHECK(ndr_push_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19298 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19299 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19303 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19304 return NDR_ERR_SUCCESS
;
19307 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
19309 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
19310 uint32_t _ptr_value_name
;
19311 TALLOC_CTX
*_mem_save_value_name_0
;
19312 uint32_t _ptr_data
;
19313 TALLOC_CTX
*_mem_save_data_0
;
19314 if (ndr_flags
& NDR_SCALARS
) {
19315 NDR_CHECK(ndr_pull_align(ndr
, 5));
19316 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19318 uint32_t _flags_save_string
= ndr
->flags
;
19319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
19321 if (_ptr_value_name
) {
19322 NDR_PULL_ALLOC(ndr
, r
->value_name
);
19323 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
19325 r
->value_name
= NULL
;
19327 ndr
->flags
= _flags_save_string
;
19329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
19330 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
19331 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
19333 NDR_PULL_ALLOC(ndr
, r
->data
);
19334 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
19338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
19339 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19341 if (ndr_flags
& NDR_BUFFERS
) {
19342 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
19344 uint32_t _flags_save_string
= ndr
->flags
;
19345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19346 if (r
->value_name
) {
19347 uint32_t _relative_save_offset
;
19348 _relative_save_offset
= ndr
->offset
;
19349 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
19350 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19351 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
19352 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
19353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
19354 ndr
->offset
= _relative_save_offset
;
19356 ndr
->flags
= _flags_save_string
;
19359 uint32_t _relative_save_offset
;
19360 _relative_save_offset
= ndr
->offset
;
19361 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
19362 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19363 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
19365 struct ndr_pull
*_ndr_data
;
19366 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19367 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19368 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19369 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
19372 ndr
->offset
= _relative_save_offset
;
19375 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19376 return NDR_ERR_SUCCESS
;
19379 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
19381 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
19383 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
19385 if (r
->value_name
) {
19386 ndr_print_string(ndr
, "value_name", r
->value_name
);
19389 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
19390 ndr_print_winreg_Type(ndr
, "type", r
->type
);
19391 ndr_print_ptr(ndr
, "data", r
->data
);
19394 ndr_print_set_switch_value(ndr
, r
->data
, r
->type
);
19395 ndr_print_spoolss_PrinterData(ndr
, "data", r
->data
);
19398 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
);
19402 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
19404 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
19407 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
19409 if (ndr_flags
& NDR_SCALARS
) {
19410 int level
= ndr_push_get_switch_value(ndr
, r
);
19411 NDR_CHECK(ndr_push_union_align(ndr
, 4));
19421 uint32_t _flags_save_string_array
= ndr
->flags
;
19422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19423 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
19424 ndr
->flags
= _flags_save_string_array
;
19430 if (ndr_flags
& NDR_BUFFERS
) {
19431 int level
= ndr_push_get_switch_value(ndr
, r
);
19444 return NDR_ERR_SUCCESS
;
19447 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
19450 level
= ndr_pull_get_switch_value(ndr
, r
);
19451 if (ndr_flags
& NDR_SCALARS
) {
19452 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
19462 uint32_t _flags_save_string_array
= ndr
->flags
;
19463 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19464 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
19465 ndr
->flags
= _flags_save_string_array
;
19471 if (ndr_flags
& NDR_BUFFERS
) {
19484 return NDR_ERR_SUCCESS
;
19487 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
19490 level
= ndr_print_get_switch_value(ndr
, r
);
19491 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
19500 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
19506 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19509 return NDR_ERR_SUCCESS
;
19512 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19517 return NDR_ERR_SUCCESS
;
19520 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19522 ndr_print_uint32(ndr
, name
, r
);
19524 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
19525 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
19526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
19530 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
19532 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
19533 return NDR_ERR_SUCCESS
;
19536 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
19539 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
19541 return NDR_ERR_SUCCESS
;
19544 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
19546 const char *val
= NULL
;
19549 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
19550 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
19552 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19555 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
19557 if (ndr_flags
& NDR_SCALARS
) {
19558 NDR_CHECK(ndr_push_align(ndr
, 4));
19559 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
19561 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19564 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19565 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19568 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19569 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19570 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19574 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19576 if (ndr_flags
& NDR_BUFFERS
) {
19578 return NDR_ERR_SUCCESS
;
19581 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
19583 if (ndr_flags
& NDR_SCALARS
) {
19584 NDR_CHECK(ndr_pull_align(ndr
, 4));
19585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19586 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19587 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19590 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19591 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19593 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19594 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19596 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19597 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19599 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19600 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19602 if (ndr_flags
& NDR_BUFFERS
) {
19604 return NDR_ERR_SUCCESS
;
19607 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
19609 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
19611 ndr_print_string(ndr
, "portname", r
->portname
);
19612 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
19613 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19614 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19615 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19616 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19617 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19618 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19619 ndr_print_string(ndr
, "queue", r
->queue
);
19620 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
19621 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
19622 ndr_print_string(ndr
, "device_type", r
->device_type
);
19623 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19624 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19625 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19629 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
19631 if (ndr_flags
& NDR_SCALARS
) {
19632 NDR_CHECK(ndr_push_align(ndr
, 4));
19633 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
19635 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19638 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19639 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19641 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19642 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
19647 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19649 if (ndr_flags
& NDR_BUFFERS
) {
19651 return NDR_ERR_SUCCESS
;
19654 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
19656 if (ndr_flags
& NDR_SCALARS
) {
19657 NDR_CHECK(ndr_pull_align(ndr
, 4));
19658 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19660 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19662 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19663 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19664 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19667 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19670 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19671 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
19672 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19674 if (ndr_flags
& NDR_BUFFERS
) {
19676 return NDR_ERR_SUCCESS
;
19679 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
19681 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
19683 ndr_print_string(ndr
, "portname", r
->portname
);
19684 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
19685 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19686 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19687 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19688 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19689 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19690 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19691 ndr_print_string(ndr
, "queue", r
->queue
);
19692 ndr_print_string(ndr
, "device_type", r
->device_type
);
19693 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19694 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19695 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19696 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
19700 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
19702 if (ndr_flags
& NDR_SCALARS
) {
19703 NDR_CHECK(ndr_push_align(ndr
, 4));
19705 uint32_t _flags_save_string
= ndr
->flags
;
19706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19707 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
19708 ndr
->flags
= _flags_save_string
;
19710 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19712 if (ndr_flags
& NDR_BUFFERS
) {
19714 return NDR_ERR_SUCCESS
;
19717 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
19719 if (ndr_flags
& NDR_SCALARS
) {
19720 NDR_CHECK(ndr_pull_align(ndr
, 4));
19722 uint32_t _flags_save_string
= ndr
->flags
;
19723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19724 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
19725 ndr
->flags
= _flags_save_string
;
19727 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19729 if (ndr_flags
& NDR_BUFFERS
) {
19731 return NDR_ERR_SUCCESS
;
19734 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
19736 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
19738 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
19742 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19745 return NDR_ERR_SUCCESS
;
19748 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19753 return NDR_ERR_SUCCESS
;
19756 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19758 ndr_print_uint32(ndr
, name
, r
);
19760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
19761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
19762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
19763 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
19764 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
19765 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
19766 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
19767 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
19771 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
19773 if (ndr_flags
& NDR_SCALARS
) {
19774 NDR_CHECK(ndr_push_align(ndr
, 8));
19775 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19776 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
19777 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
19778 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19779 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
19781 if (ndr_flags
& NDR_BUFFERS
) {
19783 return NDR_ERR_SUCCESS
;
19786 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
19788 if (ndr_flags
& NDR_SCALARS
) {
19789 NDR_CHECK(ndr_pull_align(ndr
, 8));
19790 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19791 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
19792 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
19793 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19794 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
19796 if (ndr_flags
& NDR_BUFFERS
) {
19798 return NDR_ERR_SUCCESS
;
19801 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
19803 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
19805 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
19806 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
19807 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
19808 ndr_print_string(ndr
, "formname", r
->formname
);
19812 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
19814 if (flags
& NDR_IN
) {
19815 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
19816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19817 if (r
->in
.server
) {
19818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19819 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19820 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19821 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19825 if (r
->in
.buffer
) {
19826 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19830 if (flags
& NDR_OUT
) {
19831 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19833 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19835 if (r
->out
.needed
== NULL
) {
19836 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19839 if (r
->out
.count
== NULL
) {
19840 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19843 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19845 return NDR_ERR_SUCCESS
;
19848 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
19850 uint32_t _ptr_server
;
19851 uint32_t _ptr_buffer
;
19852 uint32_t _ptr_info
;
19853 TALLOC_CTX
*_mem_save_server_0
;
19854 TALLOC_CTX
*_mem_save_buffer_0
;
19855 TALLOC_CTX
*_mem_save_info_0
;
19856 TALLOC_CTX
*_mem_save_needed_0
;
19857 TALLOC_CTX
*_mem_save_count_0
;
19858 if (flags
& NDR_IN
) {
19859 ZERO_STRUCT(r
->out
);
19861 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
19862 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19864 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19866 r
->in
.server
= NULL
;
19868 if (r
->in
.server
) {
19869 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19870 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19871 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19872 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19873 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19874 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
));
19876 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19877 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19881 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19883 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19885 r
->in
.buffer
= NULL
;
19887 if (r
->in
.buffer
) {
19888 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19889 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19890 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19894 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19895 ZERO_STRUCTP(r
->out
.needed
);
19896 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19897 ZERO_STRUCTP(r
->out
.count
);
19899 if (flags
& NDR_OUT
) {
19900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19902 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19904 r
->out
.info
= NULL
;
19907 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19908 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19909 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19913 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19915 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19916 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19920 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19922 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19923 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19926 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19928 return NDR_ERR_SUCCESS
;
19931 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
19933 uint32_t cntr_info_0
;
19934 if (flags
& NDR_IN
) {
19935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19938 if (flags
& NDR_OUT
) {
19939 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19940 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19941 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19943 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19944 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19947 return NDR_ERR_SUCCESS
;
19950 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
19952 uint32_t cntr_info_0
;
19953 TALLOC_CTX
*_mem_save_info_0
;
19954 if (flags
& NDR_IN
) {
19955 ZERO_STRUCT(r
->out
);
19957 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19958 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19960 if (flags
& NDR_OUT
) {
19961 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19962 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19963 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19964 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19965 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19966 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19968 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19969 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19973 return NDR_ERR_SUCCESS
;
19976 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
19978 uint32_t cntr_info_2
;
19979 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
19981 if (flags
& NDR_SET_VALUES
) {
19982 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19984 if (flags
& NDR_IN
) {
19985 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
19987 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
19988 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19990 if (r
->in
.server
) {
19991 ndr_print_string(ndr
, "server", r
->in
.server
);
19994 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19995 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19997 if (r
->in
.buffer
) {
19998 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20001 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20004 if (flags
& NDR_OUT
) {
20005 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
20007 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20009 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20011 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20013 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20015 if (*r
->out
.info
) {
20016 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20018 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20020 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20021 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20022 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20030 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20032 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20034 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20040 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
20042 if (flags
& NDR_IN
) {
20043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
20044 if (r
->in
.printername
) {
20045 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
20046 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20047 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
20048 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20050 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
20051 if (r
->in
.datatype
) {
20052 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
20053 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20054 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
20055 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20057 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
20058 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
20060 if (flags
& NDR_OUT
) {
20061 if (r
->out
.handle
== NULL
) {
20062 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20064 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20065 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20067 return NDR_ERR_SUCCESS
;
20070 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
20072 uint32_t _ptr_printername
;
20073 uint32_t _ptr_datatype
;
20074 TALLOC_CTX
*_mem_save_printername_0
;
20075 TALLOC_CTX
*_mem_save_datatype_0
;
20076 TALLOC_CTX
*_mem_save_handle_0
;
20077 if (flags
& NDR_IN
) {
20078 ZERO_STRUCT(r
->out
);
20080 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
20081 if (_ptr_printername
) {
20082 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
20084 r
->in
.printername
= NULL
;
20086 if (r
->in
.printername
) {
20087 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20088 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
20089 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
20090 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
20091 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
20092 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
));
20094 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
20095 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
20096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
20098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
20099 if (_ptr_datatype
) {
20100 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
20102 r
->in
.datatype
= NULL
;
20104 if (r
->in
.datatype
) {
20105 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20106 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
20107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
20108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
20109 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
20110 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
));
20112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
20113 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
20114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
20116 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
20117 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
20118 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20119 ZERO_STRUCTP(r
->out
.handle
);
20121 if (flags
& NDR_OUT
) {
20122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20123 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20125 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20126 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20131 return NDR_ERR_SUCCESS
;
20134 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
20136 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
20138 if (flags
& NDR_SET_VALUES
) {
20139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20141 if (flags
& NDR_IN
) {
20142 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
20144 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
20146 if (r
->in
.printername
) {
20147 ndr_print_string(ndr
, "printername", r
->in
.printername
);
20150 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
20152 if (r
->in
.datatype
) {
20153 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
20156 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
20157 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
20160 if (flags
& NDR_OUT
) {
20161 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
20163 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20165 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20167 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20173 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
20175 if (flags
& NDR_IN
) {
20176 if (r
->in
.handle
== NULL
) {
20177 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20179 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20181 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
20183 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20185 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20187 if (flags
& NDR_OUT
) {
20188 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20190 return NDR_ERR_SUCCESS
;
20193 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
20196 TALLOC_CTX
*_mem_save_handle_0
;
20197 TALLOC_CTX
*_mem_save_ctr_0
;
20198 if (flags
& NDR_IN
) {
20199 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20200 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20202 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20203 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20204 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
20209 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
20214 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20215 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
20216 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
20219 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20221 if (flags
& NDR_OUT
) {
20222 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20224 return NDR_ERR_SUCCESS
;
20227 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
20229 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
20231 if (flags
& NDR_SET_VALUES
) {
20232 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20234 if (flags
& NDR_IN
) {
20235 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
20237 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20239 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20241 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20242 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
20245 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
20248 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
20251 if (flags
& NDR_OUT
) {
20252 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
20254 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20260 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
20262 if (flags
& NDR_IN
) {
20263 if (r
->in
.handle
== NULL
) {
20264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20266 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20269 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20270 if (r
->in
.buffer
) {
20271 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20275 if (flags
& NDR_OUT
) {
20276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20279 struct ndr_push
*_ndr_info
;
20280 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20281 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20282 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20283 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20286 if (r
->out
.needed
== NULL
) {
20287 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20290 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20292 return NDR_ERR_SUCCESS
;
20295 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
20297 uint32_t _ptr_buffer
;
20298 uint32_t _ptr_info
;
20299 TALLOC_CTX
*_mem_save_handle_0
;
20300 TALLOC_CTX
*_mem_save_buffer_0
;
20301 TALLOC_CTX
*_mem_save_info_0
;
20302 TALLOC_CTX
*_mem_save_needed_0
;
20303 if (flags
& NDR_IN
) {
20304 ZERO_STRUCT(r
->out
);
20306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20307 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20309 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20310 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20311 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20317 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20319 r
->in
.buffer
= NULL
;
20321 if (r
->in
.buffer
) {
20322 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20323 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20325 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20328 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20329 ZERO_STRUCTP(r
->out
.needed
);
20331 if (flags
& NDR_OUT
) {
20332 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20334 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20336 r
->out
.info
= NULL
;
20339 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20340 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20342 struct ndr_pull
*_ndr_info
;
20343 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20344 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20345 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20346 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20350 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20351 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20353 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20354 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20357 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20359 return NDR_ERR_SUCCESS
;
20362 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
20364 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
20366 if (flags
& NDR_SET_VALUES
) {
20367 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20369 if (flags
& NDR_IN
) {
20370 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
20372 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20374 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20376 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20377 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20378 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20380 if (r
->in
.buffer
) {
20381 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20384 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20387 if (flags
& NDR_OUT
) {
20388 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
20390 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20393 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20394 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
20397 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20399 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20401 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20407 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
20409 if (flags
& NDR_IN
) {
20410 if (r
->in
.handle
== NULL
) {
20411 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20413 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
20415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
20416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20417 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20418 if (r
->in
.buffer
) {
20419 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20423 if (flags
& NDR_OUT
) {
20424 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20426 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20428 if (r
->out
.needed
== NULL
) {
20429 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20432 if (r
->out
.count
== NULL
) {
20433 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20436 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20438 return NDR_ERR_SUCCESS
;
20441 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
20443 uint32_t _ptr_buffer
;
20444 uint32_t _ptr_info
;
20445 TALLOC_CTX
*_mem_save_handle_0
;
20446 TALLOC_CTX
*_mem_save_buffer_0
;
20447 TALLOC_CTX
*_mem_save_info_0
;
20448 TALLOC_CTX
*_mem_save_needed_0
;
20449 TALLOC_CTX
*_mem_save_count_0
;
20450 if (flags
& NDR_IN
) {
20451 ZERO_STRUCT(r
->out
);
20453 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20454 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20456 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20457 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20458 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20460 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
20461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
20462 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20465 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20467 r
->in
.buffer
= NULL
;
20469 if (r
->in
.buffer
) {
20470 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20471 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20472 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20475 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20476 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20477 ZERO_STRUCTP(r
->out
.needed
);
20478 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20479 ZERO_STRUCTP(r
->out
.count
);
20481 if (flags
& NDR_OUT
) {
20482 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20484 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20486 r
->out
.info
= NULL
;
20489 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20490 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20491 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20494 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20495 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20497 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20498 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20499 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20500 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20501 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20502 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20504 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20505 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20508 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20510 return NDR_ERR_SUCCESS
;
20513 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
20515 uint32_t cntr_info_0
;
20516 if (flags
& NDR_IN
) {
20517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20520 if (flags
& NDR_OUT
) {
20521 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20522 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20523 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20525 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20526 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20529 return NDR_ERR_SUCCESS
;
20532 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
20534 uint32_t cntr_info_0
;
20535 TALLOC_CTX
*_mem_save_info_0
;
20536 if (flags
& NDR_IN
) {
20537 ZERO_STRUCT(r
->out
);
20539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20542 if (flags
& NDR_OUT
) {
20543 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20544 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20545 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20546 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20547 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20548 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20550 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20551 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20555 return NDR_ERR_SUCCESS
;
20558 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
20560 uint32_t cntr_info_2
;
20561 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
20563 if (flags
& NDR_SET_VALUES
) {
20564 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20566 if (flags
& NDR_IN
) {
20567 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
20569 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20571 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20573 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
20574 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
20575 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20576 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20578 if (r
->in
.buffer
) {
20579 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20582 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20585 if (flags
& NDR_OUT
) {
20586 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
20588 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20590 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20592 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20594 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20596 if (*r
->out
.info
) {
20597 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20599 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20601 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20602 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20603 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20611 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20613 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20615 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20621 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
20623 if (flags
& NDR_IN
) {
20624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20625 if (r
->in
.server
) {
20626 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20627 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20628 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20629 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20631 if (r
->in
.info_ctr
== NULL
) {
20632 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20634 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20635 if (r
->in
.devmode_ctr
== NULL
) {
20636 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20638 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20639 if (r
->in
.secdesc_ctr
== NULL
) {
20640 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20642 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20644 if (flags
& NDR_OUT
) {
20645 if (r
->out
.handle
== NULL
) {
20646 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20648 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20649 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20651 return NDR_ERR_SUCCESS
;
20654 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
20656 uint32_t _ptr_server
;
20657 TALLOC_CTX
*_mem_save_server_0
;
20658 TALLOC_CTX
*_mem_save_info_ctr_0
;
20659 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20660 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20661 TALLOC_CTX
*_mem_save_handle_0
;
20662 if (flags
& NDR_IN
) {
20663 ZERO_STRUCT(r
->out
);
20665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20667 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20669 r
->in
.server
= NULL
;
20671 if (r
->in
.server
) {
20672 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20673 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20674 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20675 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20676 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20677 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
));
20679 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20683 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20684 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20686 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20687 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20688 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20690 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20691 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20693 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20694 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20695 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20697 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20698 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20700 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20701 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20702 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20704 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20705 ZERO_STRUCTP(r
->out
.handle
);
20707 if (flags
& NDR_OUT
) {
20708 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20709 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20711 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20712 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20713 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20715 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20717 return NDR_ERR_SUCCESS
;
20720 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
20722 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
20724 if (flags
& NDR_SET_VALUES
) {
20725 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20727 if (flags
& NDR_IN
) {
20728 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
20730 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20732 if (r
->in
.server
) {
20733 ndr_print_string(ndr
, "server", r
->in
.server
);
20736 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20738 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20740 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20742 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20744 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20746 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20750 if (flags
& NDR_OUT
) {
20751 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
20753 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20755 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20757 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20763 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
20765 if (flags
& NDR_IN
) {
20766 if (r
->in
.handle
== NULL
) {
20767 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20769 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20771 if (flags
& NDR_OUT
) {
20772 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20774 return NDR_ERR_SUCCESS
;
20777 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
20779 TALLOC_CTX
*_mem_save_handle_0
;
20780 if (flags
& NDR_IN
) {
20781 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20782 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20784 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20785 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20786 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20789 if (flags
& NDR_OUT
) {
20790 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20792 return NDR_ERR_SUCCESS
;
20795 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
20797 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
20799 if (flags
& NDR_SET_VALUES
) {
20800 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20802 if (flags
& NDR_IN
) {
20803 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
20805 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20807 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20811 if (flags
& NDR_OUT
) {
20812 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
20814 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20820 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
20822 if (flags
& NDR_IN
) {
20823 if (r
->in
.handle
== NULL
) {
20824 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20826 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20827 if (r
->in
.info_ctr
== NULL
) {
20828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20830 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20831 if (r
->in
.devmode_ctr
== NULL
) {
20832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20834 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20835 if (r
->in
.secdesc_ctr
== NULL
) {
20836 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20838 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20839 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20841 if (flags
& NDR_OUT
) {
20842 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20844 return NDR_ERR_SUCCESS
;
20847 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
20849 TALLOC_CTX
*_mem_save_handle_0
;
20850 TALLOC_CTX
*_mem_save_info_ctr_0
;
20851 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20852 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20853 if (flags
& NDR_IN
) {
20854 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20855 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20857 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20858 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20859 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20861 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20862 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20864 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20865 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20866 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20868 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20869 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20871 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20872 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20873 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20876 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20878 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20880 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20882 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20884 if (flags
& NDR_OUT
) {
20885 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20887 return NDR_ERR_SUCCESS
;
20890 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
20892 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
20894 if (flags
& NDR_SET_VALUES
) {
20895 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20897 if (flags
& NDR_IN
) {
20898 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
20900 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20902 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20904 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20906 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20908 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20910 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20912 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20914 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20916 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
20919 if (flags
& NDR_OUT
) {
20920 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
20922 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20928 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
20930 if (flags
& NDR_IN
) {
20931 if (r
->in
.handle
== NULL
) {
20932 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20934 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20937 if (r
->in
.buffer
) {
20938 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20942 if (flags
& NDR_OUT
) {
20943 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20946 struct ndr_push
*_ndr_info
;
20947 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20948 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20949 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20950 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20953 if (r
->out
.needed
== NULL
) {
20954 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20957 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20959 return NDR_ERR_SUCCESS
;
20962 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
20964 uint32_t _ptr_buffer
;
20965 uint32_t _ptr_info
;
20966 TALLOC_CTX
*_mem_save_handle_0
;
20967 TALLOC_CTX
*_mem_save_buffer_0
;
20968 TALLOC_CTX
*_mem_save_info_0
;
20969 TALLOC_CTX
*_mem_save_needed_0
;
20970 if (flags
& NDR_IN
) {
20971 ZERO_STRUCT(r
->out
);
20973 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20974 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20976 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20977 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20978 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20983 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20985 r
->in
.buffer
= NULL
;
20987 if (r
->in
.buffer
) {
20988 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20989 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20990 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20994 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20995 ZERO_STRUCTP(r
->out
.needed
);
20997 if (flags
& NDR_OUT
) {
20998 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21000 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21002 r
->out
.info
= NULL
;
21005 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21006 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21008 struct ndr_pull
*_ndr_info
;
21009 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21010 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21011 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21012 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21016 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21017 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21019 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21020 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21021 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21023 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21025 return NDR_ERR_SUCCESS
;
21028 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
21030 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
21032 if (flags
& NDR_SET_VALUES
) {
21033 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21035 if (flags
& NDR_IN
) {
21036 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
21038 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21040 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21042 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21043 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21045 if (r
->in
.buffer
) {
21046 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21049 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21052 if (flags
& NDR_OUT
) {
21053 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
21055 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21058 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21059 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
21062 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21064 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21066 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21072 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
21074 if (flags
& NDR_IN
) {
21075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
21076 if (r
->in
.servername
) {
21077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21079 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21082 if (r
->in
.info_ctr
== NULL
) {
21083 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21085 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21087 if (flags
& NDR_OUT
) {
21088 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21090 return NDR_ERR_SUCCESS
;
21093 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
21095 uint32_t _ptr_servername
;
21096 TALLOC_CTX
*_mem_save_servername_0
;
21097 TALLOC_CTX
*_mem_save_info_ctr_0
;
21098 if (flags
& NDR_IN
) {
21099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
21100 if (_ptr_servername
) {
21101 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
21103 r
->in
.servername
= NULL
;
21105 if (r
->in
.servername
) {
21106 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21107 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
21108 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
21109 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
21110 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
21111 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
));
21113 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
21114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
21115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
21117 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21118 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21120 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21121 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21122 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21125 if (flags
& NDR_OUT
) {
21126 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21128 return NDR_ERR_SUCCESS
;
21131 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
21133 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
21135 if (flags
& NDR_SET_VALUES
) {
21136 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21138 if (flags
& NDR_IN
) {
21139 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
21141 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21143 if (r
->in
.servername
) {
21144 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21147 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21149 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21153 if (flags
& NDR_OUT
) {
21154 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
21156 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21162 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
21164 if (flags
& NDR_IN
) {
21165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21166 if (r
->in
.server
) {
21167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21169 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21172 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21173 if (r
->in
.environment
) {
21174 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21175 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21177 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21180 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21181 if (r
->in
.buffer
) {
21182 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21186 if (flags
& NDR_OUT
) {
21187 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21189 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21191 if (r
->out
.needed
== NULL
) {
21192 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21195 if (r
->out
.count
== NULL
) {
21196 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21199 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21201 return NDR_ERR_SUCCESS
;
21204 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
21206 uint32_t _ptr_server
;
21207 uint32_t _ptr_environment
;
21208 uint32_t _ptr_buffer
;
21209 uint32_t _ptr_info
;
21210 TALLOC_CTX
*_mem_save_server_0
;
21211 TALLOC_CTX
*_mem_save_environment_0
;
21212 TALLOC_CTX
*_mem_save_buffer_0
;
21213 TALLOC_CTX
*_mem_save_info_0
;
21214 TALLOC_CTX
*_mem_save_needed_0
;
21215 TALLOC_CTX
*_mem_save_count_0
;
21216 if (flags
& NDR_IN
) {
21217 ZERO_STRUCT(r
->out
);
21219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21221 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21223 r
->in
.server
= NULL
;
21225 if (r
->in
.server
) {
21226 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21227 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21228 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21229 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21230 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21231 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
));
21233 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21234 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21237 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21238 if (_ptr_environment
) {
21239 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21241 r
->in
.environment
= NULL
;
21243 if (r
->in
.environment
) {
21244 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21245 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21246 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21247 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21248 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21249 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
));
21251 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21252 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21256 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21258 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21260 r
->in
.buffer
= NULL
;
21262 if (r
->in
.buffer
) {
21263 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21264 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21265 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21266 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21268 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21269 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21270 ZERO_STRUCTP(r
->out
.needed
);
21271 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21272 ZERO_STRUCTP(r
->out
.count
);
21274 if (flags
& NDR_OUT
) {
21275 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21277 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21279 r
->out
.info
= NULL
;
21282 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21283 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21284 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21287 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21288 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21290 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21291 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21295 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21297 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21298 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21301 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21303 return NDR_ERR_SUCCESS
;
21306 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
21308 uint32_t cntr_info_0
;
21309 if (flags
& NDR_IN
) {
21310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21313 if (flags
& NDR_OUT
) {
21314 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21315 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21316 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21318 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21319 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21322 return NDR_ERR_SUCCESS
;
21325 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
21327 uint32_t cntr_info_0
;
21328 TALLOC_CTX
*_mem_save_info_0
;
21329 if (flags
& NDR_IN
) {
21330 ZERO_STRUCT(r
->out
);
21332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21335 if (flags
& NDR_OUT
) {
21336 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21337 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21338 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21339 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21340 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21341 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21343 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21344 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21348 return NDR_ERR_SUCCESS
;
21351 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
21353 uint32_t cntr_info_2
;
21354 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
21356 if (flags
& NDR_SET_VALUES
) {
21357 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21359 if (flags
& NDR_IN
) {
21360 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
21362 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21364 if (r
->in
.server
) {
21365 ndr_print_string(ndr
, "server", r
->in
.server
);
21368 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21370 if (r
->in
.environment
) {
21371 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21374 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21375 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21377 if (r
->in
.buffer
) {
21378 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21381 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21384 if (flags
& NDR_OUT
) {
21385 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
21387 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21389 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21391 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21393 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21395 if (*r
->out
.info
) {
21396 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21398 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21400 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21401 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21402 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21410 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21412 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21414 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21420 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21422 if (flags
& NDR_IN
) {
21423 if (r
->in
.handle
== NULL
) {
21424 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21426 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21427 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
21428 if (r
->in
.architecture
) {
21429 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21430 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21431 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21432 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21435 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21436 if (r
->in
.buffer
) {
21437 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21441 if (flags
& NDR_OUT
) {
21442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21445 struct ndr_push
*_ndr_info
;
21446 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21447 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21448 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21449 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21452 if (r
->out
.needed
== NULL
) {
21453 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21456 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21458 return NDR_ERR_SUCCESS
;
21461 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
21463 uint32_t _ptr_architecture
;
21464 uint32_t _ptr_buffer
;
21465 uint32_t _ptr_info
;
21466 TALLOC_CTX
*_mem_save_handle_0
;
21467 TALLOC_CTX
*_mem_save_architecture_0
;
21468 TALLOC_CTX
*_mem_save_buffer_0
;
21469 TALLOC_CTX
*_mem_save_info_0
;
21470 TALLOC_CTX
*_mem_save_needed_0
;
21471 if (flags
& NDR_IN
) {
21472 ZERO_STRUCT(r
->out
);
21474 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21475 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21477 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21478 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21479 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
21482 if (_ptr_architecture
) {
21483 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
21485 r
->in
.architecture
= NULL
;
21487 if (r
->in
.architecture
) {
21488 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21489 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
21490 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21491 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21492 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21493 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
));
21495 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21496 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
21499 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21500 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21502 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21504 r
->in
.buffer
= NULL
;
21506 if (r
->in
.buffer
) {
21507 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21508 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21509 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21513 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21514 ZERO_STRUCTP(r
->out
.needed
);
21516 if (flags
& NDR_OUT
) {
21517 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21519 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21521 r
->out
.info
= NULL
;
21524 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21525 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21527 struct ndr_pull
*_ndr_info
;
21528 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21529 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21530 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21531 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21536 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21538 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21539 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21542 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21544 return NDR_ERR_SUCCESS
;
21547 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21549 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
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_GetPrinterDriver");
21557 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21559 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21561 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
21563 if (r
->in
.architecture
) {
21564 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21567 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21568 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21570 if (r
->in
.buffer
) {
21571 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21574 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21577 if (flags
& NDR_OUT
) {
21578 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
21580 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21583 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21584 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
21587 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21589 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21591 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21597 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21599 if (flags
& NDR_IN
) {
21600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21601 if (r
->in
.server
) {
21602 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21605 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21608 if (r
->in
.environment
) {
21609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21610 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21612 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21616 if (r
->in
.buffer
) {
21617 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21621 if (flags
& NDR_OUT
) {
21622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21625 struct ndr_push
*_ndr_info
;
21626 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21627 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21628 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21629 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21632 if (r
->out
.needed
== NULL
) {
21633 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21636 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21638 return NDR_ERR_SUCCESS
;
21641 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
21643 uint32_t _ptr_server
;
21644 uint32_t _ptr_environment
;
21645 uint32_t _ptr_buffer
;
21646 uint32_t _ptr_info
;
21647 TALLOC_CTX
*_mem_save_server_0
;
21648 TALLOC_CTX
*_mem_save_environment_0
;
21649 TALLOC_CTX
*_mem_save_buffer_0
;
21650 TALLOC_CTX
*_mem_save_info_0
;
21651 TALLOC_CTX
*_mem_save_needed_0
;
21652 if (flags
& NDR_IN
) {
21653 ZERO_STRUCT(r
->out
);
21655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21657 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21659 r
->in
.server
= NULL
;
21661 if (r
->in
.server
) {
21662 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21663 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21664 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21665 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21666 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21667 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
));
21669 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21670 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21673 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21674 if (_ptr_environment
) {
21675 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21677 r
->in
.environment
= NULL
;
21679 if (r
->in
.environment
) {
21680 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21682 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21683 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21684 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21685 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
));
21687 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21688 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21691 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21692 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21694 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21696 r
->in
.buffer
= NULL
;
21698 if (r
->in
.buffer
) {
21699 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21700 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21701 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21705 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21706 ZERO_STRUCTP(r
->out
.needed
);
21708 if (flags
& NDR_OUT
) {
21709 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21711 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21713 r
->out
.info
= NULL
;
21716 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21717 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21719 struct ndr_pull
*_ndr_info
;
21720 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21721 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21722 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21723 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21727 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21728 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21730 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21731 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21734 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21736 return NDR_ERR_SUCCESS
;
21739 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21741 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
21743 if (flags
& NDR_SET_VALUES
) {
21744 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21746 if (flags
& NDR_IN
) {
21747 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
21749 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21751 if (r
->in
.server
) {
21752 ndr_print_string(ndr
, "server", r
->in
.server
);
21755 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21757 if (r
->in
.environment
) {
21758 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21761 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21762 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21764 if (r
->in
.buffer
) {
21765 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21768 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21771 if (flags
& NDR_OUT
) {
21772 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
21774 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21777 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21778 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
21781 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21783 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21785 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21791 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21793 if (flags
& NDR_IN
) {
21794 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21795 if (r
->in
.server
) {
21796 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21797 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21798 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21799 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21803 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21804 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21805 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21806 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21807 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21808 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21810 if (flags
& NDR_OUT
) {
21811 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21813 return NDR_ERR_SUCCESS
;
21816 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
21818 uint32_t _ptr_server
;
21819 TALLOC_CTX
*_mem_save_server_0
;
21820 if (flags
& NDR_IN
) {
21821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21823 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21825 r
->in
.server
= NULL
;
21827 if (r
->in
.server
) {
21828 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21829 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21830 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21831 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21832 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21833 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
));
21835 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21836 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21839 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21840 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21841 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21842 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
));
21844 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21845 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21846 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
21847 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
21848 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
21849 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
));
21851 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
21852 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
21854 if (flags
& NDR_OUT
) {
21855 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21857 return NDR_ERR_SUCCESS
;
21860 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21862 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
21864 if (flags
& NDR_SET_VALUES
) {
21865 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21867 if (flags
& NDR_IN
) {
21868 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
21870 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21872 if (r
->in
.server
) {
21873 ndr_print_string(ndr
, "server", r
->in
.server
);
21876 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21877 ndr_print_string(ndr
, "driver", r
->in
.driver
);
21880 if (flags
& NDR_OUT
) {
21881 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
21883 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21889 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21891 if (flags
& NDR_IN
) {
21892 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21893 if (r
->in
.server
) {
21894 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21895 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21896 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21897 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21899 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21900 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21901 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21902 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21904 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21905 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21906 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
));
21907 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21908 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21909 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21910 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
));
21912 if (flags
& NDR_OUT
) {
21913 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21915 return NDR_ERR_SUCCESS
;
21918 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
21920 uint32_t _ptr_server
;
21921 TALLOC_CTX
*_mem_save_server_0
;
21922 if (flags
& NDR_IN
) {
21923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21925 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21927 r
->in
.server
= NULL
;
21929 if (r
->in
.server
) {
21930 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21931 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21934 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21935 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
));
21937 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21938 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21941 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21942 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21943 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21944 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
));
21946 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21947 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21948 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
21949 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
21950 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
21951 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
));
21953 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
21954 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
));
21955 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
21956 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
21957 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
21958 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
));
21960 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
21961 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
));
21963 if (flags
& NDR_OUT
) {
21964 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21966 return NDR_ERR_SUCCESS
;
21969 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21971 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
21973 if (flags
& NDR_SET_VALUES
) {
21974 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21976 if (flags
& NDR_IN
) {
21977 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
21979 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21981 if (r
->in
.server
) {
21982 ndr_print_string(ndr
, "server", r
->in
.server
);
21985 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21986 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
21987 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
21990 if (flags
& NDR_OUT
) {
21991 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
21993 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21999 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
22001 if (flags
& NDR_IN
) {
22002 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22003 if (r
->in
.servername
) {
22004 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22006 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22007 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22009 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22010 if (r
->in
.environment
) {
22011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22017 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22018 if (r
->in
.buffer
) {
22019 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22023 if (flags
& NDR_OUT
) {
22024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22026 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22028 if (r
->out
.needed
== NULL
) {
22029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22032 if (r
->out
.count
== NULL
) {
22033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22036 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22038 return NDR_ERR_SUCCESS
;
22041 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
22043 uint32_t _ptr_servername
;
22044 uint32_t _ptr_environment
;
22045 uint32_t _ptr_buffer
;
22046 uint32_t _ptr_info
;
22047 TALLOC_CTX
*_mem_save_servername_0
;
22048 TALLOC_CTX
*_mem_save_environment_0
;
22049 TALLOC_CTX
*_mem_save_buffer_0
;
22050 TALLOC_CTX
*_mem_save_info_0
;
22051 TALLOC_CTX
*_mem_save_needed_0
;
22052 TALLOC_CTX
*_mem_save_count_0
;
22053 if (flags
& NDR_IN
) {
22054 ZERO_STRUCT(r
->out
);
22056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22057 if (_ptr_servername
) {
22058 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22060 r
->in
.servername
= NULL
;
22062 if (r
->in
.servername
) {
22063 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22064 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22065 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22066 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22067 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22068 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
));
22070 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22071 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22074 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22075 if (_ptr_environment
) {
22076 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22078 r
->in
.environment
= NULL
;
22080 if (r
->in
.environment
) {
22081 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22082 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22083 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22084 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22085 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22086 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
));
22088 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22089 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22093 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22095 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22097 r
->in
.buffer
= NULL
;
22099 if (r
->in
.buffer
) {
22100 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22101 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22102 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22105 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22106 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22107 ZERO_STRUCTP(r
->out
.needed
);
22108 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22109 ZERO_STRUCTP(r
->out
.count
);
22111 if (flags
& NDR_OUT
) {
22112 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22114 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22116 r
->out
.info
= NULL
;
22119 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22120 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22121 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22124 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22125 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22127 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22128 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22129 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22131 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22132 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22134 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22135 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22138 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22140 return NDR_ERR_SUCCESS
;
22143 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
22145 uint32_t cntr_info_0
;
22146 if (flags
& NDR_IN
) {
22147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22150 if (flags
& NDR_OUT
) {
22151 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22152 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22153 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22155 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22156 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22159 return NDR_ERR_SUCCESS
;
22162 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
22164 uint32_t cntr_info_0
;
22165 TALLOC_CTX
*_mem_save_info_0
;
22166 if (flags
& NDR_IN
) {
22167 ZERO_STRUCT(r
->out
);
22169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22172 if (flags
& NDR_OUT
) {
22173 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22174 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22175 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22176 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22177 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22178 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22180 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22181 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22185 return NDR_ERR_SUCCESS
;
22188 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
22190 uint32_t cntr_info_2
;
22191 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
22193 if (flags
& NDR_SET_VALUES
) {
22194 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22196 if (flags
& NDR_IN
) {
22197 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
22199 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22201 if (r
->in
.servername
) {
22202 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22205 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22207 if (r
->in
.environment
) {
22208 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22211 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22212 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22214 if (r
->in
.buffer
) {
22215 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22218 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22221 if (flags
& NDR_OUT
) {
22222 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
22224 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22226 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22228 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22230 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22232 if (*r
->out
.info
) {
22233 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22235 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22237 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22238 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22239 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22247 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22249 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22251 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22257 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22259 if (flags
& NDR_IN
) {
22260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22261 if (r
->in
.server
) {
22262 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22263 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22264 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22265 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22267 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22268 if (r
->in
.environment
) {
22269 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22271 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22272 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22275 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22276 if (r
->in
.buffer
) {
22277 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22281 if (flags
& NDR_OUT
) {
22282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22285 struct ndr_push
*_ndr_info
;
22286 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22287 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22288 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22289 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22292 if (r
->out
.needed
== 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
.needed
));
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_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
22303 uint32_t _ptr_server
;
22304 uint32_t _ptr_environment
;
22305 uint32_t _ptr_buffer
;
22306 uint32_t _ptr_info
;
22307 TALLOC_CTX
*_mem_save_server_0
;
22308 TALLOC_CTX
*_mem_save_environment_0
;
22309 TALLOC_CTX
*_mem_save_buffer_0
;
22310 TALLOC_CTX
*_mem_save_info_0
;
22311 TALLOC_CTX
*_mem_save_needed_0
;
22312 if (flags
& NDR_IN
) {
22313 ZERO_STRUCT(r
->out
);
22315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22317 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22319 r
->in
.server
= NULL
;
22321 if (r
->in
.server
) {
22322 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22323 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22324 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22325 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22326 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22327 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
));
22329 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22330 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22334 if (_ptr_environment
) {
22335 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22337 r
->in
.environment
= NULL
;
22339 if (r
->in
.environment
) {
22340 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22341 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22342 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22343 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22344 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22345 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
));
22347 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22348 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22349 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22354 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22356 r
->in
.buffer
= NULL
;
22358 if (r
->in
.buffer
) {
22359 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22360 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22361 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22365 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22366 ZERO_STRUCTP(r
->out
.needed
);
22368 if (flags
& NDR_OUT
) {
22369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22371 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22373 r
->out
.info
= NULL
;
22376 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22377 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22379 struct ndr_pull
*_ndr_info
;
22380 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22381 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22382 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22383 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22387 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22388 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22390 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22391 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22394 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22396 return NDR_ERR_SUCCESS
;
22399 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22401 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
22403 if (flags
& NDR_SET_VALUES
) {
22404 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22406 if (flags
& NDR_IN
) {
22407 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
22409 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22411 if (r
->in
.server
) {
22412 ndr_print_string(ndr
, "server", r
->in
.server
);
22415 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22417 if (r
->in
.environment
) {
22418 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22421 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22422 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22424 if (r
->in
.buffer
) {
22425 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22428 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22431 if (flags
& NDR_OUT
) {
22432 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
22434 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22437 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22438 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
22441 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22443 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22445 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22451 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22453 if (flags
& NDR_IN
) {
22454 if (r
->in
.handle
== NULL
) {
22455 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22457 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22459 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22460 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22462 if (flags
& NDR_OUT
) {
22463 if (r
->out
.job_id
== NULL
) {
22464 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
22467 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22469 return NDR_ERR_SUCCESS
;
22472 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
22474 TALLOC_CTX
*_mem_save_handle_0
;
22475 TALLOC_CTX
*_mem_save_job_id_0
;
22476 if (flags
& NDR_IN
) {
22477 ZERO_STRUCT(r
->out
);
22479 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22480 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22482 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22483 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22484 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22487 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22488 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22489 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22490 ZERO_STRUCTP(r
->out
.job_id
);
22492 if (flags
& NDR_OUT
) {
22493 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22494 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22496 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22497 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
22498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
22499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
22500 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22502 return NDR_ERR_SUCCESS
;
22505 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22507 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
22509 if (flags
& NDR_SET_VALUES
) {
22510 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22512 if (flags
& NDR_IN
) {
22513 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
22515 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22517 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22519 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22520 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22521 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
22524 if (flags
& NDR_OUT
) {
22525 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
22527 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
22529 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
22531 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22537 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22539 if (flags
& NDR_IN
) {
22540 if (r
->in
.handle
== NULL
) {
22541 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22543 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22545 if (flags
& NDR_OUT
) {
22546 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22548 return NDR_ERR_SUCCESS
;
22551 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
22553 TALLOC_CTX
*_mem_save_handle_0
;
22554 if (flags
& NDR_IN
) {
22555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22556 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22558 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22559 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22560 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22563 if (flags
& NDR_OUT
) {
22564 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22566 return NDR_ERR_SUCCESS
;
22569 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22571 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
22573 if (flags
& NDR_SET_VALUES
) {
22574 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22576 if (flags
& NDR_IN
) {
22577 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
22579 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22581 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22585 if (flags
& NDR_OUT
) {
22586 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
22588 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22594 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
22596 if (flags
& NDR_IN
) {
22597 if (r
->in
.handle
== NULL
) {
22598 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22600 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22601 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
22602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
22604 if (flags
& NDR_OUT
) {
22605 if (r
->out
.num_written
== NULL
) {
22606 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
22609 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22611 return NDR_ERR_SUCCESS
;
22614 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
22616 TALLOC_CTX
*_mem_save_handle_0
;
22617 TALLOC_CTX
*_mem_save_num_written_0
;
22618 if (flags
& NDR_IN
) {
22619 ZERO_STRUCT(r
->out
);
22621 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22622 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22624 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22626 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22628 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
22629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
22630 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22631 ZERO_STRUCTP(r
->out
.num_written
);
22633 if (flags
& NDR_OUT
) {
22634 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22635 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22637 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
22639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
22640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
22641 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22643 return NDR_ERR_SUCCESS
;
22646 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
22648 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
22650 if (flags
& NDR_SET_VALUES
) {
22651 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22653 if (flags
& NDR_IN
) {
22654 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
22656 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22658 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22660 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
22661 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
22664 if (flags
& NDR_OUT
) {
22665 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
22667 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
22669 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
22671 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22677 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22679 if (flags
& NDR_IN
) {
22680 if (r
->in
.handle
== NULL
) {
22681 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22683 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22685 if (flags
& NDR_OUT
) {
22686 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22688 return NDR_ERR_SUCCESS
;
22691 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
22693 TALLOC_CTX
*_mem_save_handle_0
;
22694 if (flags
& NDR_IN
) {
22695 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22696 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22698 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22699 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22700 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22703 if (flags
& NDR_OUT
) {
22704 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22706 return NDR_ERR_SUCCESS
;
22709 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22711 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
22713 if (flags
& NDR_SET_VALUES
) {
22714 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22716 if (flags
& NDR_IN
) {
22717 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
22719 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22721 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22725 if (flags
& NDR_OUT
) {
22726 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
22728 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22734 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
22736 if (flags
& NDR_IN
) {
22737 if (r
->in
.handle
== NULL
) {
22738 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22740 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22742 if (flags
& NDR_OUT
) {
22743 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22745 return NDR_ERR_SUCCESS
;
22748 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
22750 TALLOC_CTX
*_mem_save_handle_0
;
22751 if (flags
& NDR_IN
) {
22752 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22753 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22755 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22756 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22757 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22760 if (flags
& NDR_OUT
) {
22761 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22763 return NDR_ERR_SUCCESS
;
22766 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
22768 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
22770 if (flags
& NDR_SET_VALUES
) {
22771 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22773 if (flags
& NDR_IN
) {
22774 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
22776 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22778 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22782 if (flags
& NDR_OUT
) {
22783 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
22785 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22791 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
22793 if (flags
& NDR_IN
) {
22794 if (r
->in
.handle
== NULL
) {
22795 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22797 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22800 if (flags
& NDR_OUT
) {
22801 if (r
->out
.data
== NULL
) {
22802 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22804 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22805 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
22806 if (r
->out
._data_size
== NULL
) {
22807 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
22810 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22812 return NDR_ERR_SUCCESS
;
22815 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
22817 TALLOC_CTX
*_mem_save_handle_0
;
22818 TALLOC_CTX
*_mem_save__data_size_0
;
22819 if (flags
& NDR_IN
) {
22820 ZERO_STRUCT(r
->out
);
22822 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22823 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22825 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22826 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22827 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22829 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
22830 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
22831 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
22832 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22833 ZERO_STRUCTP(r
->out
._data_size
);
22835 if (flags
& NDR_OUT
) {
22836 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
22837 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22838 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
22840 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
22841 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22842 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22844 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22845 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
22846 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
22847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
22848 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22850 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
22853 return NDR_ERR_SUCCESS
;
22856 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
22858 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
22860 if (flags
& NDR_SET_VALUES
) {
22861 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22863 if (flags
& NDR_IN
) {
22864 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
22866 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22868 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22870 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
22873 if (flags
& NDR_OUT
) {
22874 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
22876 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22878 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
22880 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
22882 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
22884 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22890 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22892 if (flags
& NDR_IN
) {
22893 if (r
->in
.handle
== NULL
) {
22894 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22896 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22898 if (flags
& NDR_OUT
) {
22899 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22901 return NDR_ERR_SUCCESS
;
22904 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
22906 TALLOC_CTX
*_mem_save_handle_0
;
22907 if (flags
& NDR_IN
) {
22908 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22909 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22911 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22912 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22913 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22916 if (flags
& NDR_OUT
) {
22917 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22919 return NDR_ERR_SUCCESS
;
22922 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22924 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
22926 if (flags
& NDR_SET_VALUES
) {
22927 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22929 if (flags
& NDR_IN
) {
22930 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
22932 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22934 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22938 if (flags
& NDR_OUT
) {
22939 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
22941 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22947 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
22949 if (flags
& NDR_IN
) {
22950 if (r
->in
.handle
== NULL
) {
22951 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22953 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22956 if (r
->in
.buffer
) {
22957 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22958 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
22960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22962 if (flags
& NDR_OUT
) {
22963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
22964 if (r
->out
.buffer
) {
22965 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22966 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
22968 if (r
->out
.needed
== NULL
) {
22969 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22972 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22974 return NDR_ERR_SUCCESS
;
22977 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
22979 uint32_t _ptr_buffer
;
22980 TALLOC_CTX
*_mem_save_handle_0
;
22981 TALLOC_CTX
*_mem_save_buffer_0
;
22982 TALLOC_CTX
*_mem_save_needed_0
;
22983 if (flags
& NDR_IN
) {
22984 ZERO_STRUCT(r
->out
);
22986 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22987 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22989 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22990 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22991 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22994 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22996 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22998 r
->in
.buffer
= NULL
;
23000 if (r
->in
.buffer
) {
23001 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23002 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
23004 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
23005 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
23006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23009 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23010 ZERO_STRUCTP(r
->out
.needed
);
23011 if (r
->in
.buffer
) {
23012 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
23015 if (flags
& NDR_OUT
) {
23016 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23018 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
23020 r
->out
.buffer
= NULL
;
23022 if (r
->out
.buffer
) {
23023 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23024 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
23025 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
23026 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
23027 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
23028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23030 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23031 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23033 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23034 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23035 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23037 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23038 if (r
->out
.buffer
) {
23039 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
23042 return NDR_ERR_SUCCESS
;
23045 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
23047 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
23049 if (flags
& NDR_SET_VALUES
) {
23050 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23052 if (flags
& NDR_IN
) {
23053 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
23055 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23057 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23059 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23060 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23062 if (r
->in
.buffer
) {
23063 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
23066 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23069 if (flags
& NDR_OUT
) {
23070 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
23072 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
23074 if (r
->out
.buffer
) {
23075 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
23078 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23080 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23082 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23088 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
23090 if (flags
& NDR_IN
) {
23091 if (r
->in
.handle
== NULL
) {
23092 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23094 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
23097 if (flags
& NDR_OUT
) {
23098 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23100 return NDR_ERR_SUCCESS
;
23103 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
23105 TALLOC_CTX
*_mem_save_handle_0
;
23106 if (flags
& NDR_IN
) {
23107 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23108 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23110 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23111 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23112 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23114 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
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_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
23124 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
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_ScheduleJob");
23132 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23134 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23136 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
23139 if (flags
& NDR_OUT
) {
23140 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
23142 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23148 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
23150 if (flags
& NDR_IN
) {
23151 if (r
->in
.handle
== NULL
) {
23152 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23154 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23158 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
));
23159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23161 if (flags
& NDR_OUT
) {
23162 if (r
->out
.type
== NULL
) {
23163 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23165 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
23166 if (r
->out
.data
== NULL
) {
23167 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23169 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
23170 if (r
->out
.needed
== NULL
) {
23171 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23174 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23176 return NDR_ERR_SUCCESS
;
23179 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
23181 TALLOC_CTX
*_mem_save_handle_0
;
23182 TALLOC_CTX
*_mem_save_type_0
;
23183 TALLOC_CTX
*_mem_save_data_0
;
23184 TALLOC_CTX
*_mem_save_needed_0
;
23185 if (flags
& NDR_IN
) {
23186 ZERO_STRUCT(r
->out
);
23188 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23189 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23191 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23192 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23193 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23197 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23198 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
));
23200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23201 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
));
23202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23203 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
23204 ZERO_STRUCTP(r
->out
.type
);
23205 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23206 ZERO_STRUCTP(r
->out
.data
);
23207 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23208 ZERO_STRUCTP(r
->out
.needed
);
23210 if (flags
& NDR_OUT
) {
23211 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23212 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
23214 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23215 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
23216 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
23217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
23218 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23219 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23221 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23222 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
23223 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
23224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
23225 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23226 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23228 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23229 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23230 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23232 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23234 return NDR_ERR_SUCCESS
;
23237 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
23239 if (flags
& NDR_IN
) {
23240 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23242 if (flags
& NDR_OUT
) {
23243 if (r
->out
.data
== NULL
) {
23244 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23246 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23247 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23249 return NDR_ERR_SUCCESS
;
23252 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
23254 TALLOC_CTX
*_mem_save_data_0
;
23255 if (flags
& NDR_IN
) {
23256 ZERO_STRUCT(r
->out
);
23258 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23259 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23260 ZERO_STRUCTP(r
->out
.data
);
23262 if (flags
& NDR_OUT
) {
23263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23264 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23266 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23267 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
23268 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23269 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
23272 return NDR_ERR_SUCCESS
;
23275 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
23277 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
23279 if (flags
& NDR_SET_VALUES
) {
23280 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23282 if (flags
& NDR_IN
) {
23283 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
23285 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23287 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23289 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23290 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23293 if (flags
& NDR_OUT
) {
23294 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
23296 ndr_print_ptr(ndr
, "type", r
->out
.type
);
23298 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
23300 ndr_print_ptr(ndr
, "data", r
->out
.data
);
23302 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
23303 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
23305 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23307 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23309 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23315 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
23317 if (flags
& NDR_IN
) {
23318 if (r
->in
.handle
== NULL
) {
23319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23321 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23322 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23323 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23324 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23325 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
));
23326 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23327 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
23330 if (flags
& NDR_OUT
) {
23331 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23333 return NDR_ERR_SUCCESS
;
23336 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
23338 if (flags
& NDR_IN
) {
23339 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23341 if (flags
& NDR_OUT
) {
23342 if (r
->out
.data
== NULL
) {
23343 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23345 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23346 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23348 return NDR_ERR_SUCCESS
;
23351 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
23353 TALLOC_CTX
*_mem_save_handle_0
;
23354 if (flags
& NDR_IN
) {
23355 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23356 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23358 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23359 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23360 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23364 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23365 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
));
23367 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23368 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
));
23369 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23371 struct ndr_pull
*_ndr_data
;
23372 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
23373 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
23374 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
23375 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
23377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
23379 if (flags
& NDR_OUT
) {
23380 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23382 return NDR_ERR_SUCCESS
;
23385 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
23387 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
23389 if (flags
& NDR_SET_VALUES
) {
23390 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23392 if (flags
& NDR_IN
) {
23393 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
23395 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23397 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23399 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23400 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
23401 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
23402 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
23403 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
);
23406 if (flags
& NDR_OUT
) {
23407 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
23409 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23415 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23417 if (flags
& NDR_IN
) {
23419 if (flags
& NDR_OUT
) {
23420 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23422 return NDR_ERR_SUCCESS
;
23425 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
23427 if (flags
& NDR_IN
) {
23429 if (flags
& NDR_OUT
) {
23430 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23432 return NDR_ERR_SUCCESS
;
23435 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23437 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
23439 if (flags
& NDR_SET_VALUES
) {
23440 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23442 if (flags
& NDR_IN
) {
23443 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
23447 if (flags
& NDR_OUT
) {
23448 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
23450 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23456 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
23458 if (flags
& NDR_IN
) {
23459 if (r
->in
.handle
== NULL
) {
23460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23462 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23464 if (flags
& NDR_OUT
) {
23465 if (r
->out
.handle
== NULL
) {
23466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23468 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23469 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23471 return NDR_ERR_SUCCESS
;
23474 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
23476 TALLOC_CTX
*_mem_save_handle_0
;
23477 if (flags
& NDR_IN
) {
23478 ZERO_STRUCT(r
->out
);
23480 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23481 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23483 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23484 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23485 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23487 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23488 *r
->out
.handle
= *r
->in
.handle
;
23490 if (flags
& NDR_OUT
) {
23491 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23492 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23494 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23495 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23496 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23498 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23500 return NDR_ERR_SUCCESS
;
23503 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
23505 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
23507 if (flags
& NDR_SET_VALUES
) {
23508 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23510 if (flags
& NDR_IN
) {
23511 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
23513 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23515 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23519 if (flags
& NDR_OUT
) {
23520 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
23522 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23524 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23526 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23532 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
23534 if (flags
& NDR_IN
) {
23535 if (r
->in
.handle
== NULL
) {
23536 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23538 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23540 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23541 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23543 if (flags
& NDR_OUT
) {
23544 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23546 return NDR_ERR_SUCCESS
;
23549 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
23551 TALLOC_CTX
*_mem_save_handle_0
;
23552 if (flags
& NDR_IN
) {
23553 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23554 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23556 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23557 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23558 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23561 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23562 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23564 if (flags
& NDR_OUT
) {
23565 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23567 return NDR_ERR_SUCCESS
;
23570 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
23572 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
23574 if (flags
& NDR_SET_VALUES
) {
23575 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23577 if (flags
& NDR_IN
) {
23578 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
23580 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23582 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23584 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23585 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23586 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23589 if (flags
& NDR_OUT
) {
23590 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
23592 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23598 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
23600 if (flags
& NDR_IN
) {
23601 if (r
->in
.handle
== NULL
) {
23602 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23604 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23608 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
));
23610 if (flags
& NDR_OUT
) {
23611 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23613 return NDR_ERR_SUCCESS
;
23616 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
23618 TALLOC_CTX
*_mem_save_handle_0
;
23619 if (flags
& NDR_IN
) {
23620 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23621 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23623 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23624 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23625 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23627 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23628 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23629 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23630 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
));
23632 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23633 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
));
23635 if (flags
& NDR_OUT
) {
23636 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23638 return NDR_ERR_SUCCESS
;
23641 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
23643 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
23645 if (flags
& NDR_SET_VALUES
) {
23646 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23648 if (flags
& NDR_IN
) {
23649 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
23651 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23653 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23655 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23658 if (flags
& NDR_OUT
) {
23659 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
23661 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23667 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
23669 if (flags
& NDR_IN
) {
23670 if (r
->in
.handle
== NULL
) {
23671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23673 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23676 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23677 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
));
23678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23679 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23680 if (r
->in
.buffer
) {
23681 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23685 if (flags
& NDR_OUT
) {
23686 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23689 struct ndr_push
*_ndr_info
;
23690 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23691 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23692 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23693 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23696 if (r
->out
.needed
== NULL
) {
23697 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23700 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23702 return NDR_ERR_SUCCESS
;
23705 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
23707 uint32_t _ptr_buffer
;
23708 uint32_t _ptr_info
;
23709 TALLOC_CTX
*_mem_save_handle_0
;
23710 TALLOC_CTX
*_mem_save_buffer_0
;
23711 TALLOC_CTX
*_mem_save_info_0
;
23712 TALLOC_CTX
*_mem_save_needed_0
;
23713 if (flags
& NDR_IN
) {
23714 ZERO_STRUCT(r
->out
);
23716 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23717 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23719 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23721 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23723 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23724 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23725 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23726 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
));
23728 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23729 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
));
23730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23733 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23735 r
->in
.buffer
= NULL
;
23737 if (r
->in
.buffer
) {
23738 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23739 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23740 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23744 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23745 ZERO_STRUCTP(r
->out
.needed
);
23747 if (flags
& NDR_OUT
) {
23748 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23750 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23752 r
->out
.info
= NULL
;
23755 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23756 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23758 struct ndr_pull
*_ndr_info
;
23759 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23760 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23761 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23762 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23766 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23767 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23769 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23770 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23773 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23775 return NDR_ERR_SUCCESS
;
23778 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
23780 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
23782 if (flags
& NDR_SET_VALUES
) {
23783 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23785 if (flags
& NDR_IN
) {
23786 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
23788 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23790 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23792 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23793 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23794 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23796 if (r
->in
.buffer
) {
23797 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23800 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23803 if (flags
& NDR_OUT
) {
23804 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
23806 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23809 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23810 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
23813 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23815 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23817 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23823 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
23825 if (flags
& NDR_IN
) {
23826 if (r
->in
.handle
== NULL
) {
23827 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23829 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23830 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23831 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23832 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23833 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
));
23834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23835 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23836 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23838 if (flags
& NDR_OUT
) {
23839 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23841 return NDR_ERR_SUCCESS
;
23844 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
23846 TALLOC_CTX
*_mem_save_handle_0
;
23847 if (flags
& NDR_IN
) {
23848 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23849 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23851 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23852 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23853 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23855 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23856 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23857 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23858 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
));
23860 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23861 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
));
23862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23863 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23864 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23866 if (flags
& NDR_OUT
) {
23867 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23869 return NDR_ERR_SUCCESS
;
23872 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
23874 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
23876 if (flags
& NDR_SET_VALUES
) {
23877 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23879 if (flags
& NDR_IN
) {
23880 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
23882 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23884 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23886 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23887 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23888 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23889 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23892 if (flags
& NDR_OUT
) {
23893 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
23895 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23901 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
23903 if (flags
& NDR_IN
) {
23904 if (r
->in
.handle
== NULL
) {
23905 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23907 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23909 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23910 if (r
->in
.buffer
) {
23911 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23915 if (flags
& NDR_OUT
) {
23916 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23918 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23920 if (r
->out
.needed
== NULL
) {
23921 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23924 if (r
->out
.count
== NULL
) {
23925 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23928 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23930 return NDR_ERR_SUCCESS
;
23933 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
23935 uint32_t _ptr_buffer
;
23936 uint32_t _ptr_info
;
23937 TALLOC_CTX
*_mem_save_handle_0
;
23938 TALLOC_CTX
*_mem_save_buffer_0
;
23939 TALLOC_CTX
*_mem_save_info_0
;
23940 TALLOC_CTX
*_mem_save_needed_0
;
23941 TALLOC_CTX
*_mem_save_count_0
;
23942 if (flags
& NDR_IN
) {
23943 ZERO_STRUCT(r
->out
);
23945 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23946 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23948 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23949 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23950 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23952 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23953 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23955 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23957 r
->in
.buffer
= NULL
;
23959 if (r
->in
.buffer
) {
23960 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23961 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23962 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23966 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23967 ZERO_STRUCTP(r
->out
.needed
);
23968 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23969 ZERO_STRUCTP(r
->out
.count
);
23971 if (flags
& NDR_OUT
) {
23972 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23974 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23976 r
->out
.info
= NULL
;
23979 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23980 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23981 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23985 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23987 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23988 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23989 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23991 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23992 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23994 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23995 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23996 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23998 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24000 return NDR_ERR_SUCCESS
;
24003 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
24005 uint32_t cntr_info_0
;
24006 if (flags
& NDR_IN
) {
24007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24010 if (flags
& NDR_OUT
) {
24011 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24012 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24013 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24015 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24016 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24019 return NDR_ERR_SUCCESS
;
24022 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
24024 uint32_t cntr_info_0
;
24025 TALLOC_CTX
*_mem_save_info_0
;
24026 if (flags
& NDR_IN
) {
24027 ZERO_STRUCT(r
->out
);
24029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24030 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24032 if (flags
& NDR_OUT
) {
24033 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24034 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24035 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24036 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24037 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24038 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24040 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24041 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24045 return NDR_ERR_SUCCESS
;
24048 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
24050 uint32_t cntr_info_2
;
24051 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
24053 if (flags
& NDR_SET_VALUES
) {
24054 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24056 if (flags
& NDR_IN
) {
24057 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
24059 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24061 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24063 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24064 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24066 if (r
->in
.buffer
) {
24067 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24070 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24073 if (flags
& NDR_OUT
) {
24074 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
24076 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24078 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24080 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24082 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24084 if (*r
->out
.info
) {
24085 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24087 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24089 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24090 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24091 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24099 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24101 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24103 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24109 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
24111 if (flags
& NDR_IN
) {
24112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24113 if (r
->in
.servername
) {
24114 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24115 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24116 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24117 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24120 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24121 if (r
->in
.buffer
) {
24122 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24126 if (flags
& NDR_OUT
) {
24127 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24129 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24131 if (r
->out
.needed
== NULL
) {
24132 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24135 if (r
->out
.count
== NULL
) {
24136 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24139 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24141 return NDR_ERR_SUCCESS
;
24144 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
24146 uint32_t _ptr_servername
;
24147 uint32_t _ptr_buffer
;
24148 uint32_t _ptr_info
;
24149 TALLOC_CTX
*_mem_save_servername_0
;
24150 TALLOC_CTX
*_mem_save_buffer_0
;
24151 TALLOC_CTX
*_mem_save_info_0
;
24152 TALLOC_CTX
*_mem_save_needed_0
;
24153 TALLOC_CTX
*_mem_save_count_0
;
24154 if (flags
& NDR_IN
) {
24155 ZERO_STRUCT(r
->out
);
24157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24158 if (_ptr_servername
) {
24159 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24161 r
->in
.servername
= NULL
;
24163 if (r
->in
.servername
) {
24164 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24165 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24166 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24167 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24168 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24169 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
));
24171 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24172 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24175 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24176 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24178 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24180 r
->in
.buffer
= NULL
;
24182 if (r
->in
.buffer
) {
24183 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24184 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24189 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24190 ZERO_STRUCTP(r
->out
.needed
);
24191 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24192 ZERO_STRUCTP(r
->out
.count
);
24194 if (flags
& NDR_OUT
) {
24195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24197 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24199 r
->out
.info
= NULL
;
24202 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24203 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24204 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24207 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24208 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24210 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24211 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24214 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24215 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24217 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24218 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24219 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24221 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24223 return NDR_ERR_SUCCESS
;
24226 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
24228 uint32_t cntr_info_0
;
24229 if (flags
& NDR_IN
) {
24230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24231 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24233 if (flags
& NDR_OUT
) {
24234 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24235 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24236 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24238 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24239 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24242 return NDR_ERR_SUCCESS
;
24245 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
24247 uint32_t cntr_info_0
;
24248 TALLOC_CTX
*_mem_save_info_0
;
24249 if (flags
& NDR_IN
) {
24250 ZERO_STRUCT(r
->out
);
24252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24255 if (flags
& NDR_OUT
) {
24256 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24257 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24258 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24259 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24260 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24261 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24263 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24264 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24266 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24268 return NDR_ERR_SUCCESS
;
24271 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
24273 uint32_t cntr_info_2
;
24274 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
24276 if (flags
& NDR_SET_VALUES
) {
24277 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24279 if (flags
& NDR_IN
) {
24280 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
24282 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24284 if (r
->in
.servername
) {
24285 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24288 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24289 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24291 if (r
->in
.buffer
) {
24292 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24295 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24298 if (flags
& NDR_OUT
) {
24299 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
24301 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24303 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24305 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24307 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24309 if (*r
->out
.info
) {
24310 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24312 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24314 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24315 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24316 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24324 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24326 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24328 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24334 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
24336 if (flags
& NDR_IN
) {
24337 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24338 if (r
->in
.servername
) {
24339 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24340 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24341 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24342 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24345 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24346 if (r
->in
.buffer
) {
24347 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24351 if (flags
& NDR_OUT
) {
24352 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24354 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24356 if (r
->out
.needed
== NULL
) {
24357 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24360 if (r
->out
.count
== NULL
) {
24361 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24364 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24366 return NDR_ERR_SUCCESS
;
24369 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
24371 uint32_t _ptr_servername
;
24372 uint32_t _ptr_buffer
;
24373 uint32_t _ptr_info
;
24374 TALLOC_CTX
*_mem_save_servername_0
;
24375 TALLOC_CTX
*_mem_save_buffer_0
;
24376 TALLOC_CTX
*_mem_save_info_0
;
24377 TALLOC_CTX
*_mem_save_needed_0
;
24378 TALLOC_CTX
*_mem_save_count_0
;
24379 if (flags
& NDR_IN
) {
24380 ZERO_STRUCT(r
->out
);
24382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24383 if (_ptr_servername
) {
24384 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24386 r
->in
.servername
= NULL
;
24388 if (r
->in
.servername
) {
24389 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24390 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24391 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24392 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24393 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24394 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
));
24396 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24397 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24403 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24405 r
->in
.buffer
= NULL
;
24407 if (r
->in
.buffer
) {
24408 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24409 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24410 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24414 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24415 ZERO_STRUCTP(r
->out
.needed
);
24416 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24417 ZERO_STRUCTP(r
->out
.count
);
24419 if (flags
& NDR_OUT
) {
24420 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24422 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24424 r
->out
.info
= NULL
;
24427 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24428 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24429 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24432 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24433 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24435 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24436 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24439 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24440 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24442 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24443 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24446 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24448 return NDR_ERR_SUCCESS
;
24451 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
24453 uint32_t cntr_info_0
;
24454 if (flags
& NDR_IN
) {
24455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24458 if (flags
& NDR_OUT
) {
24459 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24460 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24461 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24463 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24464 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24467 return NDR_ERR_SUCCESS
;
24470 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
24472 uint32_t cntr_info_0
;
24473 TALLOC_CTX
*_mem_save_info_0
;
24474 if (flags
& NDR_IN
) {
24475 ZERO_STRUCT(r
->out
);
24477 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24478 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24480 if (flags
& NDR_OUT
) {
24481 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24482 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24483 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24484 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24485 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24486 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24488 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24489 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24493 return NDR_ERR_SUCCESS
;
24496 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
24498 uint32_t cntr_info_2
;
24499 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
24501 if (flags
& NDR_SET_VALUES
) {
24502 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24504 if (flags
& NDR_IN
) {
24505 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
24507 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24509 if (r
->in
.servername
) {
24510 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24513 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24514 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24516 if (r
->in
.buffer
) {
24517 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24520 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24523 if (flags
& NDR_OUT
) {
24524 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
24526 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24528 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24530 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24532 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24534 if (*r
->out
.info
) {
24535 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24537 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24539 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24540 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24541 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24549 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24551 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24553 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24559 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
24561 if (flags
& NDR_IN
) {
24562 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
24563 if (r
->in
.server_name
) {
24564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24567 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
));
24569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
24570 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24571 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24572 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24573 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
));
24575 if (flags
& NDR_OUT
) {
24576 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24578 return NDR_ERR_SUCCESS
;
24581 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
24583 uint32_t _ptr_server_name
;
24584 TALLOC_CTX
*_mem_save_server_name_0
;
24585 if (flags
& NDR_IN
) {
24586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
24587 if (_ptr_server_name
) {
24588 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
24590 r
->in
.server_name
= NULL
;
24592 if (r
->in
.server_name
) {
24593 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24594 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
24595 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24596 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24597 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24598 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
));
24600 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24601 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
));
24602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
24604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
24605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
24606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
24607 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
24608 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
));
24610 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
24611 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
));
24613 if (flags
& NDR_OUT
) {
24614 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24616 return NDR_ERR_SUCCESS
;
24619 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
24621 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
24623 if (flags
& NDR_SET_VALUES
) {
24624 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24626 if (flags
& NDR_IN
) {
24627 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
24629 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
24631 if (r
->in
.server_name
) {
24632 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24635 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
24636 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
24639 if (flags
& NDR_OUT
) {
24640 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
24642 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24648 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
24650 if (flags
& NDR_IN
) {
24652 if (flags
& NDR_OUT
) {
24653 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24655 return NDR_ERR_SUCCESS
;
24658 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
24660 if (flags
& NDR_IN
) {
24662 if (flags
& NDR_OUT
) {
24663 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24665 return NDR_ERR_SUCCESS
;
24668 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
24670 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
24672 if (flags
& NDR_SET_VALUES
) {
24673 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24675 if (flags
& NDR_IN
) {
24676 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
24680 if (flags
& NDR_OUT
) {
24681 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
24683 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24689 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
24691 if (flags
& NDR_IN
) {
24693 if (flags
& NDR_OUT
) {
24694 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24696 return NDR_ERR_SUCCESS
;
24699 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
24701 if (flags
& NDR_IN
) {
24703 if (flags
& NDR_OUT
) {
24704 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24706 return NDR_ERR_SUCCESS
;
24709 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
24711 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
24713 if (flags
& NDR_SET_VALUES
) {
24714 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24716 if (flags
& NDR_IN
) {
24717 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
24721 if (flags
& NDR_OUT
) {
24722 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
24724 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24730 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24732 if (flags
& NDR_IN
) {
24733 if (r
->in
.handle
== NULL
) {
24734 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24736 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24737 if (r
->in
.devmode_ctr
== NULL
) {
24738 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24740 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24742 if (flags
& NDR_OUT
) {
24743 if (r
->out
.gdi_handle
== NULL
) {
24744 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24746 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24747 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24749 return NDR_ERR_SUCCESS
;
24752 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
24754 TALLOC_CTX
*_mem_save_handle_0
;
24755 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24756 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
24757 if (flags
& NDR_IN
) {
24758 ZERO_STRUCT(r
->out
);
24760 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24761 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24763 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24764 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24765 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24767 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24768 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
24770 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24771 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24772 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24773 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24774 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24775 ZERO_STRUCTP(r
->out
.gdi_handle
);
24777 if (flags
& NDR_OUT
) {
24778 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24779 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24781 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24782 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24783 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24785 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24787 return NDR_ERR_SUCCESS
;
24790 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24792 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
24794 if (flags
& NDR_SET_VALUES
) {
24795 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24797 if (flags
& NDR_IN
) {
24798 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
24800 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24802 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24804 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24806 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24810 if (flags
& NDR_OUT
) {
24811 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
24813 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24815 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24817 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24823 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24825 if (flags
& NDR_IN
) {
24827 if (flags
& NDR_OUT
) {
24828 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24830 return NDR_ERR_SUCCESS
;
24833 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24835 if (flags
& NDR_IN
) {
24837 if (flags
& NDR_OUT
) {
24838 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24840 return NDR_ERR_SUCCESS
;
24843 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24845 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
24847 if (flags
& NDR_SET_VALUES
) {
24848 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24850 if (flags
& NDR_IN
) {
24851 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24855 if (flags
& NDR_OUT
) {
24856 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24858 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24864 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24866 if (flags
& NDR_IN
) {
24867 if (r
->in
.gdi_handle
== NULL
) {
24868 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24870 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24872 if (flags
& NDR_OUT
) {
24873 if (r
->out
.gdi_handle
== NULL
) {
24874 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24876 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24877 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24879 return NDR_ERR_SUCCESS
;
24882 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
24884 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24885 if (flags
& NDR_IN
) {
24886 ZERO_STRUCT(r
->out
);
24888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24889 NDR_PULL_ALLOC(ndr
, r
->in
.gdi_handle
);
24891 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24893 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24895 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24896 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
24898 if (flags
& NDR_OUT
) {
24899 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24900 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24902 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24903 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24904 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24906 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24908 return NDR_ERR_SUCCESS
;
24911 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24913 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
24915 if (flags
& NDR_SET_VALUES
) {
24916 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24918 if (flags
& NDR_IN
) {
24919 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
24921 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24923 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24927 if (flags
& NDR_OUT
) {
24928 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
24930 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24932 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24934 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24940 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24942 if (flags
& NDR_IN
) {
24944 if (flags
& NDR_OUT
) {
24945 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24947 return NDR_ERR_SUCCESS
;
24950 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
24952 if (flags
& NDR_IN
) {
24954 if (flags
& NDR_OUT
) {
24955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24957 return NDR_ERR_SUCCESS
;
24960 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24962 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
24964 if (flags
& NDR_SET_VALUES
) {
24965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24967 if (flags
& NDR_IN
) {
24968 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
24972 if (flags
& NDR_OUT
) {
24973 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
24975 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24981 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24983 if (flags
& NDR_IN
) {
24985 if (flags
& NDR_OUT
) {
24986 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24988 return NDR_ERR_SUCCESS
;
24991 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
24993 if (flags
& NDR_IN
) {
24995 if (flags
& NDR_OUT
) {
24996 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24998 return NDR_ERR_SUCCESS
;
25001 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25003 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
25005 if (flags
& NDR_SET_VALUES
) {
25006 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25008 if (flags
& NDR_IN
) {
25009 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
25013 if (flags
& NDR_OUT
) {
25014 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
25016 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25022 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
25024 if (flags
& NDR_IN
) {
25026 if (flags
& NDR_OUT
) {
25027 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25029 return NDR_ERR_SUCCESS
;
25032 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
25034 if (flags
& NDR_IN
) {
25036 if (flags
& NDR_OUT
) {
25037 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25039 return NDR_ERR_SUCCESS
;
25042 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
25044 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
25046 if (flags
& NDR_SET_VALUES
) {
25047 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25049 if (flags
& NDR_IN
) {
25050 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
25054 if (flags
& NDR_OUT
) {
25055 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
25057 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25063 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
25065 if (flags
& NDR_IN
) {
25067 if (flags
& NDR_OUT
) {
25068 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25070 return NDR_ERR_SUCCESS
;
25073 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
25075 if (flags
& NDR_IN
) {
25077 if (flags
& NDR_OUT
) {
25078 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25080 return NDR_ERR_SUCCESS
;
25083 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
25085 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
25087 if (flags
& NDR_SET_VALUES
) {
25088 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25090 if (flags
& NDR_IN
) {
25091 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
25095 if (flags
& NDR_OUT
) {
25096 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
25098 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25104 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
25106 if (flags
& NDR_IN
) {
25108 if (flags
& NDR_OUT
) {
25109 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25111 return NDR_ERR_SUCCESS
;
25114 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
25116 if (flags
& NDR_IN
) {
25118 if (flags
& NDR_OUT
) {
25119 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25121 return NDR_ERR_SUCCESS
;
25124 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
25126 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
25128 if (flags
& NDR_SET_VALUES
) {
25129 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25131 if (flags
& NDR_IN
) {
25132 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
25136 if (flags
& NDR_OUT
) {
25137 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
25139 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25145 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
25147 if (flags
& NDR_IN
) {
25149 if (flags
& NDR_OUT
) {
25150 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25152 return NDR_ERR_SUCCESS
;
25155 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
25157 if (flags
& NDR_IN
) {
25159 if (flags
& NDR_OUT
) {
25160 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25162 return NDR_ERR_SUCCESS
;
25165 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
25167 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
25169 if (flags
& NDR_SET_VALUES
) {
25170 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25172 if (flags
& NDR_IN
) {
25173 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
25177 if (flags
& NDR_OUT
) {
25178 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
25180 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25186 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
25188 if (flags
& NDR_IN
) {
25190 if (flags
& NDR_OUT
) {
25191 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25193 return NDR_ERR_SUCCESS
;
25196 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
25198 if (flags
& NDR_IN
) {
25200 if (flags
& NDR_OUT
) {
25201 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25203 return NDR_ERR_SUCCESS
;
25206 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
25208 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
25210 if (flags
& NDR_SET_VALUES
) {
25211 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25213 if (flags
& NDR_IN
) {
25214 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
25218 if (flags
& NDR_OUT
) {
25219 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
25221 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25227 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
25229 if (flags
& NDR_IN
) {
25231 if (flags
& NDR_OUT
) {
25232 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25234 return NDR_ERR_SUCCESS
;
25237 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
25239 if (flags
& NDR_IN
) {
25241 if (flags
& NDR_OUT
) {
25242 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25244 return NDR_ERR_SUCCESS
;
25247 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
25249 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
25251 if (flags
& NDR_SET_VALUES
) {
25252 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25254 if (flags
& NDR_IN
) {
25255 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
25259 if (flags
& NDR_OUT
) {
25260 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
25262 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25268 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
25270 if (flags
& NDR_IN
) {
25271 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25272 if (r
->in
.servername
) {
25273 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25274 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25275 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25276 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25278 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
25279 if (r
->in
.print_processor_name
) {
25280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
25281 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
25283 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
));
25285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25286 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25287 if (r
->in
.buffer
) {
25288 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25292 if (flags
& NDR_OUT
) {
25293 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25295 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25297 if (r
->out
.needed
== NULL
) {
25298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25301 if (r
->out
.count
== NULL
) {
25302 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25305 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25307 return NDR_ERR_SUCCESS
;
25310 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
25312 uint32_t _ptr_servername
;
25313 uint32_t _ptr_print_processor_name
;
25314 uint32_t _ptr_buffer
;
25315 uint32_t _ptr_info
;
25316 TALLOC_CTX
*_mem_save_servername_0
;
25317 TALLOC_CTX
*_mem_save_print_processor_name_0
;
25318 TALLOC_CTX
*_mem_save_buffer_0
;
25319 TALLOC_CTX
*_mem_save_info_0
;
25320 TALLOC_CTX
*_mem_save_needed_0
;
25321 TALLOC_CTX
*_mem_save_count_0
;
25322 if (flags
& NDR_IN
) {
25323 ZERO_STRUCT(r
->out
);
25325 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25326 if (_ptr_servername
) {
25327 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25329 r
->in
.servername
= NULL
;
25331 if (r
->in
.servername
) {
25332 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25333 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25334 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25335 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25336 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25337 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
));
25339 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25340 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25341 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
25344 if (_ptr_print_processor_name
) {
25345 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
25347 r
->in
.print_processor_name
= NULL
;
25349 if (r
->in
.print_processor_name
) {
25350 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25351 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
25352 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
25353 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
25354 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
25355 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.print_processor_name
), ndr_get_array_length(ndr
, &r
->in
.print_processor_name
));
25357 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
25358 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
));
25359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
25361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25364 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25366 r
->in
.buffer
= NULL
;
25368 if (r
->in
.buffer
) {
25369 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25370 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25371 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25375 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25376 ZERO_STRUCTP(r
->out
.needed
);
25377 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25378 ZERO_STRUCTP(r
->out
.count
);
25380 if (flags
& NDR_OUT
) {
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25383 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25385 r
->out
.info
= NULL
;
25388 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25389 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25394 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25396 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25397 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25400 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25401 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25403 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25404 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25407 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25409 return NDR_ERR_SUCCESS
;
25412 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
25414 uint32_t cntr_info_0
;
25415 if (flags
& NDR_IN
) {
25416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25419 if (flags
& NDR_OUT
) {
25420 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25421 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25422 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25424 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25425 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25428 return NDR_ERR_SUCCESS
;
25431 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
25433 uint32_t cntr_info_0
;
25434 TALLOC_CTX
*_mem_save_info_0
;
25435 if (flags
& NDR_IN
) {
25436 ZERO_STRUCT(r
->out
);
25438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25441 if (flags
& NDR_OUT
) {
25442 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25443 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25444 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25445 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25446 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25447 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25449 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25450 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25454 return NDR_ERR_SUCCESS
;
25457 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
25459 uint32_t cntr_info_2
;
25460 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
25462 if (flags
& NDR_SET_VALUES
) {
25463 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25465 if (flags
& NDR_IN
) {
25466 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
25468 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25470 if (r
->in
.servername
) {
25471 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25474 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25476 if (r
->in
.print_processor_name
) {
25477 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25480 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25481 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25483 if (r
->in
.buffer
) {
25484 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25487 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25490 if (flags
& NDR_OUT
) {
25491 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
25493 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25495 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25497 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25499 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25501 if (*r
->out
.info
) {
25502 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25504 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25506 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25507 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25508 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25516 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25518 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25520 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25526 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
25528 if (flags
& NDR_IN
) {
25529 if (r
->in
.handle
== NULL
) {
25530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25532 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25533 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
25534 if (r
->in
.data_type
) {
25535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25536 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25538 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
));
25540 if (r
->in
.devmode_ctr
== NULL
) {
25541 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25543 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25545 if (flags
& NDR_OUT
) {
25546 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25548 return NDR_ERR_SUCCESS
;
25551 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
25553 uint32_t _ptr_data_type
;
25554 TALLOC_CTX
*_mem_save_handle_0
;
25555 TALLOC_CTX
*_mem_save_data_type_0
;
25556 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25557 if (flags
& NDR_IN
) {
25558 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25559 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25561 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25562 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25563 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25565 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
25566 if (_ptr_data_type
) {
25567 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
25569 r
->in
.data_type
= NULL
;
25571 if (r
->in
.data_type
) {
25572 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25573 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
25574 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
25575 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
25576 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
25577 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
));
25579 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
25580 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
));
25581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
25583 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25584 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25586 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25587 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25588 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25591 if (flags
& NDR_OUT
) {
25592 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25594 return NDR_ERR_SUCCESS
;
25597 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
25599 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
25601 if (flags
& NDR_SET_VALUES
) {
25602 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25604 if (flags
& NDR_IN
) {
25605 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
25607 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25609 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25611 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
25613 if (r
->in
.data_type
) {
25614 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
25617 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25619 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25623 if (flags
& NDR_OUT
) {
25624 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
25626 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25632 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25634 if (flags
& NDR_IN
) {
25635 if (r
->in
.handle
== NULL
) {
25636 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25638 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25639 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
25640 if (r
->in
.architecture
) {
25641 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25642 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25644 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25648 if (r
->in
.buffer
) {
25649 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
25653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
25655 if (flags
& NDR_OUT
) {
25656 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25659 struct ndr_push
*_ndr_info
;
25660 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25661 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25662 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25663 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25666 if (r
->out
.needed
== NULL
) {
25667 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25670 if (r
->out
.server_major_version
== NULL
) {
25671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
25674 if (r
->out
.server_minor_version
== NULL
) {
25675 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
25678 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25680 return NDR_ERR_SUCCESS
;
25683 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
25685 uint32_t _ptr_architecture
;
25686 uint32_t _ptr_buffer
;
25687 uint32_t _ptr_info
;
25688 TALLOC_CTX
*_mem_save_handle_0
;
25689 TALLOC_CTX
*_mem_save_architecture_0
;
25690 TALLOC_CTX
*_mem_save_buffer_0
;
25691 TALLOC_CTX
*_mem_save_info_0
;
25692 TALLOC_CTX
*_mem_save_needed_0
;
25693 TALLOC_CTX
*_mem_save_server_major_version_0
;
25694 TALLOC_CTX
*_mem_save_server_minor_version_0
;
25695 if (flags
& NDR_IN
) {
25696 ZERO_STRUCT(r
->out
);
25698 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25699 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25701 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25702 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25703 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
25706 if (_ptr_architecture
) {
25707 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
25709 r
->in
.architecture
= NULL
;
25711 if (r
->in
.architecture
) {
25712 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25713 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
25714 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
25715 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
25716 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
25717 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
));
25719 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
25720 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
25721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
25723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25726 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25728 r
->in
.buffer
= NULL
;
25730 if (r
->in
.buffer
) {
25731 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25733 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25736 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25737 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
25738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
25739 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25740 ZERO_STRUCTP(r
->out
.needed
);
25741 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25742 ZERO_STRUCTP(r
->out
.server_major_version
);
25743 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25744 ZERO_STRUCTP(r
->out
.server_minor_version
);
25746 if (flags
& NDR_OUT
) {
25747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25749 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25751 r
->out
.info
= NULL
;
25754 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25755 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25757 struct ndr_pull
*_ndr_info
;
25758 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25759 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25760 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25761 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25765 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25766 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25768 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25769 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25772 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25773 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25775 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25776 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
25777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
25778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25779 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25780 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25782 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25783 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
25784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
25785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25786 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25788 return NDR_ERR_SUCCESS
;
25791 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25793 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
25795 if (flags
& NDR_SET_VALUES
) {
25796 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25798 if (flags
& NDR_IN
) {
25799 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
25801 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25803 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25805 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
25807 if (r
->in
.architecture
) {
25808 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
25811 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25812 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25814 if (r
->in
.buffer
) {
25815 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25818 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25819 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
25820 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
25823 if (flags
& NDR_OUT
) {
25824 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
25826 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25829 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
25830 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
25833 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25835 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25837 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
25839 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
25841 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
25843 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
25845 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25851 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25853 if (flags
& NDR_IN
) {
25855 if (flags
& NDR_OUT
) {
25856 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25858 return NDR_ERR_SUCCESS
;
25861 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
25863 if (flags
& NDR_IN
) {
25865 if (flags
& NDR_OUT
) {
25866 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25868 return NDR_ERR_SUCCESS
;
25871 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25873 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
25875 if (flags
& NDR_SET_VALUES
) {
25876 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25878 if (flags
& NDR_IN
) {
25879 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
25883 if (flags
& NDR_OUT
) {
25884 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
25886 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25892 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25894 if (flags
& NDR_IN
) {
25896 if (flags
& NDR_OUT
) {
25897 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25899 return NDR_ERR_SUCCESS
;
25902 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
25904 if (flags
& NDR_IN
) {
25906 if (flags
& NDR_OUT
) {
25907 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25909 return NDR_ERR_SUCCESS
;
25912 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25914 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
25916 if (flags
& NDR_SET_VALUES
) {
25917 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25919 if (flags
& NDR_IN
) {
25920 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
25924 if (flags
& NDR_OUT
) {
25925 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
25927 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25933 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25935 if (flags
& NDR_IN
) {
25936 if (r
->in
.handle
== NULL
) {
25937 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25939 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25941 if (flags
& NDR_OUT
) {
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_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
25949 TALLOC_CTX
*_mem_save_handle_0
;
25950 if (flags
& NDR_IN
) {
25951 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25952 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25954 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25955 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25956 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25959 if (flags
& NDR_OUT
) {
25960 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25962 return NDR_ERR_SUCCESS
;
25965 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25967 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
25969 if (flags
& NDR_SET_VALUES
) {
25970 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25972 if (flags
& NDR_IN
) {
25973 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
25975 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25977 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25981 if (flags
& NDR_OUT
) {
25982 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
25984 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25990 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25992 if (flags
& NDR_IN
) {
25994 if (flags
& NDR_OUT
) {
25995 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25997 return NDR_ERR_SUCCESS
;
26000 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26002 if (flags
& NDR_IN
) {
26004 if (flags
& NDR_OUT
) {
26005 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26007 return NDR_ERR_SUCCESS
;
26010 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26012 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26014 if (flags
& NDR_SET_VALUES
) {
26015 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26017 if (flags
& NDR_IN
) {
26018 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26022 if (flags
& NDR_OUT
) {
26023 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26025 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26031 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
26033 if (flags
& NDR_IN
) {
26034 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26035 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26036 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26037 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
));
26038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26039 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
26040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26042 if (r
->in
.buffer
) {
26043 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26044 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
26047 if (flags
& NDR_OUT
) {
26048 if (r
->out
.handle
== NULL
) {
26049 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26051 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26052 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26054 return NDR_ERR_SUCCESS
;
26057 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
26059 uint32_t _ptr_buffer
;
26060 TALLOC_CTX
*_mem_save_buffer_0
;
26061 TALLOC_CTX
*_mem_save_handle_0
;
26062 if (flags
& NDR_IN
) {
26063 ZERO_STRUCT(r
->out
);
26065 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
26066 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
26067 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
26068 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
));
26070 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
26071 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
));
26072 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26073 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
26074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
26075 if (r
->in
.bufsize
> 512) {
26076 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
26078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26080 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26082 r
->in
.buffer
= NULL
;
26084 if (r
->in
.buffer
) {
26085 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26086 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26087 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
26088 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
26089 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
26090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26092 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26093 ZERO_STRUCTP(r
->out
.handle
);
26094 if (r
->in
.buffer
) {
26095 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
26098 if (flags
& NDR_OUT
) {
26099 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26100 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26102 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26103 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26104 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26106 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26108 return NDR_ERR_SUCCESS
;
26111 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
26113 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
26115 if (flags
& NDR_SET_VALUES
) {
26116 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26118 if (flags
& NDR_IN
) {
26119 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
26121 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
26122 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26123 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
26124 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
26125 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26127 if (r
->in
.buffer
) {
26128 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
26133 if (flags
& NDR_OUT
) {
26134 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
26136 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26138 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26140 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26146 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
26148 if (flags
& NDR_IN
) {
26149 if (r
->in
.handle
== NULL
) {
26150 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26152 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26153 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26155 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26156 if (r
->in
.buffer
) {
26157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26158 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
26161 if (flags
& NDR_OUT
) {
26162 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26164 return NDR_ERR_SUCCESS
;
26167 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
26169 uint32_t _ptr_buffer
;
26170 TALLOC_CTX
*_mem_save_handle_0
;
26171 TALLOC_CTX
*_mem_save_buffer_0
;
26172 if (flags
& NDR_IN
) {
26173 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26174 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26176 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26177 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26178 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26180 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26181 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
26182 if (r
->in
.bufsize
> 512) {
26183 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
26185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26187 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26189 r
->in
.buffer
= NULL
;
26191 if (r
->in
.buffer
) {
26192 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26193 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26194 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
26195 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
26196 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
26197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26199 if (r
->in
.buffer
) {
26200 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
26203 if (flags
& NDR_OUT
) {
26204 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26206 return NDR_ERR_SUCCESS
;
26209 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
26211 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
26213 if (flags
& NDR_SET_VALUES
) {
26214 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26216 if (flags
& NDR_IN
) {
26217 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
26219 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26221 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26223 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26224 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
26225 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26227 if (r
->in
.buffer
) {
26228 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
26233 if (flags
& NDR_OUT
) {
26234 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
26236 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26242 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
26244 if (flags
& NDR_IN
) {
26245 if (r
->in
.handle
== NULL
) {
26246 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26248 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26250 if (flags
& NDR_OUT
) {
26251 if (r
->out
.handle
== NULL
) {
26252 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26254 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26255 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26257 return NDR_ERR_SUCCESS
;
26260 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
26262 TALLOC_CTX
*_mem_save_handle_0
;
26263 if (flags
& NDR_IN
) {
26264 ZERO_STRUCT(r
->out
);
26266 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26267 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26269 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26270 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26271 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26273 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26274 *r
->out
.handle
= *r
->in
.handle
;
26276 if (flags
& NDR_OUT
) {
26277 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26278 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26280 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26281 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26282 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26284 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26286 return NDR_ERR_SUCCESS
;
26289 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
26291 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
26293 if (flags
& NDR_SET_VALUES
) {
26294 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26296 if (flags
& NDR_IN
) {
26297 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
26299 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26301 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26305 if (flags
& NDR_OUT
) {
26306 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
26308 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26310 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26312 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26318 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
26320 if (flags
& NDR_IN
) {
26322 if (flags
& NDR_OUT
) {
26323 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26325 return NDR_ERR_SUCCESS
;
26328 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
26330 if (flags
& NDR_IN
) {
26332 if (flags
& NDR_OUT
) {
26333 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26335 return NDR_ERR_SUCCESS
;
26338 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
26340 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
26342 if (flags
& NDR_SET_VALUES
) {
26343 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26345 if (flags
& NDR_IN
) {
26346 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
26350 if (flags
& NDR_OUT
) {
26351 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
26353 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26359 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26361 if (flags
& NDR_IN
) {
26363 if (flags
& NDR_OUT
) {
26364 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26366 return NDR_ERR_SUCCESS
;
26369 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26371 if (flags
& NDR_IN
) {
26373 if (flags
& NDR_OUT
) {
26374 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26376 return NDR_ERR_SUCCESS
;
26379 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26381 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
26383 if (flags
& NDR_SET_VALUES
) {
26384 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26386 if (flags
& NDR_IN
) {
26387 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26391 if (flags
& NDR_OUT
) {
26392 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26394 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26400 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
26402 if (flags
& NDR_IN
) {
26404 if (flags
& NDR_OUT
) {
26405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26407 return NDR_ERR_SUCCESS
;
26410 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
26412 if (flags
& NDR_IN
) {
26414 if (flags
& NDR_OUT
) {
26415 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26417 return NDR_ERR_SUCCESS
;
26420 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
26422 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
26424 if (flags
& NDR_SET_VALUES
) {
26425 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26427 if (flags
& NDR_IN
) {
26428 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
26432 if (flags
& NDR_OUT
) {
26433 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
26435 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26441 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26443 if (flags
& NDR_IN
) {
26445 if (flags
& NDR_OUT
) {
26446 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26448 return NDR_ERR_SUCCESS
;
26451 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
26453 if (flags
& NDR_IN
) {
26455 if (flags
& NDR_OUT
) {
26456 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26458 return NDR_ERR_SUCCESS
;
26461 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26463 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
26465 if (flags
& NDR_SET_VALUES
) {
26466 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26468 if (flags
& NDR_IN
) {
26469 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
26473 if (flags
& NDR_OUT
) {
26474 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
26476 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26482 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26484 if (flags
& NDR_IN
) {
26485 if (r
->in
.handle
== NULL
) {
26486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26488 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26489 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
26491 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
26492 if (r
->in
.local_machine
) {
26493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26496 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
));
26498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26499 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
26500 if (r
->in
.notify_options
) {
26501 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26504 if (flags
& NDR_OUT
) {
26505 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26507 return NDR_ERR_SUCCESS
;
26510 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26512 uint32_t _ptr_local_machine
;
26513 uint32_t _ptr_notify_options
;
26514 TALLOC_CTX
*_mem_save_handle_0
;
26515 TALLOC_CTX
*_mem_save_local_machine_0
;
26516 TALLOC_CTX
*_mem_save_notify_options_0
;
26517 if (flags
& NDR_IN
) {
26518 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26519 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26521 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26522 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26523 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26525 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
26527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
26528 if (_ptr_local_machine
) {
26529 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
26531 r
->in
.local_machine
= NULL
;
26533 if (r
->in
.local_machine
) {
26534 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26535 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
26536 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
26537 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
26538 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
26539 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
));
26541 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
26542 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
));
26543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
26545 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
26547 if (_ptr_notify_options
) {
26548 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
26550 r
->in
.notify_options
= NULL
;
26552 if (r
->in
.notify_options
) {
26553 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26554 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
26555 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
26559 if (flags
& NDR_OUT
) {
26560 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26562 return NDR_ERR_SUCCESS
;
26565 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26567 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26569 if (flags
& NDR_SET_VALUES
) {
26570 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26572 if (flags
& NDR_IN
) {
26573 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26575 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26577 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26579 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26580 ndr_print_uint32(ndr
, "options", r
->in
.options
);
26581 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
26583 if (r
->in
.local_machine
) {
26584 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
26587 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26588 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
26590 if (r
->in
.notify_options
) {
26591 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
26596 if (flags
& NDR_OUT
) {
26597 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26599 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26605 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26607 if (flags
& NDR_IN
) {
26608 if (r
->in
.handle
== NULL
) {
26609 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26611 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
26613 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
26615 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26616 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26618 if (flags
& NDR_OUT
) {
26619 if (r
->out
.reply_result
== NULL
) {
26620 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26622 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
26623 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26625 return NDR_ERR_SUCCESS
;
26628 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
26630 TALLOC_CTX
*_mem_save_handle_0
;
26631 TALLOC_CTX
*_mem_save_reply_result_0
;
26632 if (flags
& NDR_IN
) {
26633 ZERO_STRUCT(r
->out
);
26635 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26636 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26638 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26639 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26640 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26642 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
26643 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26644 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
26645 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26646 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26647 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26648 ZERO_STRUCTP(r
->out
.reply_result
);
26650 if (flags
& NDR_OUT
) {
26651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26652 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26654 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26655 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
26656 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
26657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
26658 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26660 return NDR_ERR_SUCCESS
;
26663 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26665 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
26667 if (flags
& NDR_SET_VALUES
) {
26668 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26670 if (flags
& NDR_IN
) {
26671 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
26673 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26675 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26677 ndr_print_uint32(ndr
, "color", r
->in
.color
);
26678 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26679 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
26680 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
26681 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
26684 if (flags
& NDR_OUT
) {
26685 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
26687 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
26689 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
26691 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26697 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26699 if (flags
& NDR_IN
) {
26700 if (r
->in
.handle
== NULL
) {
26701 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26703 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
26705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
26706 if (r
->in
.options
) {
26707 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26710 if (flags
& NDR_OUT
) {
26711 if (r
->out
.info
== NULL
) {
26712 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26714 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
26715 if (*r
->out
.info
) {
26716 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26718 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26720 return NDR_ERR_SUCCESS
;
26723 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26725 uint32_t _ptr_options
;
26726 uint32_t _ptr_info
;
26727 TALLOC_CTX
*_mem_save_handle_0
;
26728 TALLOC_CTX
*_mem_save_options_0
;
26729 TALLOC_CTX
*_mem_save_info_0
;
26730 TALLOC_CTX
*_mem_save_info_1
;
26731 if (flags
& NDR_IN
) {
26732 ZERO_STRUCT(r
->out
);
26734 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26735 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26737 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26738 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26739 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
26742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
26743 if (_ptr_options
) {
26744 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
26746 r
->in
.options
= NULL
;
26748 if (r
->in
.options
) {
26749 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26750 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
26751 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26752 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
26754 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26755 ZERO_STRUCTP(r
->out
.info
);
26757 if (flags
& NDR_OUT
) {
26758 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26759 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26761 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26762 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
26763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26765 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
26767 *r
->out
.info
= NULL
;
26769 if (*r
->out
.info
) {
26770 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26771 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
26772 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26773 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
26775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
26776 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26778 return NDR_ERR_SUCCESS
;
26781 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26783 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
26785 if (flags
& NDR_SET_VALUES
) {
26786 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26788 if (flags
& NDR_IN
) {
26789 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26791 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26793 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26795 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
26796 ndr_print_ptr(ndr
, "options", r
->in
.options
);
26798 if (r
->in
.options
) {
26799 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
26804 if (flags
& NDR_OUT
) {
26805 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26807 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26809 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26811 if (*r
->out
.info
) {
26812 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
26816 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26822 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
26824 if (flags
& NDR_IN
) {
26826 if (flags
& NDR_OUT
) {
26827 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26829 return NDR_ERR_SUCCESS
;
26832 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
26834 if (flags
& NDR_IN
) {
26836 if (flags
& NDR_OUT
) {
26837 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26839 return NDR_ERR_SUCCESS
;
26842 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
26844 ndr_print_struct(ndr
, name
, "spoolss_44");
26846 if (flags
& NDR_SET_VALUES
) {
26847 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26849 if (flags
& NDR_IN
) {
26850 ndr_print_struct(ndr
, "in", "spoolss_44");
26854 if (flags
& NDR_OUT
) {
26855 ndr_print_struct(ndr
, "out", "spoolss_44");
26857 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26863 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26865 if (flags
& NDR_IN
) {
26866 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
26867 if (r
->in
.printername
) {
26868 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26869 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26870 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26871 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
26874 if (r
->in
.datatype
) {
26875 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26876 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26877 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26878 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26880 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26881 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
26882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26883 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26884 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26886 if (flags
& NDR_OUT
) {
26887 if (r
->out
.handle
== NULL
) {
26888 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26890 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26891 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26893 return NDR_ERR_SUCCESS
;
26896 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
26898 uint32_t _ptr_printername
;
26899 uint32_t _ptr_datatype
;
26900 TALLOC_CTX
*_mem_save_printername_0
;
26901 TALLOC_CTX
*_mem_save_datatype_0
;
26902 TALLOC_CTX
*_mem_save_handle_0
;
26903 if (flags
& NDR_IN
) {
26904 ZERO_STRUCT(r
->out
);
26906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
26907 if (_ptr_printername
) {
26908 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
26910 r
->in
.printername
= NULL
;
26912 if (r
->in
.printername
) {
26913 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26914 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
26915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
26916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
26917 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
26918 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
));
26920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
26921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
26922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
26924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
26925 if (_ptr_datatype
) {
26926 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
26928 r
->in
.datatype
= NULL
;
26930 if (r
->in
.datatype
) {
26931 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26932 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
26933 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
26934 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
26935 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
26936 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
));
26938 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
26939 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
26940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
26942 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26943 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
26944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26945 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26946 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26947 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26948 ZERO_STRUCTP(r
->out
.handle
);
26950 if (flags
& NDR_OUT
) {
26951 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26952 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26954 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26955 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26956 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26958 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26960 return NDR_ERR_SUCCESS
;
26963 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26965 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
26967 if (flags
& NDR_SET_VALUES
) {
26968 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26970 if (flags
& NDR_IN
) {
26971 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
26973 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
26975 if (r
->in
.printername
) {
26976 ndr_print_string(ndr
, "printername", r
->in
.printername
);
26979 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
26981 if (r
->in
.datatype
) {
26982 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
26985 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
26986 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
26987 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26988 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
26989 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
26992 if (flags
& NDR_OUT
) {
26993 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
26995 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26997 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26999 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27005 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27007 if (flags
& NDR_IN
) {
27008 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27009 if (r
->in
.server
) {
27010 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27013 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27015 if (r
->in
.info_ctr
== NULL
) {
27016 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27018 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27019 if (r
->in
.devmode_ctr
== NULL
) {
27020 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27022 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
27023 if (r
->in
.secdesc_ctr
== NULL
) {
27024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27026 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
27027 if (r
->in
.userlevel_ctr
== NULL
) {
27028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27030 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
27032 if (flags
& NDR_OUT
) {
27033 if (r
->out
.handle
== NULL
) {
27034 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27036 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27037 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27039 return NDR_ERR_SUCCESS
;
27042 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
27044 uint32_t _ptr_server
;
27045 TALLOC_CTX
*_mem_save_server_0
;
27046 TALLOC_CTX
*_mem_save_info_ctr_0
;
27047 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
27048 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
27049 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
27050 TALLOC_CTX
*_mem_save_handle_0
;
27051 if (flags
& NDR_IN
) {
27052 ZERO_STRUCT(r
->out
);
27054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
27056 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
27058 r
->in
.server
= NULL
;
27060 if (r
->in
.server
) {
27061 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27062 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
27063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
27064 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
27065 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
27066 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
));
27068 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
27069 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
27070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
27072 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27073 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
27075 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27076 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27077 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27079 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27080 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
27082 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27083 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27084 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
27085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27086 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27087 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
27089 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27090 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27091 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
27092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27093 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27094 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
27096 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27097 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27098 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
27099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27100 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27101 ZERO_STRUCTP(r
->out
.handle
);
27103 if (flags
& NDR_OUT
) {
27104 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27105 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27107 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27108 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27109 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27111 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27113 return NDR_ERR_SUCCESS
;
27116 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27118 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
27120 if (flags
& NDR_SET_VALUES
) {
27121 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27123 if (flags
& NDR_IN
) {
27124 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
27126 ndr_print_ptr(ndr
, "server", r
->in
.server
);
27128 if (r
->in
.server
) {
27129 ndr_print_string(ndr
, "server", r
->in
.server
);
27132 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
27134 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
27136 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
27138 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
27140 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
27142 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
27144 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
27146 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
27150 if (flags
& NDR_OUT
) {
27151 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
27153 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27155 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27157 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27163 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
27165 if (flags
& NDR_IN
) {
27167 if (flags
& NDR_OUT
) {
27168 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27170 return NDR_ERR_SUCCESS
;
27173 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
27175 if (flags
& NDR_IN
) {
27177 if (flags
& NDR_OUT
) {
27178 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27180 return NDR_ERR_SUCCESS
;
27183 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
27185 ndr_print_struct(ndr
, name
, "spoolss_47");
27187 if (flags
& NDR_SET_VALUES
) {
27188 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27190 if (flags
& NDR_IN
) {
27191 ndr_print_struct(ndr
, "in", "spoolss_47");
27195 if (flags
& NDR_OUT
) {
27196 ndr_print_struct(ndr
, "out", "spoolss_47");
27198 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27204 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
27206 if (flags
& NDR_IN
) {
27207 if (r
->in
.handle
== NULL
) {
27208 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27210 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
27212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
27213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
27215 if (flags
& NDR_OUT
) {
27216 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
27217 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
27218 if (r
->out
.value_needed
== NULL
) {
27219 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
27222 if (r
->out
.type
== NULL
) {
27223 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27225 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27227 uint32_t _flags_save_uint8
= ndr
->flags
;
27228 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
27229 if (r
->out
.data
== NULL
) {
27230 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27232 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
27233 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
27234 ndr
->flags
= _flags_save_uint8
;
27236 if (r
->out
.data_needed
== NULL
) {
27237 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
27240 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27242 return NDR_ERR_SUCCESS
;
27245 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
27247 TALLOC_CTX
*_mem_save_handle_0
;
27248 TALLOC_CTX
*_mem_save_value_needed_0
;
27249 TALLOC_CTX
*_mem_save_type_0
;
27250 TALLOC_CTX
*_mem_save_data_needed_0
;
27251 if (flags
& NDR_IN
) {
27252 ZERO_STRUCT(r
->out
);
27254 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27255 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27257 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27258 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27259 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
27262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
27263 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
27264 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
27265 ZERO_STRUCTP(r
->out
.value_needed
);
27266 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27267 ZERO_STRUCTP(r
->out
.type
);
27268 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
27269 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
27270 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
27271 ZERO_STRUCTP(r
->out
.data_needed
);
27273 if (flags
& NDR_OUT
) {
27274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
27275 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
));
27276 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27277 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
27279 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27280 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
27281 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
27282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27283 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27284 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27286 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27287 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27288 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27291 uint32_t _flags_save_uint8
= ndr
->flags
;
27292 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
27293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
27294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27295 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
27297 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
27298 ndr
->flags
= _flags_save_uint8
;
27300 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27301 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
27303 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27304 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
27305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
27306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27307 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27308 if (r
->out
.value_name
) {
27309 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
27312 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
27315 return NDR_ERR_SUCCESS
;
27318 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
27320 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
27322 if (flags
& NDR_SET_VALUES
) {
27323 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27325 if (flags
& NDR_IN
) {
27326 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
27328 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27330 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27332 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
27333 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
27334 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
27337 if (flags
& NDR_OUT
) {
27338 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
27340 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
27341 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
27343 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
27345 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27347 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27349 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27351 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
27353 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
27355 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
27357 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27363 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27365 if (flags
& NDR_IN
) {
27366 if (r
->in
.handle
== NULL
) {
27367 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27369 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27370 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27371 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27372 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27373 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
));
27375 if (flags
& NDR_OUT
) {
27376 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27378 return NDR_ERR_SUCCESS
;
27381 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
27383 TALLOC_CTX
*_mem_save_handle_0
;
27384 if (flags
& NDR_IN
) {
27385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27386 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27388 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27389 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27390 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27392 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27393 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27394 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27395 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
));
27397 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27398 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
));
27400 if (flags
& NDR_OUT
) {
27401 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27403 return NDR_ERR_SUCCESS
;
27406 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27408 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
27410 if (flags
& NDR_SET_VALUES
) {
27411 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27413 if (flags
& NDR_IN
) {
27414 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
27416 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27418 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27420 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27423 if (flags
& NDR_OUT
) {
27424 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
27426 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27432 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
27434 if (flags
& NDR_IN
) {
27436 if (flags
& NDR_OUT
) {
27437 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27439 return NDR_ERR_SUCCESS
;
27442 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
27444 if (flags
& NDR_IN
) {
27446 if (flags
& NDR_OUT
) {
27447 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27449 return NDR_ERR_SUCCESS
;
27452 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
27454 ndr_print_struct(ndr
, name
, "spoolss_4a");
27456 if (flags
& NDR_SET_VALUES
) {
27457 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27459 if (flags
& NDR_IN
) {
27460 ndr_print_struct(ndr
, "in", "spoolss_4a");
27464 if (flags
& NDR_OUT
) {
27465 ndr_print_struct(ndr
, "out", "spoolss_4a");
27467 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27473 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
27475 if (flags
& NDR_IN
) {
27477 if (flags
& NDR_OUT
) {
27478 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27480 return NDR_ERR_SUCCESS
;
27483 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
27485 if (flags
& NDR_IN
) {
27487 if (flags
& NDR_OUT
) {
27488 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27490 return NDR_ERR_SUCCESS
;
27493 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
27495 ndr_print_struct(ndr
, name
, "spoolss_4b");
27497 if (flags
& NDR_SET_VALUES
) {
27498 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27500 if (flags
& NDR_IN
) {
27501 ndr_print_struct(ndr
, "in", "spoolss_4b");
27505 if (flags
& NDR_OUT
) {
27506 ndr_print_struct(ndr
, "out", "spoolss_4b");
27508 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27514 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
27516 if (flags
& NDR_IN
) {
27518 if (flags
& NDR_OUT
) {
27519 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27521 return NDR_ERR_SUCCESS
;
27524 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
27526 if (flags
& NDR_IN
) {
27528 if (flags
& NDR_OUT
) {
27529 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27531 return NDR_ERR_SUCCESS
;
27534 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
27536 ndr_print_struct(ndr
, name
, "spoolss_4c");
27538 if (flags
& NDR_SET_VALUES
) {
27539 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27541 if (flags
& NDR_IN
) {
27542 ndr_print_struct(ndr
, "in", "spoolss_4c");
27546 if (flags
& NDR_OUT
) {
27547 ndr_print_struct(ndr
, "out", "spoolss_4c");
27549 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27555 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterDataEx
*r
)
27557 if (flags
& NDR_IN
) {
27558 if (r
->in
.handle
== NULL
) {
27559 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27561 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27565 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
));
27566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27567 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27568 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27569 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
));
27570 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27571 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
27572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
27574 if (flags
& NDR_OUT
) {
27575 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27577 return NDR_ERR_SUCCESS
;
27580 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterDataEx
*r
)
27582 if (flags
& NDR_IN
) {
27583 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27585 if (flags
& NDR_OUT
) {
27586 if (r
->out
.data
== NULL
) {
27587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27589 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27590 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27592 return NDR_ERR_SUCCESS
;
27595 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
27597 TALLOC_CTX
*_mem_save_handle_0
;
27598 if (flags
& NDR_IN
) {
27599 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27600 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27602 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27603 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27604 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27606 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27607 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27608 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27609 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
));
27611 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27612 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
));
27613 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27614 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27615 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27616 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
));
27618 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27619 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
));
27620 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27622 struct ndr_pull
*_ndr_data
;
27623 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
27624 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
27625 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
27626 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
27628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
27630 if (flags
& NDR_OUT
) {
27631 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27633 return NDR_ERR_SUCCESS
;
27636 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27638 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
27640 if (flags
& NDR_SET_VALUES
) {
27641 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27643 if (flags
& NDR_IN
) {
27644 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
27646 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27648 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27650 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27651 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27652 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27653 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
27654 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
27655 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
);
27658 if (flags
& NDR_OUT
) {
27659 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
27661 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27667 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterDataEx
*r
)
27669 if (flags
& NDR_IN
) {
27670 if (r
->in
.handle
== NULL
) {
27671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27673 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27676 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27677 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
));
27678 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27679 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27680 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27681 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
));
27682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27684 if (flags
& NDR_OUT
) {
27685 if (r
->out
.type
== NULL
) {
27686 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27688 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27689 if (r
->out
.data
== NULL
) {
27690 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27692 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
27693 if (r
->out
.needed
== NULL
) {
27694 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27697 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27699 return NDR_ERR_SUCCESS
;
27702 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterDataEx
*r
)
27704 TALLOC_CTX
*_mem_save_handle_0
;
27705 TALLOC_CTX
*_mem_save_type_0
;
27706 TALLOC_CTX
*_mem_save_data_0
;
27707 TALLOC_CTX
*_mem_save_needed_0
;
27708 if (flags
& NDR_IN
) {
27709 ZERO_STRUCT(r
->out
);
27711 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27712 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27714 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27715 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27716 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27718 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27719 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27720 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27721 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
));
27723 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27724 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
));
27725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27726 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27727 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27728 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
));
27730 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27731 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
));
27732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27733 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27734 ZERO_STRUCTP(r
->out
.type
);
27735 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27736 ZERO_STRUCTP(r
->out
.data
);
27737 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27738 ZERO_STRUCTP(r
->out
.needed
);
27740 if (flags
& NDR_OUT
) {
27741 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27742 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27744 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27745 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27746 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27748 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27749 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27751 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27752 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
27753 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
27754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
27755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27756 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27758 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27759 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27762 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27764 return NDR_ERR_SUCCESS
;
27767 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterDataEx
*r
)
27769 if (flags
& NDR_IN
) {
27770 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27772 if (flags
& NDR_OUT
) {
27773 if (r
->out
.data
== NULL
) {
27774 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27776 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27777 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27779 return NDR_ERR_SUCCESS
;
27782 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterDataEx
*r
)
27784 TALLOC_CTX
*_mem_save_data_0
;
27785 if (flags
& NDR_IN
) {
27786 ZERO_STRUCT(r
->out
);
27788 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27789 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27790 ZERO_STRUCTP(r
->out
.data
);
27792 if (flags
& NDR_OUT
) {
27793 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27794 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27796 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27797 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
27798 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27799 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
27802 return NDR_ERR_SUCCESS
;
27805 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27807 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
27809 if (flags
& NDR_SET_VALUES
) {
27810 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27812 if (flags
& NDR_IN
) {
27813 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
27815 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27817 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27819 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27820 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27821 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27824 if (flags
& NDR_OUT
) {
27825 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
27827 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27829 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27831 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27833 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
27834 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
27836 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27838 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27840 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27846 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
27848 if (flags
& NDR_IN
) {
27849 if (r
->in
.handle
== NULL
) {
27850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27852 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27853 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27855 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27856 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
));
27857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27859 if (flags
& NDR_OUT
) {
27860 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
27861 if (r
->out
.needed
== NULL
) {
27862 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27865 if (r
->out
.count
== NULL
) {
27866 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
27869 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27871 return NDR_ERR_SUCCESS
;
27874 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
27876 TALLOC_CTX
*_mem_save_handle_0
;
27877 TALLOC_CTX
*_mem_save_needed_0
;
27878 TALLOC_CTX
*_mem_save_count_0
;
27879 if (flags
& NDR_IN
) {
27880 ZERO_STRUCT(r
->out
);
27882 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27883 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27885 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27886 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27887 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27889 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27890 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27891 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27892 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
));
27894 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27895 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
));
27896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27897 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27898 ZERO_STRUCTP(r
->out
.needed
);
27899 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27900 ZERO_STRUCTP(r
->out
.count
);
27902 if (flags
& NDR_OUT
) {
27903 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
27904 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27905 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27907 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27908 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27911 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27912 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27914 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27915 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
27916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
27917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
27918 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27920 return NDR_ERR_SUCCESS
;
27923 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
27925 uint32_t cntr_info_0
;
27926 if (flags
& NDR_IN
) {
27927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
27929 if (flags
& NDR_OUT
) {
27930 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27931 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27933 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27934 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27937 return NDR_ERR_SUCCESS
;
27940 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
27942 uint32_t cntr_info_0
;
27943 TALLOC_CTX
*_mem_save_info_0
;
27944 if (flags
& NDR_IN
) {
27945 ZERO_STRUCT(r
->out
);
27947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
27949 if (flags
& NDR_OUT
) {
27950 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
27951 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27952 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
27953 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27954 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27956 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27957 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
27961 return NDR_ERR_SUCCESS
;
27964 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
27966 uint32_t cntr_info_2
;
27967 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
27969 if (flags
& NDR_SET_VALUES
) {
27970 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27972 if (flags
& NDR_IN
) {
27973 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
27975 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27977 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27979 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27980 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27983 if (flags
& NDR_OUT
) {
27984 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
27986 ndr_print_ptr(ndr
, "count", r
->out
.count
);
27988 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
27990 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27992 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27994 if (*r
->out
.info
) {
27995 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
27997 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
27999 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
28000 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
28008 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28010 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28012 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28018 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
28020 if (flags
& NDR_IN
) {
28021 if (r
->in
.handle
== NULL
) {
28022 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28024 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28028 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
));
28029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28031 if (flags
& NDR_OUT
) {
28032 if (r
->out
._ndr_size
== NULL
) {
28033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
28036 if (r
->out
.key_buffer
== NULL
) {
28037 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28040 struct ndr_push
*_ndr_key_buffer
;
28041 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28042 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
28043 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
28044 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28046 if (r
->out
.needed
== NULL
) {
28047 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28050 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28052 return NDR_ERR_SUCCESS
;
28055 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
28057 TALLOC_CTX
*_mem_save_handle_0
;
28058 TALLOC_CTX
*_mem_save__ndr_size_0
;
28059 TALLOC_CTX
*_mem_save_key_buffer_0
;
28060 TALLOC_CTX
*_mem_save_needed_0
;
28061 if (flags
& NDR_IN
) {
28062 ZERO_STRUCT(r
->out
);
28064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28065 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28067 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28069 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28071 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28072 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28073 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28074 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
));
28076 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28077 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
));
28078 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28079 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
28080 ZERO_STRUCTP(r
->out
._ndr_size
);
28081 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
28082 ZERO_STRUCTP(r
->out
.key_buffer
);
28083 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28084 ZERO_STRUCTP(r
->out
.needed
);
28086 if (flags
& NDR_OUT
) {
28087 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28088 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
28090 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28091 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
28092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
28093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
28094 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28095 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
28097 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28098 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
28100 struct ndr_pull
*_ndr_key_buffer
;
28101 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28102 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
28103 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
28104 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
28107 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28108 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28110 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28111 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28114 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28116 return NDR_ERR_SUCCESS
;
28119 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
28121 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
28123 if (flags
& NDR_SET_VALUES
) {
28124 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28126 if (flags
& NDR_IN
) {
28127 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
28129 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28131 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28133 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28134 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28137 if (flags
& NDR_OUT
) {
28138 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
28140 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
28142 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
28144 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
28146 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
28147 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
28149 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28151 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28153 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28159 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
28161 if (flags
& NDR_IN
) {
28162 if (r
->in
.handle
== NULL
) {
28163 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28165 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28166 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28169 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
));
28170 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28171 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28173 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
));
28175 if (flags
& NDR_OUT
) {
28176 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28178 return NDR_ERR_SUCCESS
;
28181 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
28183 TALLOC_CTX
*_mem_save_handle_0
;
28184 if (flags
& NDR_IN
) {
28185 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28186 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28188 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28189 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28190 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28191 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28194 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28195 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
));
28197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28198 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
));
28199 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28200 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28201 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28202 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
));
28204 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28205 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
));
28207 if (flags
& NDR_OUT
) {
28208 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28210 return NDR_ERR_SUCCESS
;
28213 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
28215 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
28217 if (flags
& NDR_SET_VALUES
) {
28218 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28220 if (flags
& NDR_IN
) {
28221 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
28223 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28225 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28227 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28228 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28231 if (flags
& NDR_OUT
) {
28232 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
28234 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28240 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
28242 if (flags
& NDR_IN
) {
28243 if (r
->in
.handle
== NULL
) {
28244 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28246 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28247 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28248 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28249 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28250 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
));
28252 if (flags
& NDR_OUT
) {
28253 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28255 return NDR_ERR_SUCCESS
;
28258 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
28260 TALLOC_CTX
*_mem_save_handle_0
;
28261 if (flags
& NDR_IN
) {
28262 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28263 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28265 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28266 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28267 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28269 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28270 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28271 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28272 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
));
28274 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28275 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
));
28277 if (flags
& NDR_OUT
) {
28278 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28280 return NDR_ERR_SUCCESS
;
28283 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
28285 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
28287 if (flags
& NDR_SET_VALUES
) {
28288 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28290 if (flags
& NDR_IN
) {
28291 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
28293 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28295 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28297 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28300 if (flags
& NDR_OUT
) {
28301 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
28303 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28309 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
28311 if (flags
& NDR_IN
) {
28313 if (flags
& NDR_OUT
) {
28314 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28316 return NDR_ERR_SUCCESS
;
28319 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
28321 if (flags
& NDR_IN
) {
28323 if (flags
& NDR_OUT
) {
28324 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28326 return NDR_ERR_SUCCESS
;
28329 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
28331 ndr_print_struct(ndr
, name
, "spoolss_53");
28333 if (flags
& NDR_SET_VALUES
) {
28334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28336 if (flags
& NDR_IN
) {
28337 ndr_print_struct(ndr
, "in", "spoolss_53");
28341 if (flags
& NDR_OUT
) {
28342 ndr_print_struct(ndr
, "out", "spoolss_53");
28344 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28350 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28352 if (flags
& NDR_IN
) {
28353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
28354 if (r
->in
.server
) {
28355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28358 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28360 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28361 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28362 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28363 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28364 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28365 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28366 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28367 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28368 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
28369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
28371 if (flags
& NDR_OUT
) {
28372 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28374 return NDR_ERR_SUCCESS
;
28377 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
28379 uint32_t _ptr_server
;
28380 TALLOC_CTX
*_mem_save_server_0
;
28381 if (flags
& NDR_IN
) {
28382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28384 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28386 r
->in
.server
= NULL
;
28388 if (r
->in
.server
) {
28389 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28390 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28391 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28392 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28393 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
28394 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
));
28396 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
28397 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
28398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28400 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
28401 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
28402 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
28403 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
));
28405 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
28406 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
28407 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
28408 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
28409 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
28410 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
));
28412 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
28413 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
28414 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
28415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
28417 if (flags
& NDR_OUT
) {
28418 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28420 return NDR_ERR_SUCCESS
;
28423 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28425 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
28427 if (flags
& NDR_SET_VALUES
) {
28428 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28430 if (flags
& NDR_IN
) {
28431 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
28433 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28435 if (r
->in
.server
) {
28436 ndr_print_string(ndr
, "server", r
->in
.server
);
28439 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
28440 ndr_print_string(ndr
, "driver", r
->in
.driver
);
28441 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
28442 ndr_print_uint32(ndr
, "version", r
->in
.version
);
28445 if (flags
& NDR_OUT
) {
28446 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
28448 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28454 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
28456 if (flags
& NDR_IN
) {
28458 if (flags
& NDR_OUT
) {
28459 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28461 return NDR_ERR_SUCCESS
;
28464 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
28466 if (flags
& NDR_IN
) {
28468 if (flags
& NDR_OUT
) {
28469 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28471 return NDR_ERR_SUCCESS
;
28474 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
28476 ndr_print_struct(ndr
, name
, "spoolss_55");
28478 if (flags
& NDR_SET_VALUES
) {
28479 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28481 if (flags
& NDR_IN
) {
28482 ndr_print_struct(ndr
, "in", "spoolss_55");
28486 if (flags
& NDR_OUT
) {
28487 ndr_print_struct(ndr
, "out", "spoolss_55");
28489 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28495 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
28497 if (flags
& NDR_IN
) {
28499 if (flags
& NDR_OUT
) {
28500 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28502 return NDR_ERR_SUCCESS
;
28505 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
28507 if (flags
& NDR_IN
) {
28509 if (flags
& NDR_OUT
) {
28510 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28512 return NDR_ERR_SUCCESS
;
28515 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
28517 ndr_print_struct(ndr
, name
, "spoolss_56");
28519 if (flags
& NDR_SET_VALUES
) {
28520 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28522 if (flags
& NDR_IN
) {
28523 ndr_print_struct(ndr
, "in", "spoolss_56");
28527 if (flags
& NDR_OUT
) {
28528 ndr_print_struct(ndr
, "out", "spoolss_56");
28530 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28536 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
28538 if (flags
& NDR_IN
) {
28540 if (flags
& NDR_OUT
) {
28541 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28543 return NDR_ERR_SUCCESS
;
28546 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
28548 if (flags
& NDR_IN
) {
28550 if (flags
& NDR_OUT
) {
28551 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28553 return NDR_ERR_SUCCESS
;
28556 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
28558 ndr_print_struct(ndr
, name
, "spoolss_57");
28560 if (flags
& NDR_SET_VALUES
) {
28561 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28563 if (flags
& NDR_IN
) {
28564 ndr_print_struct(ndr
, "in", "spoolss_57");
28568 if (flags
& NDR_OUT
) {
28569 ndr_print_struct(ndr
, "out", "spoolss_57");
28571 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28577 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
28579 if (flags
& NDR_IN
) {
28580 if (r
->in
.handle
== NULL
) {
28581 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28583 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28584 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28585 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28587 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
));
28588 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
28589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
28590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28591 if (r
->in
.status_code
== NULL
) {
28592 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
28596 if (flags
& NDR_OUT
) {
28597 if (r
->out
.out_data
== NULL
) {
28598 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28601 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
28602 if (r
->out
.needed
== NULL
) {
28603 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28606 if (r
->out
.status_code
== NULL
) {
28607 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
28610 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28612 return NDR_ERR_SUCCESS
;
28615 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
28617 TALLOC_CTX
*_mem_save_handle_0
;
28618 TALLOC_CTX
*_mem_save_needed_0
;
28619 TALLOC_CTX
*_mem_save_status_code_0
;
28620 if (flags
& NDR_IN
) {
28621 ZERO_STRUCT(r
->out
);
28623 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28624 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28626 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28627 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28628 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
28631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
28632 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
28633 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
));
28635 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
28636 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
));
28637 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
28638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
28639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
28640 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28641 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
28643 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28644 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
28646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28647 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
28648 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
28649 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28650 ZERO_STRUCTP(r
->out
.needed
);
28651 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28652 *r
->out
.status_code
= *r
->in
.status_code
;
28654 if (flags
& NDR_OUT
) {
28655 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
28656 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28657 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
28659 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
28660 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28661 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28663 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28664 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28667 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28668 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28670 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28671 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
28673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28674 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28675 if (r
->out
.out_data
) {
28676 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
28679 return NDR_ERR_SUCCESS
;
28682 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
28684 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
28686 if (flags
& NDR_SET_VALUES
) {
28687 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28689 if (flags
& NDR_IN
) {
28690 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
28692 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28694 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28696 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
28697 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
28698 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
28699 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
28700 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
28702 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
28706 if (flags
& NDR_OUT
) {
28707 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
28709 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
28711 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
28713 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28715 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28717 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
28719 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
28721 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28727 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28729 if (flags
& NDR_IN
) {
28730 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
28731 if (r
->in
.servername
) {
28732 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28734 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28735 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28737 if (r
->in
.info_ctr
== NULL
) {
28738 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28740 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28741 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
28743 if (flags
& NDR_OUT
) {
28744 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28746 return NDR_ERR_SUCCESS
;
28749 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
28751 uint32_t _ptr_servername
;
28752 TALLOC_CTX
*_mem_save_servername_0
;
28753 TALLOC_CTX
*_mem_save_info_ctr_0
;
28754 if (flags
& NDR_IN
) {
28755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
28756 if (_ptr_servername
) {
28757 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
28759 r
->in
.servername
= NULL
;
28761 if (r
->in
.servername
) {
28762 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
28764 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
28765 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
28766 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
28767 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
));
28769 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
28770 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
28771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
28773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28774 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28776 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28777 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28778 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28780 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
28782 if (flags
& NDR_OUT
) {
28783 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28785 return NDR_ERR_SUCCESS
;
28788 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28790 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
28792 if (flags
& NDR_SET_VALUES
) {
28793 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28795 if (flags
& NDR_IN
) {
28796 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
28798 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
28800 if (r
->in
.servername
) {
28801 ndr_print_string(ndr
, "servername", r
->in
.servername
);
28804 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28806 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28808 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
28811 if (flags
& NDR_OUT
) {
28812 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
28814 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28820 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
28822 if (flags
& NDR_IN
) {
28824 if (flags
& NDR_OUT
) {
28825 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28827 return NDR_ERR_SUCCESS
;
28830 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
28832 if (flags
& NDR_IN
) {
28834 if (flags
& NDR_OUT
) {
28835 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28837 return NDR_ERR_SUCCESS
;
28840 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
28842 ndr_print_struct(ndr
, name
, "spoolss_5a");
28844 if (flags
& NDR_SET_VALUES
) {
28845 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28847 if (flags
& NDR_IN
) {
28848 ndr_print_struct(ndr
, "in", "spoolss_5a");
28852 if (flags
& NDR_OUT
) {
28853 ndr_print_struct(ndr
, "out", "spoolss_5a");
28855 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28861 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
28863 if (flags
& NDR_IN
) {
28865 if (flags
& NDR_OUT
) {
28866 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28868 return NDR_ERR_SUCCESS
;
28871 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
28873 if (flags
& NDR_IN
) {
28875 if (flags
& NDR_OUT
) {
28876 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28878 return NDR_ERR_SUCCESS
;
28881 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
28883 ndr_print_struct(ndr
, name
, "spoolss_5b");
28885 if (flags
& NDR_SET_VALUES
) {
28886 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28888 if (flags
& NDR_IN
) {
28889 ndr_print_struct(ndr
, "in", "spoolss_5b");
28893 if (flags
& NDR_OUT
) {
28894 ndr_print_struct(ndr
, "out", "spoolss_5b");
28896 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28902 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
28904 if (flags
& NDR_IN
) {
28906 if (flags
& NDR_OUT
) {
28907 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28909 return NDR_ERR_SUCCESS
;
28912 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
28914 if (flags
& NDR_IN
) {
28916 if (flags
& NDR_OUT
) {
28917 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28919 return NDR_ERR_SUCCESS
;
28922 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
28924 ndr_print_struct(ndr
, name
, "spoolss_5c");
28926 if (flags
& NDR_SET_VALUES
) {
28927 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28929 if (flags
& NDR_IN
) {
28930 ndr_print_struct(ndr
, "in", "spoolss_5c");
28934 if (flags
& NDR_OUT
) {
28935 ndr_print_struct(ndr
, "out", "spoolss_5c");
28937 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28943 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
28945 if (flags
& NDR_IN
) {
28947 if (flags
& NDR_OUT
) {
28948 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28950 return NDR_ERR_SUCCESS
;
28953 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
28955 if (flags
& NDR_IN
) {
28957 if (flags
& NDR_OUT
) {
28958 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28960 return NDR_ERR_SUCCESS
;
28963 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
28965 ndr_print_struct(ndr
, name
, "spoolss_5d");
28967 if (flags
& NDR_SET_VALUES
) {
28968 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28970 if (flags
& NDR_IN
) {
28971 ndr_print_struct(ndr
, "in", "spoolss_5d");
28975 if (flags
& NDR_OUT
) {
28976 ndr_print_struct(ndr
, "out", "spoolss_5d");
28978 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28984 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
28986 if (flags
& NDR_IN
) {
28988 if (flags
& NDR_OUT
) {
28989 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28991 return NDR_ERR_SUCCESS
;
28994 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
28996 if (flags
& NDR_IN
) {
28998 if (flags
& NDR_OUT
) {
28999 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29001 return NDR_ERR_SUCCESS
;
29004 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
29006 ndr_print_struct(ndr
, name
, "spoolss_5e");
29008 if (flags
& NDR_SET_VALUES
) {
29009 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29011 if (flags
& NDR_IN
) {
29012 ndr_print_struct(ndr
, "in", "spoolss_5e");
29016 if (flags
& NDR_OUT
) {
29017 ndr_print_struct(ndr
, "out", "spoolss_5e");
29019 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29025 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
29027 if (flags
& NDR_IN
) {
29029 if (flags
& NDR_OUT
) {
29030 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29032 return NDR_ERR_SUCCESS
;
29035 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
29037 if (flags
& NDR_IN
) {
29039 if (flags
& NDR_OUT
) {
29040 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29042 return NDR_ERR_SUCCESS
;
29045 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
29047 ndr_print_struct(ndr
, name
, "spoolss_5f");
29049 if (flags
& NDR_SET_VALUES
) {
29050 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29052 if (flags
& NDR_IN
) {
29053 ndr_print_struct(ndr
, "in", "spoolss_5f");
29057 if (flags
& NDR_OUT
) {
29058 ndr_print_struct(ndr
, "out", "spoolss_5f");
29060 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29066 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
29068 if (flags
& NDR_IN
) {
29070 if (flags
& NDR_OUT
) {
29071 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29073 return NDR_ERR_SUCCESS
;
29076 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
29078 if (flags
& NDR_IN
) {
29080 if (flags
& NDR_OUT
) {
29081 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29083 return NDR_ERR_SUCCESS
;
29086 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
29088 ndr_print_struct(ndr
, name
, "spoolss_60");
29090 if (flags
& NDR_SET_VALUES
) {
29091 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29093 if (flags
& NDR_IN
) {
29094 ndr_print_struct(ndr
, "in", "spoolss_60");
29098 if (flags
& NDR_OUT
) {
29099 ndr_print_struct(ndr
, "out", "spoolss_60");
29101 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29107 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
29109 if (flags
& NDR_IN
) {
29111 if (flags
& NDR_OUT
) {
29112 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29114 return NDR_ERR_SUCCESS
;
29117 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
29119 if (flags
& NDR_IN
) {
29121 if (flags
& NDR_OUT
) {
29122 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29124 return NDR_ERR_SUCCESS
;
29127 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
29129 ndr_print_struct(ndr
, name
, "spoolss_61");
29131 if (flags
& NDR_SET_VALUES
) {
29132 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29134 if (flags
& NDR_IN
) {
29135 ndr_print_struct(ndr
, "in", "spoolss_61");
29139 if (flags
& NDR_OUT
) {
29140 ndr_print_struct(ndr
, "out", "spoolss_61");
29142 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29148 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
29150 if (flags
& NDR_IN
) {
29152 if (flags
& NDR_OUT
) {
29153 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29155 return NDR_ERR_SUCCESS
;
29158 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
29160 if (flags
& NDR_IN
) {
29162 if (flags
& NDR_OUT
) {
29163 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29165 return NDR_ERR_SUCCESS
;
29168 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
29170 ndr_print_struct(ndr
, name
, "spoolss_62");
29172 if (flags
& NDR_SET_VALUES
) {
29173 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29175 if (flags
& NDR_IN
) {
29176 ndr_print_struct(ndr
, "in", "spoolss_62");
29180 if (flags
& NDR_OUT
) {
29181 ndr_print_struct(ndr
, "out", "spoolss_62");
29183 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29189 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
29191 if (flags
& NDR_IN
) {
29193 if (flags
& NDR_OUT
) {
29194 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29196 return NDR_ERR_SUCCESS
;
29199 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
29201 if (flags
& NDR_IN
) {
29203 if (flags
& NDR_OUT
) {
29204 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29206 return NDR_ERR_SUCCESS
;
29209 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
29211 ndr_print_struct(ndr
, name
, "spoolss_63");
29213 if (flags
& NDR_SET_VALUES
) {
29214 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29216 if (flags
& NDR_IN
) {
29217 ndr_print_struct(ndr
, "in", "spoolss_63");
29221 if (flags
& NDR_OUT
) {
29222 ndr_print_struct(ndr
, "out", "spoolss_63");
29224 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29230 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
29232 if (flags
& NDR_IN
) {
29234 if (flags
& NDR_OUT
) {
29235 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29237 return NDR_ERR_SUCCESS
;
29240 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
29242 if (flags
& NDR_IN
) {
29244 if (flags
& NDR_OUT
) {
29245 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29247 return NDR_ERR_SUCCESS
;
29250 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
29252 ndr_print_struct(ndr
, name
, "spoolss_64");
29254 if (flags
& NDR_SET_VALUES
) {
29255 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29257 if (flags
& NDR_IN
) {
29258 ndr_print_struct(ndr
, "in", "spoolss_64");
29262 if (flags
& NDR_OUT
) {
29263 ndr_print_struct(ndr
, "out", "spoolss_64");
29265 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29271 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
29273 if (flags
& NDR_IN
) {
29275 if (flags
& NDR_OUT
) {
29276 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29278 return NDR_ERR_SUCCESS
;
29281 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
29283 if (flags
& NDR_IN
) {
29285 if (flags
& NDR_OUT
) {
29286 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29288 return NDR_ERR_SUCCESS
;
29291 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
29293 ndr_print_struct(ndr
, name
, "spoolss_65");
29295 if (flags
& NDR_SET_VALUES
) {
29296 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29298 if (flags
& NDR_IN
) {
29299 ndr_print_struct(ndr
, "in", "spoolss_65");
29303 if (flags
& NDR_OUT
) {
29304 ndr_print_struct(ndr
, "out", "spoolss_65");
29306 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29312 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
29314 uint32_t cntr_core_printer_drivers_1
;
29315 if (flags
& NDR_IN
) {
29316 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29317 if (r
->in
.servername
) {
29318 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29319 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29320 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29321 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29323 if (r
->in
.architecture
== NULL
) {
29324 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29326 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29327 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29328 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29329 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
29331 if (r
->in
.core_driver_dependencies
== NULL
) {
29332 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29334 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
29335 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
29336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
29338 if (flags
& NDR_OUT
) {
29339 if (r
->out
.core_printer_drivers
== NULL
) {
29340 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29342 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
29343 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
29344 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
29346 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29348 return NDR_ERR_SUCCESS
;
29351 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
29353 uint32_t _ptr_servername
;
29354 uint32_t cntr_core_printer_drivers_1
;
29355 TALLOC_CTX
*_mem_save_servername_0
;
29356 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
29357 if (flags
& NDR_IN
) {
29358 ZERO_STRUCT(r
->out
);
29360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29361 if (_ptr_servername
) {
29362 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29364 r
->in
.servername
= NULL
;
29366 if (r
->in
.servername
) {
29367 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29369 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29370 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29371 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29372 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
));
29374 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29375 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29380 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29381 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
));
29383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
29386 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
29387 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
));
29388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
29389 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
29390 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
29391 if (r
->in
.core_driver_dependencies
) {
29392 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
29395 if (flags
& NDR_OUT
) {
29396 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
29397 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29398 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
));
29400 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
29401 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
29402 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
29403 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
29405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
29406 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29407 if (r
->out
.core_printer_drivers
) {
29408 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
29411 return NDR_ERR_SUCCESS
;
29414 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
29416 uint32_t cntr_core_printer_drivers_1
;
29417 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
29419 if (flags
& NDR_SET_VALUES
) {
29420 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29422 if (flags
& NDR_IN
) {
29423 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
29425 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29427 if (r
->in
.servername
) {
29428 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29431 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29433 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29435 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
29436 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29438 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29440 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
29443 if (flags
& NDR_OUT
) {
29444 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
29446 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
29448 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
29450 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
29452 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
29453 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
29459 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29465 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
29467 if (flags
& NDR_IN
) {
29469 if (flags
& NDR_OUT
) {
29470 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29472 return NDR_ERR_SUCCESS
;
29475 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
29477 if (flags
& NDR_IN
) {
29479 if (flags
& NDR_OUT
) {
29480 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29482 return NDR_ERR_SUCCESS
;
29485 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
29487 ndr_print_struct(ndr
, name
, "spoolss_67");
29489 if (flags
& NDR_SET_VALUES
) {
29490 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29492 if (flags
& NDR_IN
) {
29493 ndr_print_struct(ndr
, "in", "spoolss_67");
29497 if (flags
& NDR_OUT
) {
29498 ndr_print_struct(ndr
, "out", "spoolss_67");
29500 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29506 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29508 if (flags
& NDR_IN
) {
29509 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29510 if (r
->in
.servername
) {
29511 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29512 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29514 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29516 if (r
->in
.architecture
== NULL
) {
29517 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29519 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29520 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29522 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
29524 if (r
->in
.language
) {
29525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29526 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29530 if (r
->in
.package_id
== NULL
) {
29531 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29534 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29536 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
));
29537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
29538 if (r
->in
.driver_package_cab
) {
29539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29544 if (flags
& NDR_OUT
) {
29545 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
29546 if (r
->out
.driver_package_cab
) {
29547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29548 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29550 if (r
->out
.required
== NULL
) {
29551 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
29554 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29556 return NDR_ERR_SUCCESS
;
29559 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
29561 uint32_t _ptr_servername
;
29562 uint32_t _ptr_language
;
29563 uint32_t _ptr_driver_package_cab
;
29564 TALLOC_CTX
*_mem_save_servername_0
;
29565 TALLOC_CTX
*_mem_save_language_0
;
29566 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
29567 TALLOC_CTX
*_mem_save_required_0
;
29568 if (flags
& NDR_IN
) {
29569 ZERO_STRUCT(r
->out
);
29571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29572 if (_ptr_servername
) {
29573 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29575 r
->in
.servername
= NULL
;
29577 if (r
->in
.servername
) {
29578 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29580 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29581 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29582 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29583 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
));
29585 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29586 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29589 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29590 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29591 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29592 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
));
29594 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
29597 if (_ptr_language
) {
29598 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
29600 r
->in
.language
= NULL
;
29602 if (r
->in
.language
) {
29603 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
29605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
29606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
29607 if (ndr_get_array_length(ndr
, &r
->in
.language
) > ndr_get_array_size(ndr
, &r
->in
.language
)) {
29608 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
));
29610 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t)));
29611 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t), CH_UTF16
));
29612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
29614 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
29615 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
29616 if (ndr_get_array_length(ndr
, &r
->in
.package_id
) > ndr_get_array_size(ndr
, &r
->in
.package_id
)) {
29617 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
));
29619 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t)));
29620 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
));
29621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29622 if (_ptr_driver_package_cab
) {
29623 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
29625 r
->in
.driver_package_cab
= NULL
;
29627 if (r
->in
.driver_package_cab
) {
29628 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29629 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
29630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
29631 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
));
29632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29634 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
29635 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29636 ZERO_STRUCTP(r
->out
.required
);
29637 if (r
->in
.driver_package_cab
) {
29638 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29641 if (flags
& NDR_OUT
) {
29642 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29643 if (_ptr_driver_package_cab
) {
29644 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
29646 r
->out
.driver_package_cab
= NULL
;
29648 if (r
->out
.driver_package_cab
) {
29649 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29650 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
29651 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
29652 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
));
29653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29655 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29656 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29658 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29659 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
29660 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
29661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
29662 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29663 if (r
->out
.driver_package_cab
) {
29664 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29667 return NDR_ERR_SUCCESS
;
29670 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29672 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
29674 if (flags
& NDR_SET_VALUES
) {
29675 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29677 if (flags
& NDR_IN
) {
29678 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
29680 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29682 if (r
->in
.servername
) {
29683 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29686 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29688 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29690 ndr_print_ptr(ndr
, "language", r
->in
.language
);
29692 if (r
->in
.language
) {
29693 ndr_print_string(ndr
, "language", r
->in
.language
);
29696 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
29698 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
29700 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29702 if (r
->in
.driver_package_cab
) {
29703 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29706 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
29709 if (flags
& NDR_OUT
) {
29710 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
29712 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29714 if (r
->out
.driver_package_cab
) {
29715 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29718 ndr_print_ptr(ndr
, "required", r
->out
.required
);
29720 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
29722 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29728 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
29730 if (flags
& NDR_IN
) {
29732 if (flags
& NDR_OUT
) {
29733 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29735 return NDR_ERR_SUCCESS
;
29738 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
29740 if (flags
& NDR_IN
) {
29742 if (flags
& NDR_OUT
) {
29743 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29745 return NDR_ERR_SUCCESS
;
29748 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
29750 ndr_print_struct(ndr
, name
, "spoolss_69");
29752 if (flags
& NDR_SET_VALUES
) {
29753 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29755 if (flags
& NDR_IN
) {
29756 ndr_print_struct(ndr
, "in", "spoolss_69");
29760 if (flags
& NDR_OUT
) {
29761 ndr_print_struct(ndr
, "out", "spoolss_69");
29763 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29769 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
29771 if (flags
& NDR_IN
) {
29773 if (flags
& NDR_OUT
) {
29774 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29776 return NDR_ERR_SUCCESS
;
29779 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
29781 if (flags
& NDR_IN
) {
29783 if (flags
& NDR_OUT
) {
29784 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29786 return NDR_ERR_SUCCESS
;
29789 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
29791 ndr_print_struct(ndr
, name
, "spoolss_6a");
29793 if (flags
& NDR_SET_VALUES
) {
29794 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29796 if (flags
& NDR_IN
) {
29797 ndr_print_struct(ndr
, "in", "spoolss_6a");
29801 if (flags
& NDR_OUT
) {
29802 ndr_print_struct(ndr
, "out", "spoolss_6a");
29804 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29810 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
29812 if (flags
& NDR_IN
) {
29814 if (flags
& NDR_OUT
) {
29815 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29817 return NDR_ERR_SUCCESS
;
29820 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
29822 if (flags
& NDR_IN
) {
29824 if (flags
& NDR_OUT
) {
29825 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29827 return NDR_ERR_SUCCESS
;
29830 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
29832 ndr_print_struct(ndr
, name
, "spoolss_6b");
29834 if (flags
& NDR_SET_VALUES
) {
29835 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29837 if (flags
& NDR_IN
) {
29838 ndr_print_struct(ndr
, "in", "spoolss_6b");
29842 if (flags
& NDR_OUT
) {
29843 ndr_print_struct(ndr
, "out", "spoolss_6b");
29845 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29851 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
29853 if (flags
& NDR_IN
) {
29855 if (flags
& NDR_OUT
) {
29856 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29858 return NDR_ERR_SUCCESS
;
29861 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
29863 if (flags
& NDR_IN
) {
29865 if (flags
& NDR_OUT
) {
29866 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29868 return NDR_ERR_SUCCESS
;
29871 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
29873 ndr_print_struct(ndr
, name
, "spoolss_6c");
29875 if (flags
& NDR_SET_VALUES
) {
29876 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29878 if (flags
& NDR_IN
) {
29879 ndr_print_struct(ndr
, "in", "spoolss_6c");
29883 if (flags
& NDR_OUT
) {
29884 ndr_print_struct(ndr
, "out", "spoolss_6c");
29886 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29892 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
29894 if (flags
& NDR_IN
) {
29896 if (flags
& NDR_OUT
) {
29897 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29899 return NDR_ERR_SUCCESS
;
29902 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
29904 if (flags
& NDR_IN
) {
29906 if (flags
& NDR_OUT
) {
29907 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29909 return NDR_ERR_SUCCESS
;
29912 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
29914 ndr_print_struct(ndr
, name
, "spoolss_6d");
29916 if (flags
& NDR_SET_VALUES
) {
29917 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29919 if (flags
& NDR_IN
) {
29920 ndr_print_struct(ndr
, "in", "spoolss_6d");
29924 if (flags
& NDR_OUT
) {
29925 ndr_print_struct(ndr
, "out", "spoolss_6d");
29927 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29933 static const struct ndr_interface_call spoolss_calls
[] = {
29935 "spoolss_EnumPrinters",
29936 sizeof(struct spoolss_EnumPrinters
),
29937 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
29938 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
29939 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
29943 "spoolss_OpenPrinter",
29944 sizeof(struct spoolss_OpenPrinter
),
29945 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
29946 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
29947 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
29952 sizeof(struct spoolss_SetJob
),
29953 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
29954 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
29955 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
29960 sizeof(struct spoolss_GetJob
),
29961 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
29962 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
29963 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
29967 "spoolss_EnumJobs",
29968 sizeof(struct spoolss_EnumJobs
),
29969 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
29970 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
29971 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
29975 "spoolss_AddPrinter",
29976 sizeof(struct spoolss_AddPrinter
),
29977 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
29978 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
29979 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
29983 "spoolss_DeletePrinter",
29984 sizeof(struct spoolss_DeletePrinter
),
29985 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
29986 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
29987 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
29991 "spoolss_SetPrinter",
29992 sizeof(struct spoolss_SetPrinter
),
29993 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
29994 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
29995 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
29999 "spoolss_GetPrinter",
30000 sizeof(struct spoolss_GetPrinter
),
30001 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
30002 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
30003 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
30007 "spoolss_AddPrinterDriver",
30008 sizeof(struct spoolss_AddPrinterDriver
),
30009 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
30010 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
30011 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
30015 "spoolss_EnumPrinterDrivers",
30016 sizeof(struct spoolss_EnumPrinterDrivers
),
30017 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
30018 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
30019 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
30023 "spoolss_GetPrinterDriver",
30024 sizeof(struct spoolss_GetPrinterDriver
),
30025 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
30026 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
30027 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
30031 "spoolss_GetPrinterDriverDirectory",
30032 sizeof(struct spoolss_GetPrinterDriverDirectory
),
30033 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
30034 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
30035 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
30039 "spoolss_DeletePrinterDriver",
30040 sizeof(struct spoolss_DeletePrinterDriver
),
30041 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
30042 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
30043 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
30047 "spoolss_AddPrintProcessor",
30048 sizeof(struct spoolss_AddPrintProcessor
),
30049 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
30050 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
30051 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
30055 "spoolss_EnumPrintProcessors",
30056 sizeof(struct spoolss_EnumPrintProcessors
),
30057 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
30058 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
30059 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
30063 "spoolss_GetPrintProcessorDirectory",
30064 sizeof(struct spoolss_GetPrintProcessorDirectory
),
30065 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
30066 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
30067 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
30071 "spoolss_StartDocPrinter",
30072 sizeof(struct spoolss_StartDocPrinter
),
30073 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
30074 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
30075 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
30079 "spoolss_StartPagePrinter",
30080 sizeof(struct spoolss_StartPagePrinter
),
30081 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
30082 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
30083 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
30087 "spoolss_WritePrinter",
30088 sizeof(struct spoolss_WritePrinter
),
30089 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
30090 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
30091 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
30095 "spoolss_EndPagePrinter",
30096 sizeof(struct spoolss_EndPagePrinter
),
30097 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
30098 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
30099 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
30103 "spoolss_AbortPrinter",
30104 sizeof(struct spoolss_AbortPrinter
),
30105 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
30106 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
30107 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
30111 "spoolss_ReadPrinter",
30112 sizeof(struct spoolss_ReadPrinter
),
30113 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
30114 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
30115 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
30119 "spoolss_EndDocPrinter",
30120 sizeof(struct spoolss_EndDocPrinter
),
30121 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
30122 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
30123 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
30128 sizeof(struct spoolss_AddJob
),
30129 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
30130 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
30131 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
30135 "spoolss_ScheduleJob",
30136 sizeof(struct spoolss_ScheduleJob
),
30137 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
30138 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
30139 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
30143 "spoolss_GetPrinterData",
30144 sizeof(struct spoolss_GetPrinterData
),
30145 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
30146 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
30147 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
30151 "spoolss_SetPrinterData",
30152 sizeof(struct spoolss_SetPrinterData
),
30153 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
30154 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
30155 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
30159 "spoolss_WaitForPrinterChange",
30160 sizeof(struct spoolss_WaitForPrinterChange
),
30161 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
30162 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
30163 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
30167 "spoolss_ClosePrinter",
30168 sizeof(struct spoolss_ClosePrinter
),
30169 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
30170 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
30171 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
30176 sizeof(struct spoolss_AddForm
),
30177 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
30178 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
30179 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
30183 "spoolss_DeleteForm",
30184 sizeof(struct spoolss_DeleteForm
),
30185 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
30186 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
30187 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
30192 sizeof(struct spoolss_GetForm
),
30193 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
30194 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
30195 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
30200 sizeof(struct spoolss_SetForm
),
30201 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
30202 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
30203 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
30207 "spoolss_EnumForms",
30208 sizeof(struct spoolss_EnumForms
),
30209 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
30210 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
30211 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
30215 "spoolss_EnumPorts",
30216 sizeof(struct spoolss_EnumPorts
),
30217 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
30218 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
30219 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
30223 "spoolss_EnumMonitors",
30224 sizeof(struct spoolss_EnumMonitors
),
30225 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
30226 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
30227 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
30232 sizeof(struct spoolss_AddPort
),
30233 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
30234 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
30235 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
30239 "spoolss_ConfigurePort",
30240 sizeof(struct spoolss_ConfigurePort
),
30241 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
30242 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
30243 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
30247 "spoolss_DeletePort",
30248 sizeof(struct spoolss_DeletePort
),
30249 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
30250 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
30251 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
30255 "spoolss_CreatePrinterIC",
30256 sizeof(struct spoolss_CreatePrinterIC
),
30257 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
30258 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
30259 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
30263 "spoolss_PlayGDIScriptOnPrinterIC",
30264 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
30265 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
30266 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
30267 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
30271 "spoolss_DeletePrinterIC",
30272 sizeof(struct spoolss_DeletePrinterIC
),
30273 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
30274 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
30275 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
30279 "spoolss_AddPrinterConnection",
30280 sizeof(struct spoolss_AddPrinterConnection
),
30281 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
30282 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
30283 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
30287 "spoolss_DeletePrinterConnection",
30288 sizeof(struct spoolss_DeletePrinterConnection
),
30289 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
30290 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
30291 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
30295 "spoolss_PrinterMessageBox",
30296 sizeof(struct spoolss_PrinterMessageBox
),
30297 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
30298 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
30299 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
30303 "spoolss_AddMonitor",
30304 sizeof(struct spoolss_AddMonitor
),
30305 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
30306 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
30307 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
30311 "spoolss_DeleteMonitor",
30312 sizeof(struct spoolss_DeleteMonitor
),
30313 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
30314 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
30315 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
30319 "spoolss_DeletePrintProcessor",
30320 sizeof(struct spoolss_DeletePrintProcessor
),
30321 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
30322 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
30323 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
30327 "spoolss_AddPrintProvidor",
30328 sizeof(struct spoolss_AddPrintProvidor
),
30329 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
30330 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
30331 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
30335 "spoolss_DeletePrintProvidor",
30336 sizeof(struct spoolss_DeletePrintProvidor
),
30337 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
30338 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
30339 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
30343 "spoolss_EnumPrintProcDataTypes",
30344 sizeof(struct spoolss_EnumPrintProcDataTypes
),
30345 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
30346 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
30347 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
30351 "spoolss_ResetPrinter",
30352 sizeof(struct spoolss_ResetPrinter
),
30353 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
30354 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
30355 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
30359 "spoolss_GetPrinterDriver2",
30360 sizeof(struct spoolss_GetPrinterDriver2
),
30361 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
30362 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
30363 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
30367 "spoolss_FindFirstPrinterChangeNotification",
30368 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
30369 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
30370 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
30371 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
30375 "spoolss_FindNextPrinterChangeNotification",
30376 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
30377 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
30378 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
30379 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
30383 "spoolss_FindClosePrinterNotify",
30384 sizeof(struct spoolss_FindClosePrinterNotify
),
30385 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
30386 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
30387 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
30391 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30392 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
30393 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30394 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30395 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30399 "spoolss_ReplyOpenPrinter",
30400 sizeof(struct spoolss_ReplyOpenPrinter
),
30401 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
30402 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
30403 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
30407 "spoolss_RouterReplyPrinter",
30408 sizeof(struct spoolss_RouterReplyPrinter
),
30409 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
30410 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
30411 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
30415 "spoolss_ReplyClosePrinter",
30416 sizeof(struct spoolss_ReplyClosePrinter
),
30417 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
30418 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
30419 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
30423 "spoolss_AddPortEx",
30424 sizeof(struct spoolss_AddPortEx
),
30425 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
30426 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
30427 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
30431 "spoolss_RouterFindFirstPrinterChangeNotification",
30432 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
30433 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
30434 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
30435 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
30439 "spoolss_SpoolerInit",
30440 sizeof(struct spoolss_SpoolerInit
),
30441 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
30442 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
30443 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
30447 "spoolss_ResetPrinterEx",
30448 sizeof(struct spoolss_ResetPrinterEx
),
30449 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
30450 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
30451 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
30455 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30456 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
30457 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30458 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30459 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30463 "spoolss_RouterReplyPrinterEx",
30464 sizeof(struct spoolss_RouterReplyPrinterEx
),
30465 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
30466 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
30467 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
30471 "spoolss_RouterRefreshPrinterChangeNotify",
30472 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
30473 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
30474 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
30475 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
30480 sizeof(struct spoolss_44
),
30481 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
30482 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
30483 (ndr_print_function_t
) ndr_print_spoolss_44
,
30487 "spoolss_OpenPrinterEx",
30488 sizeof(struct spoolss_OpenPrinterEx
),
30489 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
30490 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
30491 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
30495 "spoolss_AddPrinterEx",
30496 sizeof(struct spoolss_AddPrinterEx
),
30497 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
30498 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
30499 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
30504 sizeof(struct spoolss_47
),
30505 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
30506 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
30507 (ndr_print_function_t
) ndr_print_spoolss_47
,
30511 "spoolss_EnumPrinterData",
30512 sizeof(struct spoolss_EnumPrinterData
),
30513 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
30514 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
30515 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
30519 "spoolss_DeletePrinterData",
30520 sizeof(struct spoolss_DeletePrinterData
),
30521 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
30522 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
30523 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
30528 sizeof(struct spoolss_4a
),
30529 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
30530 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
30531 (ndr_print_function_t
) ndr_print_spoolss_4a
,
30536 sizeof(struct spoolss_4b
),
30537 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
30538 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
30539 (ndr_print_function_t
) ndr_print_spoolss_4b
,
30544 sizeof(struct spoolss_4c
),
30545 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
30546 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
30547 (ndr_print_function_t
) ndr_print_spoolss_4c
,
30551 "spoolss_SetPrinterDataEx",
30552 sizeof(struct spoolss_SetPrinterDataEx
),
30553 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
30554 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
30555 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
30559 "spoolss_GetPrinterDataEx",
30560 sizeof(struct spoolss_GetPrinterDataEx
),
30561 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
30562 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
30563 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
30567 "spoolss_EnumPrinterDataEx",
30568 sizeof(struct spoolss_EnumPrinterDataEx
),
30569 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
30570 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
30571 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
30575 "spoolss_EnumPrinterKey",
30576 sizeof(struct spoolss_EnumPrinterKey
),
30577 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
30578 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
30579 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
30583 "spoolss_DeletePrinterDataEx",
30584 sizeof(struct spoolss_DeletePrinterDataEx
),
30585 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
30586 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
30587 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
30591 "spoolss_DeletePrinterKey",
30592 sizeof(struct spoolss_DeletePrinterKey
),
30593 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
30594 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
30595 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
30600 sizeof(struct spoolss_53
),
30601 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
30602 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
30603 (ndr_print_function_t
) ndr_print_spoolss_53
,
30607 "spoolss_DeletePrinterDriverEx",
30608 sizeof(struct spoolss_DeletePrinterDriverEx
),
30609 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
30610 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
30611 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
30616 sizeof(struct spoolss_55
),
30617 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
30618 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
30619 (ndr_print_function_t
) ndr_print_spoolss_55
,
30624 sizeof(struct spoolss_56
),
30625 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
30626 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
30627 (ndr_print_function_t
) ndr_print_spoolss_56
,
30632 sizeof(struct spoolss_57
),
30633 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
30634 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
30635 (ndr_print_function_t
) ndr_print_spoolss_57
,
30640 sizeof(struct spoolss_XcvData
),
30641 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
30642 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
30643 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
30647 "spoolss_AddPrinterDriverEx",
30648 sizeof(struct spoolss_AddPrinterDriverEx
),
30649 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
30650 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
30651 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
30656 sizeof(struct spoolss_5a
),
30657 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
30658 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
30659 (ndr_print_function_t
) ndr_print_spoolss_5a
,
30664 sizeof(struct spoolss_5b
),
30665 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
30666 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
30667 (ndr_print_function_t
) ndr_print_spoolss_5b
,
30672 sizeof(struct spoolss_5c
),
30673 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
30674 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
30675 (ndr_print_function_t
) ndr_print_spoolss_5c
,
30680 sizeof(struct spoolss_5d
),
30681 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
30682 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
30683 (ndr_print_function_t
) ndr_print_spoolss_5d
,
30688 sizeof(struct spoolss_5e
),
30689 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
30690 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
30691 (ndr_print_function_t
) ndr_print_spoolss_5e
,
30696 sizeof(struct spoolss_5f
),
30697 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
30698 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
30699 (ndr_print_function_t
) ndr_print_spoolss_5f
,
30704 sizeof(struct spoolss_60
),
30705 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
30706 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
30707 (ndr_print_function_t
) ndr_print_spoolss_60
,
30712 sizeof(struct spoolss_61
),
30713 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
30714 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
30715 (ndr_print_function_t
) ndr_print_spoolss_61
,
30720 sizeof(struct spoolss_62
),
30721 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
30722 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
30723 (ndr_print_function_t
) ndr_print_spoolss_62
,
30728 sizeof(struct spoolss_63
),
30729 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
30730 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
30731 (ndr_print_function_t
) ndr_print_spoolss_63
,
30736 sizeof(struct spoolss_64
),
30737 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
30738 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
30739 (ndr_print_function_t
) ndr_print_spoolss_64
,
30744 sizeof(struct spoolss_65
),
30745 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
30746 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
30747 (ndr_print_function_t
) ndr_print_spoolss_65
,
30751 "spoolss_GetCorePrinterDrivers",
30752 sizeof(struct spoolss_GetCorePrinterDrivers
),
30753 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
30754 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
30755 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
30760 sizeof(struct spoolss_67
),
30761 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
30762 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
30763 (ndr_print_function_t
) ndr_print_spoolss_67
,
30767 "spoolss_GetPrinterDriverPackagePath",
30768 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
30769 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
30770 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
30771 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
30776 sizeof(struct spoolss_69
),
30777 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
30778 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
30779 (ndr_print_function_t
) ndr_print_spoolss_69
,
30784 sizeof(struct spoolss_6a
),
30785 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
30786 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
30787 (ndr_print_function_t
) ndr_print_spoolss_6a
,
30792 sizeof(struct spoolss_6b
),
30793 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
30794 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
30795 (ndr_print_function_t
) ndr_print_spoolss_6b
,
30800 sizeof(struct spoolss_6c
),
30801 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
30802 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
30803 (ndr_print_function_t
) ndr_print_spoolss_6c
,
30808 sizeof(struct spoolss_6d
),
30809 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
30810 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
30811 (ndr_print_function_t
) ndr_print_spoolss_6d
,
30814 { NULL
, 0, NULL
, NULL
, NULL
, false }
30817 static const char * const spoolss_endpoint_strings
[] = {
30818 "ncacn_np:[\\pipe\\spoolss]",
30821 static const struct ndr_interface_string_array spoolss_endpoints
= {
30823 .names
= spoolss_endpoint_strings
30826 static const char * const spoolss_authservice_strings
[] = {
30830 static const struct ndr_interface_string_array spoolss_authservices
= {
30832 .names
= spoolss_authservice_strings
30836 const struct ndr_interface_table ndr_table_spoolss
= {
30839 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30840 NDR_SPOOLSS_VERSION
30842 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
30844 .calls
= spoolss_calls
,
30845 .endpoints
= &spoolss_endpoints
,
30846 .authservices
= &spoolss_authservices