1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code
ndr_push_spoolss_Time(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Time
*r
)
11 if (ndr_flags
& NDR_SCALARS
) {
12 NDR_CHECK(ndr_push_align(ndr
, 2));
13 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->year
));
14 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->month
));
15 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day_of_week
));
16 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day
));
17 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->hour
));
18 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->minute
));
19 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->second
));
20 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->millisecond
));
22 if (ndr_flags
& NDR_BUFFERS
) {
24 return NDR_ERR_SUCCESS
;
27 static enum ndr_err_code
ndr_pull_spoolss_Time(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Time
*r
)
29 if (ndr_flags
& NDR_SCALARS
) {
30 NDR_CHECK(ndr_pull_align(ndr
, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->year
));
32 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->month
));
33 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day_of_week
));
34 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day
));
35 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hour
));
36 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->minute
));
37 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->second
));
38 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->millisecond
));
40 if (ndr_flags
& NDR_BUFFERS
) {
42 return NDR_ERR_SUCCESS
;
45 _PUBLIC_
void ndr_print_spoolss_Time(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Time
*r
)
47 ndr_print_struct(ndr
, name
, "spoolss_Time");
49 ndr_print_uint16(ndr
, "year", r
->year
);
50 ndr_print_uint16(ndr
, "month", r
->month
);
51 ndr_print_uint16(ndr
, "day_of_week", r
->day_of_week
);
52 ndr_print_uint16(ndr
, "day", r
->day
);
53 ndr_print_uint16(ndr
, "hour", r
->hour
);
54 ndr_print_uint16(ndr
, "minute", r
->minute
);
55 ndr_print_uint16(ndr
, "second", r
->second
);
56 ndr_print_uint16(ndr
, "millisecond", r
->millisecond
);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
62 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
65 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
67 if (ndr_flags
& NDR_SCALARS
) {
68 NDR_CHECK(ndr_push_align(ndr
, 4));
69 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
72 if (ndr_flags
& NDR_BUFFERS
) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
77 return NDR_ERR_SUCCESS
;
80 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
83 TALLOC_CTX
*_mem_save_time_0
;
84 if (ndr_flags
& NDR_SCALARS
) {
85 NDR_CHECK(ndr_pull_align(ndr
, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
89 NDR_PULL_ALLOC(ndr
, r
->time
);
94 if (ndr_flags
& NDR_BUFFERS
) {
96 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
97 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
99 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
102 return NDR_ERR_SUCCESS
;
105 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
107 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
110 ndr_print_ptr(ndr
, "time", r
->time
);
113 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
119 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
121 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
122 return NDR_ERR_SUCCESS
;
125 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
128 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
130 return NDR_ERR_SUCCESS
;
133 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
135 const char *val
= NULL
;
138 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
145 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
148 return NDR_ERR_SUCCESS
;
151 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
156 return NDR_ERR_SUCCESS
;
159 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
161 const char *val
= NULL
;
164 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
173 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
176 return NDR_ERR_SUCCESS
;
179 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
184 return NDR_ERR_SUCCESS
;
187 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
189 const char *val
= NULL
;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
199 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
202 return NDR_ERR_SUCCESS
;
205 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
210 return NDR_ERR_SUCCESS
;
213 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
215 const char *val
= NULL
;
218 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
227 static enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
230 return NDR_ERR_SUCCESS
;
233 static enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
238 return NDR_ERR_SUCCESS
;
241 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
243 ndr_print_uint32(ndr
, name
, r
);
245 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
246 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
260 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
273 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
276 return NDR_ERR_SUCCESS
;
279 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
284 return NDR_ERR_SUCCESS
;
287 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
289 ndr_print_uint32(ndr
, name
, r
);
291 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
292 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
293 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
294 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
307 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
309 if (ndr_flags
& NDR_SCALARS
) {
310 NDR_CHECK(ndr_push_align(ndr
, 4));
312 uint32_t _flags_save_string
= ndr
->flags
;
313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
315 ndr
->flags
= _flags_save_string
;
318 uint32_t _flags_save_string
= ndr
->flags
;
319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
321 ndr
->flags
= _flags_save_string
;
323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
341 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
346 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
351 if (ndr_flags
& NDR_BUFFERS
) {
353 uint32_t _flags_save_string
= ndr
->flags
;
354 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
355 if (r
->printername
) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
357 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
359 ndr
->flags
= _flags_save_string
;
362 uint32_t _flags_save_string
= ndr
->flags
;
363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
365 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
366 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
368 ndr
->flags
= _flags_save_string
;
371 return NDR_ERR_SUCCESS
;
374 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
376 uint32_t _ptr_printername
;
377 TALLOC_CTX
*_mem_save_printername_0
;
378 uint32_t _ptr_servername
;
379 TALLOC_CTX
*_mem_save_servername_0
;
380 if (ndr_flags
& NDR_SCALARS
) {
381 NDR_CHECK(ndr_pull_align(ndr
, 4));
383 uint32_t _flags_save_string
= ndr
->flags
;
384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
386 if (_ptr_printername
) {
387 NDR_PULL_ALLOC(ndr
, r
->printername
);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
390 r
->printername
= NULL
;
392 ndr
->flags
= _flags_save_string
;
395 uint32_t _flags_save_string
= ndr
->flags
;
396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
398 if (_ptr_servername
) {
399 NDR_PULL_ALLOC(ndr
, r
->servername
);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
402 r
->servername
= NULL
;
404 ndr
->flags
= _flags_save_string
;
406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
408 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
424 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
429 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
434 if (ndr_flags
& NDR_BUFFERS
) {
436 uint32_t _flags_save_string
= ndr
->flags
;
437 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
438 if (r
->printername
) {
439 uint32_t _relative_save_offset
;
440 _relative_save_offset
= ndr
->offset
;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
442 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
443 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
444 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
446 ndr
->offset
= _relative_save_offset
;
448 ndr
->flags
= _flags_save_string
;
451 uint32_t _flags_save_string
= ndr
->flags
;
452 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
454 uint32_t _relative_save_offset
;
455 _relative_save_offset
= ndr
->offset
;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
457 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
458 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
459 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
461 ndr
->offset
= _relative_save_offset
;
463 ndr
->flags
= _flags_save_string
;
466 return NDR_ERR_SUCCESS
;
469 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
471 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
473 ndr_print_ptr(ndr
, "printername", r
->printername
);
475 if (r
->printername
) {
476 ndr_print_string(ndr
, "printername", r
->printername
);
479 ndr_print_ptr(ndr
, "servername", r
->servername
);
482 ndr_print_string(ndr
, "servername", r
->servername
);
485 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
486 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
487 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
488 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
489 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
490 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
491 ndr_print_uint32(ndr
, "version", r
->version
);
492 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
493 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
494 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
495 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
496 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
497 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
498 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
499 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
500 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
501 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
502 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
503 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
504 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
505 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
506 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
507 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
508 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
509 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
510 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
511 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
515 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
517 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
520 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
523 return NDR_ERR_SUCCESS
;
526 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
531 return NDR_ERR_SUCCESS
;
534 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
536 ndr_print_uint32(ndr
, name
, r
);
538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
561 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
562 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
563 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
564 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
565 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
569 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
571 if (ndr_flags
& NDR_SCALARS
) {
572 NDR_CHECK(ndr_push_align(ndr
, 4));
573 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
574 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
575 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
576 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
577 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
578 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
579 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
580 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
581 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
582 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
583 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
584 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
585 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
586 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
587 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
588 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
589 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
590 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
591 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
592 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
593 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
608 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
609 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
611 struct ndr_push
*_ndr_driverextra_data
;
612 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
613 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
614 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
616 ndr
->flags
= _flags_save_DATA_BLOB
;
619 if (ndr_flags
& NDR_BUFFERS
) {
621 return NDR_ERR_SUCCESS
;
624 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
626 if (ndr_flags
& NDR_SCALARS
) {
627 NDR_CHECK(ndr_pull_align(ndr
, 4));
628 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
629 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
630 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
631 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
632 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
633 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
634 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
636 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
637 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
638 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
639 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
640 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
641 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
642 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
643 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
644 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
645 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
646 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
647 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
658 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
660 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
663 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
666 struct ndr_pull
*_ndr_driverextra_data
;
667 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
668 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
669 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
671 ndr
->flags
= _flags_save_DATA_BLOB
;
674 if (ndr_flags
& NDR_BUFFERS
) {
676 return NDR_ERR_SUCCESS
;
679 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
681 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
683 ndr_print_string(ndr
, "devicename", r
->devicename
);
684 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
685 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
686 ndr_print_uint16(ndr
, "size", r
->size
);
687 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
688 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
689 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
690 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
691 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
692 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
693 ndr_print_uint16(ndr
, "scale", r
->scale
);
694 ndr_print_uint16(ndr
, "copies", r
->copies
);
695 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
696 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
697 ndr_print_uint16(ndr
, "color", r
->color
);
698 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
699 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
700 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
701 ndr_print_uint16(ndr
, "collate", r
->collate
);
702 ndr_print_string(ndr
, "formname", r
->formname
);
703 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
704 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
705 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
706 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
707 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
708 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
709 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
710 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
711 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
712 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
713 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
714 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
715 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
716 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
717 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
721 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
723 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
726 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
729 return NDR_ERR_SUCCESS
;
732 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
737 return NDR_ERR_SUCCESS
;
740 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
742 ndr_print_uint32(ndr
, name
, r
);
744 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
745 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
746 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
747 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
748 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
749 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
750 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
751 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
752 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
753 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
766 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
768 if (ndr_flags
& NDR_SCALARS
) {
769 NDR_CHECK(ndr_push_align(ndr
, 4));
770 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
772 uint32_t _flags_save_string
= ndr
->flags
;
773 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
774 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
775 ndr
->flags
= _flags_save_string
;
778 uint32_t _flags_save_string
= ndr
->flags
;
779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
781 ndr
->flags
= _flags_save_string
;
784 uint32_t _flags_save_string
= ndr
->flags
;
785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
787 ndr
->flags
= _flags_save_string
;
790 if (ndr_flags
& NDR_BUFFERS
) {
792 uint32_t _flags_save_string
= ndr
->flags
;
793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
795 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
796 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
798 ndr
->flags
= _flags_save_string
;
801 uint32_t _flags_save_string
= ndr
->flags
;
802 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
803 if (r
->description
) {
804 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
805 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
807 ndr
->flags
= _flags_save_string
;
810 uint32_t _flags_save_string
= ndr
->flags
;
811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
813 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
814 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
816 ndr
->flags
= _flags_save_string
;
819 return NDR_ERR_SUCCESS
;
822 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
825 TALLOC_CTX
*_mem_save_name_0
;
826 uint32_t _ptr_description
;
827 TALLOC_CTX
*_mem_save_description_0
;
828 uint32_t _ptr_comment
;
829 TALLOC_CTX
*_mem_save_comment_0
;
830 if (ndr_flags
& NDR_SCALARS
) {
831 NDR_CHECK(ndr_pull_align(ndr
, 4));
832 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
834 uint32_t _flags_save_string
= ndr
->flags
;
835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
838 NDR_PULL_ALLOC(ndr
, r
->name
);
839 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
843 ndr
->flags
= _flags_save_string
;
846 uint32_t _flags_save_string
= ndr
->flags
;
847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
849 if (_ptr_description
) {
850 NDR_PULL_ALLOC(ndr
, r
->description
);
851 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
853 r
->description
= NULL
;
855 ndr
->flags
= _flags_save_string
;
858 uint32_t _flags_save_string
= ndr
->flags
;
859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
862 NDR_PULL_ALLOC(ndr
, r
->comment
);
863 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
867 ndr
->flags
= _flags_save_string
;
870 if (ndr_flags
& NDR_BUFFERS
) {
872 uint32_t _flags_save_string
= ndr
->flags
;
873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
875 uint32_t _relative_save_offset
;
876 _relative_save_offset
= ndr
->offset
;
877 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
878 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
879 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
880 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
882 ndr
->offset
= _relative_save_offset
;
884 ndr
->flags
= _flags_save_string
;
887 uint32_t _flags_save_string
= ndr
->flags
;
888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
889 if (r
->description
) {
890 uint32_t _relative_save_offset
;
891 _relative_save_offset
= ndr
->offset
;
892 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
893 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
894 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
895 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
897 ndr
->offset
= _relative_save_offset
;
899 ndr
->flags
= _flags_save_string
;
902 uint32_t _flags_save_string
= ndr
->flags
;
903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
905 uint32_t _relative_save_offset
;
906 _relative_save_offset
= ndr
->offset
;
907 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
908 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
909 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
910 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
912 ndr
->offset
= _relative_save_offset
;
914 ndr
->flags
= _flags_save_string
;
917 return NDR_ERR_SUCCESS
;
920 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
922 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
924 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
925 ndr_print_ptr(ndr
, "name", r
->name
);
928 ndr_print_string(ndr
, "name", r
->name
);
931 ndr_print_ptr(ndr
, "description", r
->description
);
933 if (r
->description
) {
934 ndr_print_string(ndr
, "description", r
->description
);
937 ndr_print_ptr(ndr
, "comment", r
->comment
);
940 ndr_print_string(ndr
, "comment", r
->comment
);
946 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
948 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
951 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
954 return NDR_ERR_SUCCESS
;
957 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
962 return NDR_ERR_SUCCESS
;
965 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
967 ndr_print_uint32(ndr
, name
, r
);
969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
970 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
971 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
972 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
974 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
975 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
976 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
977 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
978 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
979 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
980 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
981 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
982 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
983 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
984 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
988 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
990 if (ndr_flags
& NDR_SCALARS
) {
991 NDR_CHECK(ndr_push_align(ndr
, 4));
993 uint32_t _flags_save_string
= ndr
->flags
;
994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
995 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
996 ndr
->flags
= _flags_save_string
;
999 uint32_t _flags_save_string
= ndr
->flags
;
1000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1001 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1002 ndr
->flags
= _flags_save_string
;
1005 uint32_t _flags_save_string
= ndr
->flags
;
1006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1007 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
1008 ndr
->flags
= _flags_save_string
;
1011 uint32_t _flags_save_string
= ndr
->flags
;
1012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1013 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1014 ndr
->flags
= _flags_save_string
;
1017 uint32_t _flags_save_string
= ndr
->flags
;
1018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1019 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
1020 ndr
->flags
= _flags_save_string
;
1023 uint32_t _flags_save_string
= ndr
->flags
;
1024 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1025 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1026 ndr
->flags
= _flags_save_string
;
1029 uint32_t _flags_save_string
= ndr
->flags
;
1030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1031 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
1032 ndr
->flags
= _flags_save_string
;
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
1036 uint32_t _flags_save_string
= ndr
->flags
;
1037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1038 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
1039 ndr
->flags
= _flags_save_string
;
1042 uint32_t _flags_save_string
= ndr
->flags
;
1043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1044 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1045 ndr
->flags
= _flags_save_string
;
1048 uint32_t _flags_save_string
= ndr
->flags
;
1049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1050 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1051 ndr
->flags
= _flags_save_string
;
1054 uint32_t _flags_save_string
= ndr
->flags
;
1055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1056 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1057 ndr
->flags
= _flags_save_string
;
1059 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1060 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1065 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1069 if (ndr_flags
& NDR_BUFFERS
) {
1071 uint32_t _flags_save_string
= ndr
->flags
;
1072 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1073 if (r
->servername
) {
1074 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1075 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1077 ndr
->flags
= _flags_save_string
;
1080 uint32_t _flags_save_string
= ndr
->flags
;
1081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1082 if (r
->printername
) {
1083 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1084 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1086 ndr
->flags
= _flags_save_string
;
1089 uint32_t _flags_save_string
= ndr
->flags
;
1090 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1092 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1093 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1095 ndr
->flags
= _flags_save_string
;
1098 uint32_t _flags_save_string
= ndr
->flags
;
1099 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1101 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1102 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1104 ndr
->flags
= _flags_save_string
;
1107 uint32_t _flags_save_string
= ndr
->flags
;
1108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1109 if (r
->drivername
) {
1110 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1111 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1113 ndr
->flags
= _flags_save_string
;
1116 uint32_t _flags_save_string
= ndr
->flags
;
1117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1119 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1120 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1122 ndr
->flags
= _flags_save_string
;
1125 uint32_t _flags_save_string
= ndr
->flags
;
1126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1128 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1129 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1131 ndr
->flags
= _flags_save_string
;
1134 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1136 struct ndr_push
*_ndr_devmode
;
1137 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1138 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1139 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1143 uint32_t _flags_save_string
= ndr
->flags
;
1144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1146 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1147 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1149 ndr
->flags
= _flags_save_string
;
1152 uint32_t _flags_save_string
= ndr
->flags
;
1153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1154 if (r
->printprocessor
) {
1155 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1156 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1158 ndr
->flags
= _flags_save_string
;
1161 uint32_t _flags_save_string
= ndr
->flags
;
1162 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1164 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1165 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1167 ndr
->flags
= _flags_save_string
;
1170 uint32_t _flags_save_string
= ndr
->flags
;
1171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1172 if (r
->parameters
) {
1173 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1174 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1176 ndr
->flags
= _flags_save_string
;
1179 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1181 struct ndr_push
*_ndr_secdesc
;
1182 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1183 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1184 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1188 return NDR_ERR_SUCCESS
;
1191 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1193 uint32_t _ptr_servername
;
1194 TALLOC_CTX
*_mem_save_servername_0
;
1195 uint32_t _ptr_printername
;
1196 TALLOC_CTX
*_mem_save_printername_0
;
1197 uint32_t _ptr_sharename
;
1198 TALLOC_CTX
*_mem_save_sharename_0
;
1199 uint32_t _ptr_portname
;
1200 TALLOC_CTX
*_mem_save_portname_0
;
1201 uint32_t _ptr_drivername
;
1202 TALLOC_CTX
*_mem_save_drivername_0
;
1203 uint32_t _ptr_comment
;
1204 TALLOC_CTX
*_mem_save_comment_0
;
1205 uint32_t _ptr_location
;
1206 TALLOC_CTX
*_mem_save_location_0
;
1207 uint32_t _ptr_devmode
;
1208 TALLOC_CTX
*_mem_save_devmode_0
;
1209 uint32_t _ptr_sepfile
;
1210 TALLOC_CTX
*_mem_save_sepfile_0
;
1211 uint32_t _ptr_printprocessor
;
1212 TALLOC_CTX
*_mem_save_printprocessor_0
;
1213 uint32_t _ptr_datatype
;
1214 TALLOC_CTX
*_mem_save_datatype_0
;
1215 uint32_t _ptr_parameters
;
1216 TALLOC_CTX
*_mem_save_parameters_0
;
1217 uint32_t _ptr_secdesc
;
1218 TALLOC_CTX
*_mem_save_secdesc_0
;
1219 if (ndr_flags
& NDR_SCALARS
) {
1220 NDR_CHECK(ndr_pull_align(ndr
, 4));
1222 uint32_t _flags_save_string
= ndr
->flags
;
1223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1225 if (_ptr_servername
) {
1226 NDR_PULL_ALLOC(ndr
, r
->servername
);
1227 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1229 r
->servername
= NULL
;
1231 ndr
->flags
= _flags_save_string
;
1234 uint32_t _flags_save_string
= ndr
->flags
;
1235 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1237 if (_ptr_printername
) {
1238 NDR_PULL_ALLOC(ndr
, r
->printername
);
1239 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1241 r
->printername
= NULL
;
1243 ndr
->flags
= _flags_save_string
;
1246 uint32_t _flags_save_string
= ndr
->flags
;
1247 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1249 if (_ptr_sharename
) {
1250 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1251 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1253 r
->sharename
= NULL
;
1255 ndr
->flags
= _flags_save_string
;
1258 uint32_t _flags_save_string
= ndr
->flags
;
1259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1261 if (_ptr_portname
) {
1262 NDR_PULL_ALLOC(ndr
, r
->portname
);
1263 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1267 ndr
->flags
= _flags_save_string
;
1270 uint32_t _flags_save_string
= ndr
->flags
;
1271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1273 if (_ptr_drivername
) {
1274 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1275 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1277 r
->drivername
= NULL
;
1279 ndr
->flags
= _flags_save_string
;
1282 uint32_t _flags_save_string
= ndr
->flags
;
1283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1286 NDR_PULL_ALLOC(ndr
, r
->comment
);
1287 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1291 ndr
->flags
= _flags_save_string
;
1294 uint32_t _flags_save_string
= ndr
->flags
;
1295 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1296 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1297 if (_ptr_location
) {
1298 NDR_PULL_ALLOC(ndr
, r
->location
);
1299 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1303 ndr
->flags
= _flags_save_string
;
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1307 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1313 uint32_t _flags_save_string
= ndr
->flags
;
1314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1317 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1318 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1322 ndr
->flags
= _flags_save_string
;
1325 uint32_t _flags_save_string
= ndr
->flags
;
1326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1328 if (_ptr_printprocessor
) {
1329 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1330 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1332 r
->printprocessor
= NULL
;
1334 ndr
->flags
= _flags_save_string
;
1337 uint32_t _flags_save_string
= ndr
->flags
;
1338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1340 if (_ptr_datatype
) {
1341 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1342 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1346 ndr
->flags
= _flags_save_string
;
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1352 if (_ptr_parameters
) {
1353 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1356 r
->parameters
= NULL
;
1358 ndr
->flags
= _flags_save_string
;
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1362 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1363 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1367 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1369 if (r
->priority
> 99) {
1370 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1375 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1376 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1379 if (ndr_flags
& NDR_BUFFERS
) {
1381 uint32_t _flags_save_string
= ndr
->flags
;
1382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1383 if (r
->servername
) {
1384 uint32_t _relative_save_offset
;
1385 _relative_save_offset
= ndr
->offset
;
1386 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1387 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1388 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1389 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1391 ndr
->offset
= _relative_save_offset
;
1393 ndr
->flags
= _flags_save_string
;
1396 uint32_t _flags_save_string
= ndr
->flags
;
1397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1398 if (r
->printername
) {
1399 uint32_t _relative_save_offset
;
1400 _relative_save_offset
= ndr
->offset
;
1401 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1402 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1403 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1404 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1406 ndr
->offset
= _relative_save_offset
;
1408 ndr
->flags
= _flags_save_string
;
1411 uint32_t _flags_save_string
= ndr
->flags
;
1412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1414 uint32_t _relative_save_offset
;
1415 _relative_save_offset
= ndr
->offset
;
1416 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1417 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1418 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1419 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1421 ndr
->offset
= _relative_save_offset
;
1423 ndr
->flags
= _flags_save_string
;
1426 uint32_t _flags_save_string
= ndr
->flags
;
1427 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1429 uint32_t _relative_save_offset
;
1430 _relative_save_offset
= ndr
->offset
;
1431 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1432 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1433 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1434 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1436 ndr
->offset
= _relative_save_offset
;
1438 ndr
->flags
= _flags_save_string
;
1441 uint32_t _flags_save_string
= ndr
->flags
;
1442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1443 if (r
->drivername
) {
1444 uint32_t _relative_save_offset
;
1445 _relative_save_offset
= ndr
->offset
;
1446 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1447 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1448 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1449 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1451 ndr
->offset
= _relative_save_offset
;
1453 ndr
->flags
= _flags_save_string
;
1456 uint32_t _flags_save_string
= ndr
->flags
;
1457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1459 uint32_t _relative_save_offset
;
1460 _relative_save_offset
= ndr
->offset
;
1461 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1462 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1463 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1464 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1466 ndr
->offset
= _relative_save_offset
;
1468 ndr
->flags
= _flags_save_string
;
1471 uint32_t _flags_save_string
= ndr
->flags
;
1472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1474 uint32_t _relative_save_offset
;
1475 _relative_save_offset
= ndr
->offset
;
1476 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1477 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1478 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1479 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1481 ndr
->offset
= _relative_save_offset
;
1483 ndr
->flags
= _flags_save_string
;
1486 uint32_t _relative_save_offset
;
1487 _relative_save_offset
= ndr
->offset
;
1488 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1489 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1490 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1492 struct ndr_pull
*_ndr_devmode
;
1493 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1494 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1495 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1498 ndr
->offset
= _relative_save_offset
;
1501 uint32_t _flags_save_string
= ndr
->flags
;
1502 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1504 uint32_t _relative_save_offset
;
1505 _relative_save_offset
= ndr
->offset
;
1506 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1507 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1508 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1509 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1511 ndr
->offset
= _relative_save_offset
;
1513 ndr
->flags
= _flags_save_string
;
1516 uint32_t _flags_save_string
= ndr
->flags
;
1517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1518 if (r
->printprocessor
) {
1519 uint32_t _relative_save_offset
;
1520 _relative_save_offset
= ndr
->offset
;
1521 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1522 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1523 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1524 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1526 ndr
->offset
= _relative_save_offset
;
1528 ndr
->flags
= _flags_save_string
;
1531 uint32_t _flags_save_string
= ndr
->flags
;
1532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1534 uint32_t _relative_save_offset
;
1535 _relative_save_offset
= ndr
->offset
;
1536 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1537 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1538 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1539 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1541 ndr
->offset
= _relative_save_offset
;
1543 ndr
->flags
= _flags_save_string
;
1546 uint32_t _flags_save_string
= ndr
->flags
;
1547 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1548 if (r
->parameters
) {
1549 uint32_t _relative_save_offset
;
1550 _relative_save_offset
= ndr
->offset
;
1551 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1552 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1553 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1554 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1556 ndr
->offset
= _relative_save_offset
;
1558 ndr
->flags
= _flags_save_string
;
1561 uint32_t _relative_save_offset
;
1562 _relative_save_offset
= ndr
->offset
;
1563 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1564 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1565 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1567 struct ndr_pull
*_ndr_secdesc
;
1568 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1569 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1570 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1573 ndr
->offset
= _relative_save_offset
;
1576 return NDR_ERR_SUCCESS
;
1579 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1581 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1583 ndr_print_ptr(ndr
, "servername", r
->servername
);
1585 if (r
->servername
) {
1586 ndr_print_string(ndr
, "servername", r
->servername
);
1589 ndr_print_ptr(ndr
, "printername", r
->printername
);
1591 if (r
->printername
) {
1592 ndr_print_string(ndr
, "printername", r
->printername
);
1595 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1598 ndr_print_string(ndr
, "sharename", r
->sharename
);
1601 ndr_print_ptr(ndr
, "portname", r
->portname
);
1604 ndr_print_string(ndr
, "portname", r
->portname
);
1607 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1609 if (r
->drivername
) {
1610 ndr_print_string(ndr
, "drivername", r
->drivername
);
1613 ndr_print_ptr(ndr
, "comment", r
->comment
);
1616 ndr_print_string(ndr
, "comment", r
->comment
);
1619 ndr_print_ptr(ndr
, "location", r
->location
);
1622 ndr_print_string(ndr
, "location", r
->location
);
1625 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1628 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1631 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1634 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1637 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1639 if (r
->printprocessor
) {
1640 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1643 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1646 ndr_print_string(ndr
, "datatype", r
->datatype
);
1649 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1651 if (r
->parameters
) {
1652 ndr_print_string(ndr
, "parameters", r
->parameters
);
1655 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1658 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1661 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1662 ndr_print_uint32(ndr
, "priority", r
->priority
);
1663 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1664 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1665 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1666 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1667 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1668 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1672 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1674 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
1677 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1679 if (ndr_flags
& NDR_SCALARS
) {
1680 NDR_CHECK(ndr_push_align(ndr
, 4));
1681 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1683 if (ndr_flags
& NDR_BUFFERS
) {
1685 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1687 struct ndr_push
*_ndr_secdesc
;
1688 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1689 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1690 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1694 return NDR_ERR_SUCCESS
;
1697 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1699 uint32_t _ptr_secdesc
;
1700 TALLOC_CTX
*_mem_save_secdesc_0
;
1701 if (ndr_flags
& NDR_SCALARS
) {
1702 NDR_CHECK(ndr_pull_align(ndr
, 4));
1703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1705 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1706 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1711 if (ndr_flags
& NDR_BUFFERS
) {
1713 uint32_t _relative_save_offset
;
1714 _relative_save_offset
= ndr
->offset
;
1715 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1716 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1717 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1719 struct ndr_pull
*_ndr_secdesc
;
1720 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1721 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1722 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1725 ndr
->offset
= _relative_save_offset
;
1728 return NDR_ERR_SUCCESS
;
1731 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1733 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1735 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1738 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1744 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1746 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
1749 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1751 if (ndr_flags
& NDR_SCALARS
) {
1752 NDR_CHECK(ndr_push_align(ndr
, 4));
1754 uint32_t _flags_save_string
= ndr
->flags
;
1755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1756 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1757 ndr
->flags
= _flags_save_string
;
1760 uint32_t _flags_save_string
= ndr
->flags
;
1761 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1762 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1763 ndr
->flags
= _flags_save_string
;
1765 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1767 if (ndr_flags
& NDR_BUFFERS
) {
1769 uint32_t _flags_save_string
= ndr
->flags
;
1770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1771 if (r
->printername
) {
1772 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1773 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1775 ndr
->flags
= _flags_save_string
;
1778 uint32_t _flags_save_string
= ndr
->flags
;
1779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1780 if (r
->servername
) {
1781 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1782 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1784 ndr
->flags
= _flags_save_string
;
1787 return NDR_ERR_SUCCESS
;
1790 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1792 uint32_t _ptr_printername
;
1793 TALLOC_CTX
*_mem_save_printername_0
;
1794 uint32_t _ptr_servername
;
1795 TALLOC_CTX
*_mem_save_servername_0
;
1796 if (ndr_flags
& NDR_SCALARS
) {
1797 NDR_CHECK(ndr_pull_align(ndr
, 4));
1799 uint32_t _flags_save_string
= ndr
->flags
;
1800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1802 if (_ptr_printername
) {
1803 NDR_PULL_ALLOC(ndr
, r
->printername
);
1804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1806 r
->printername
= NULL
;
1808 ndr
->flags
= _flags_save_string
;
1811 uint32_t _flags_save_string
= ndr
->flags
;
1812 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1814 if (_ptr_servername
) {
1815 NDR_PULL_ALLOC(ndr
, r
->servername
);
1816 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1818 r
->servername
= NULL
;
1820 ndr
->flags
= _flags_save_string
;
1822 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1824 if (ndr_flags
& NDR_BUFFERS
) {
1826 uint32_t _flags_save_string
= ndr
->flags
;
1827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1828 if (r
->printername
) {
1829 uint32_t _relative_save_offset
;
1830 _relative_save_offset
= ndr
->offset
;
1831 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1832 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1833 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1834 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1836 ndr
->offset
= _relative_save_offset
;
1838 ndr
->flags
= _flags_save_string
;
1841 uint32_t _flags_save_string
= ndr
->flags
;
1842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1843 if (r
->servername
) {
1844 uint32_t _relative_save_offset
;
1845 _relative_save_offset
= ndr
->offset
;
1846 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1847 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1848 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1849 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1851 ndr
->offset
= _relative_save_offset
;
1853 ndr
->flags
= _flags_save_string
;
1856 return NDR_ERR_SUCCESS
;
1859 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1861 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1863 ndr_print_ptr(ndr
, "printername", r
->printername
);
1865 if (r
->printername
) {
1866 ndr_print_string(ndr
, "printername", r
->printername
);
1869 ndr_print_ptr(ndr
, "servername", r
->servername
);
1871 if (r
->servername
) {
1872 ndr_print_string(ndr
, "servername", r
->servername
);
1875 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1879 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1881 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
1884 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1886 if (ndr_flags
& NDR_SCALARS
) {
1887 NDR_CHECK(ndr_push_align(ndr
, 4));
1889 uint32_t _flags_save_string
= ndr
->flags
;
1890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1891 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1892 ndr
->flags
= _flags_save_string
;
1895 uint32_t _flags_save_string
= ndr
->flags
;
1896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1897 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1898 ndr
->flags
= _flags_save_string
;
1900 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1904 if (ndr_flags
& NDR_BUFFERS
) {
1906 uint32_t _flags_save_string
= ndr
->flags
;
1907 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1908 if (r
->printername
) {
1909 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1910 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1912 ndr
->flags
= _flags_save_string
;
1915 uint32_t _flags_save_string
= ndr
->flags
;
1916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1918 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1919 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1921 ndr
->flags
= _flags_save_string
;
1924 return NDR_ERR_SUCCESS
;
1927 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1929 uint32_t _ptr_printername
;
1930 TALLOC_CTX
*_mem_save_printername_0
;
1931 uint32_t _ptr_portname
;
1932 TALLOC_CTX
*_mem_save_portname_0
;
1933 if (ndr_flags
& NDR_SCALARS
) {
1934 NDR_CHECK(ndr_pull_align(ndr
, 4));
1936 uint32_t _flags_save_string
= ndr
->flags
;
1937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1938 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1939 if (_ptr_printername
) {
1940 NDR_PULL_ALLOC(ndr
, r
->printername
);
1941 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1943 r
->printername
= NULL
;
1945 ndr
->flags
= _flags_save_string
;
1948 uint32_t _flags_save_string
= ndr
->flags
;
1949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1950 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1951 if (_ptr_portname
) {
1952 NDR_PULL_ALLOC(ndr
, r
->portname
);
1953 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1957 ndr
->flags
= _flags_save_string
;
1959 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1963 if (ndr_flags
& NDR_BUFFERS
) {
1965 uint32_t _flags_save_string
= ndr
->flags
;
1966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1967 if (r
->printername
) {
1968 uint32_t _relative_save_offset
;
1969 _relative_save_offset
= ndr
->offset
;
1970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1971 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1972 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1975 ndr
->offset
= _relative_save_offset
;
1977 ndr
->flags
= _flags_save_string
;
1980 uint32_t _flags_save_string
= ndr
->flags
;
1981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1983 uint32_t _relative_save_offset
;
1984 _relative_save_offset
= ndr
->offset
;
1985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1986 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1987 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1990 ndr
->offset
= _relative_save_offset
;
1992 ndr
->flags
= _flags_save_string
;
1995 return NDR_ERR_SUCCESS
;
1998 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2000 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2002 ndr_print_ptr(ndr
, "printername", r
->printername
);
2004 if (r
->printername
) {
2005 ndr_print_string(ndr
, "printername", r
->printername
);
2008 ndr_print_ptr(ndr
, "portname", r
->portname
);
2011 ndr_print_string(ndr
, "portname", r
->portname
);
2014 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2015 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2016 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2020 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2022 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2025 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2027 if (ndr_flags
& NDR_SCALARS
) {
2028 NDR_CHECK(ndr_push_align(ndr
, 4));
2029 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2031 if (ndr_flags
& NDR_BUFFERS
) {
2033 return NDR_ERR_SUCCESS
;
2036 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2038 if (ndr_flags
& NDR_SCALARS
) {
2039 NDR_CHECK(ndr_pull_align(ndr
, 4));
2040 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2042 if (ndr_flags
& NDR_BUFFERS
) {
2044 return NDR_ERR_SUCCESS
;
2047 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2049 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2051 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2055 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2057 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2060 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2063 return NDR_ERR_SUCCESS
;
2066 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2071 return NDR_ERR_SUCCESS
;
2074 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2076 ndr_print_uint32(ndr
, name
, r
);
2078 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2079 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2080 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2081 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2082 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2086 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2088 if (ndr_flags
& NDR_SCALARS
) {
2089 NDR_CHECK(ndr_push_align(ndr
, 4));
2091 uint32_t _flags_save_string
= ndr
->flags
;
2092 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2093 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2094 ndr
->flags
= _flags_save_string
;
2096 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2098 if (ndr_flags
& NDR_BUFFERS
) {
2100 uint32_t _flags_save_string
= ndr
->flags
;
2101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2103 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2104 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2106 ndr
->flags
= _flags_save_string
;
2109 return NDR_ERR_SUCCESS
;
2112 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2115 TALLOC_CTX
*_mem_save_guid_0
;
2116 if (ndr_flags
& NDR_SCALARS
) {
2117 NDR_CHECK(ndr_pull_align(ndr
, 4));
2119 uint32_t _flags_save_string
= ndr
->flags
;
2120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2123 NDR_PULL_ALLOC(ndr
, r
->guid
);
2124 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2128 ndr
->flags
= _flags_save_string
;
2130 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2132 if (ndr_flags
& NDR_BUFFERS
) {
2134 uint32_t _flags_save_string
= ndr
->flags
;
2135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2137 uint32_t _relative_save_offset
;
2138 _relative_save_offset
= ndr
->offset
;
2139 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2140 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2141 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2142 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2144 ndr
->offset
= _relative_save_offset
;
2146 ndr
->flags
= _flags_save_string
;
2149 return NDR_ERR_SUCCESS
;
2152 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2154 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2156 ndr_print_ptr(ndr
, "guid", r
->guid
);
2159 ndr_print_string(ndr
, "guid", r
->guid
);
2162 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2166 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2168 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2171 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2173 if (ndr_flags
& NDR_SCALARS
) {
2174 NDR_CHECK(ndr_push_align(ndr
, 4));
2175 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2177 if (ndr_flags
& NDR_BUFFERS
) {
2179 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2181 struct ndr_push
*_ndr_devmode
;
2182 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2183 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2184 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2188 return NDR_ERR_SUCCESS
;
2191 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2193 uint32_t _ptr_devmode
;
2194 TALLOC_CTX
*_mem_save_devmode_0
;
2195 if (ndr_flags
& NDR_SCALARS
) {
2196 NDR_CHECK(ndr_pull_align(ndr
, 4));
2197 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2199 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2200 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2205 if (ndr_flags
& NDR_BUFFERS
) {
2207 uint32_t _relative_save_offset
;
2208 _relative_save_offset
= ndr
->offset
;
2209 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2210 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2211 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2213 struct ndr_pull
*_ndr_devmode
;
2214 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2215 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2216 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2219 ndr
->offset
= _relative_save_offset
;
2222 return NDR_ERR_SUCCESS
;
2225 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2227 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2229 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2232 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2238 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2240 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2241 if (ndr_flags
& NDR_SCALARS
) {
2242 int level
= ndr_push_get_switch_value(ndr
, r
);
2245 NDR_CHECK(ndr_push_align(ndr
, 4));
2246 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2247 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2251 NDR_CHECK(ndr_push_align(ndr
, 4));
2252 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2257 NDR_CHECK(ndr_push_align(ndr
, 4));
2258 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2259 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2263 NDR_CHECK(ndr_push_align(ndr
, 4));
2264 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2265 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2269 NDR_CHECK(ndr_push_align(ndr
, 4));
2270 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2275 NDR_CHECK(ndr_push_align(ndr
, 4));
2276 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2277 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2281 NDR_CHECK(ndr_push_align(ndr
, 4));
2282 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2287 NDR_CHECK(ndr_push_align(ndr
, 4));
2288 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2289 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2293 NDR_CHECK(ndr_push_align(ndr
, 4));
2294 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2295 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2299 NDR_CHECK(ndr_push_align(ndr
, 4));
2300 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2301 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2309 if (ndr_flags
& NDR_BUFFERS
) {
2310 int level
= ndr_push_get_switch_value(ndr
, r
);
2311 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2314 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2318 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2322 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2326 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2330 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2334 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2341 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2345 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2349 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2357 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2358 return NDR_ERR_SUCCESS
;
2361 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2363 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2365 level
= ndr_pull_get_switch_value(ndr
, r
);
2366 if (ndr_flags
& NDR_SCALARS
) {
2369 NDR_CHECK(ndr_pull_align(ndr
, 4));
2370 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2371 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2375 NDR_CHECK(ndr_pull_align(ndr
, 4));
2376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2377 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2381 NDR_CHECK(ndr_pull_align(ndr
, 4));
2382 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2383 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2387 NDR_CHECK(ndr_pull_align(ndr
, 4));
2388 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2389 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2393 NDR_CHECK(ndr_pull_align(ndr
, 4));
2394 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2395 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2399 NDR_CHECK(ndr_pull_align(ndr
, 4));
2400 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2401 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2405 NDR_CHECK(ndr_pull_align(ndr
, 4));
2406 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2407 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2411 NDR_CHECK(ndr_pull_align(ndr
, 4));
2412 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2413 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2417 NDR_CHECK(ndr_pull_align(ndr
, 4));
2418 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2419 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2423 NDR_CHECK(ndr_pull_align(ndr
, 4));
2424 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2433 if (ndr_flags
& NDR_BUFFERS
) {
2434 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2437 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2441 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2445 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2449 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2453 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2457 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2464 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2468 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2472 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2480 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2481 return NDR_ERR_SUCCESS
;
2484 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2487 level
= ndr_print_get_switch_value(ndr
, r
);
2488 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2491 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2495 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2499 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2503 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2507 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2511 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2515 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2519 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2523 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2527 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2536 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
2538 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
2541 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2543 if (ndr_flags
& NDR_SCALARS
) {
2544 NDR_CHECK(ndr_push_align(ndr
, 4));
2545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2548 if (ndr_flags
& NDR_BUFFERS
) {
2551 struct ndr_push
*_ndr_devmode
;
2552 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2553 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2554 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2558 return NDR_ERR_SUCCESS
;
2561 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2563 uint32_t _ptr_devmode
;
2564 TALLOC_CTX
*_mem_save_devmode_0
;
2565 if (ndr_flags
& NDR_SCALARS
) {
2566 NDR_CHECK(ndr_pull_align(ndr
, 4));
2567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2570 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2575 if (ndr_flags
& NDR_BUFFERS
) {
2577 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2578 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2580 struct ndr_pull
*_ndr_devmode
;
2581 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2582 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2583 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2588 return NDR_ERR_SUCCESS
;
2591 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2593 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2595 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
);
2596 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2599 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2605 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2607 if (ndr_flags
& NDR_SCALARS
) {
2608 NDR_CHECK(ndr_push_align(ndr
, 4));
2609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2611 uint32_t _flags_save_string
= ndr
->flags
;
2612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2613 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2614 ndr
->flags
= _flags_save_string
;
2617 uint32_t _flags_save_string
= ndr
->flags
;
2618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2619 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2620 ndr
->flags
= _flags_save_string
;
2623 uint32_t _flags_save_string
= ndr
->flags
;
2624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2625 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2626 ndr
->flags
= _flags_save_string
;
2629 uint32_t _flags_save_string
= ndr
->flags
;
2630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2631 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2632 ndr
->flags
= _flags_save_string
;
2635 uint32_t _flags_save_string
= ndr
->flags
;
2636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2637 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2638 ndr
->flags
= _flags_save_string
;
2641 uint32_t _flags_save_string
= ndr
->flags
;
2642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2643 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2644 ndr
->flags
= _flags_save_string
;
2646 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2651 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2653 if (ndr_flags
& NDR_BUFFERS
) {
2655 uint32_t _flags_save_string
= ndr
->flags
;
2656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2657 if (r
->printer_name
) {
2658 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2659 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2661 ndr
->flags
= _flags_save_string
;
2664 uint32_t _flags_save_string
= ndr
->flags
;
2665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2666 if (r
->server_name
) {
2667 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2668 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2670 ndr
->flags
= _flags_save_string
;
2673 uint32_t _flags_save_string
= ndr
->flags
;
2674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2676 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
2677 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2679 ndr
->flags
= _flags_save_string
;
2682 uint32_t _flags_save_string
= ndr
->flags
;
2683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2684 if (r
->document_name
) {
2685 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
2686 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2688 ndr
->flags
= _flags_save_string
;
2691 uint32_t _flags_save_string
= ndr
->flags
;
2692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2694 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
2695 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2697 ndr
->flags
= _flags_save_string
;
2700 uint32_t _flags_save_string
= ndr
->flags
;
2701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2702 if (r
->text_status
) {
2703 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
2704 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2706 ndr
->flags
= _flags_save_string
;
2709 return NDR_ERR_SUCCESS
;
2712 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2714 uint32_t _ptr_printer_name
;
2715 TALLOC_CTX
*_mem_save_printer_name_0
;
2716 uint32_t _ptr_server_name
;
2717 TALLOC_CTX
*_mem_save_server_name_0
;
2718 uint32_t _ptr_user_name
;
2719 TALLOC_CTX
*_mem_save_user_name_0
;
2720 uint32_t _ptr_document_name
;
2721 TALLOC_CTX
*_mem_save_document_name_0
;
2722 uint32_t _ptr_data_type
;
2723 TALLOC_CTX
*_mem_save_data_type_0
;
2724 uint32_t _ptr_text_status
;
2725 TALLOC_CTX
*_mem_save_text_status_0
;
2726 if (ndr_flags
& NDR_SCALARS
) {
2727 NDR_CHECK(ndr_pull_align(ndr
, 4));
2728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2730 uint32_t _flags_save_string
= ndr
->flags
;
2731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2733 if (_ptr_printer_name
) {
2734 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2737 r
->printer_name
= NULL
;
2739 ndr
->flags
= _flags_save_string
;
2742 uint32_t _flags_save_string
= ndr
->flags
;
2743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2745 if (_ptr_server_name
) {
2746 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2749 r
->server_name
= NULL
;
2751 ndr
->flags
= _flags_save_string
;
2754 uint32_t _flags_save_string
= ndr
->flags
;
2755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2757 if (_ptr_user_name
) {
2758 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2759 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2761 r
->user_name
= NULL
;
2763 ndr
->flags
= _flags_save_string
;
2766 uint32_t _flags_save_string
= ndr
->flags
;
2767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2768 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2769 if (_ptr_document_name
) {
2770 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2771 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2773 r
->document_name
= NULL
;
2775 ndr
->flags
= _flags_save_string
;
2778 uint32_t _flags_save_string
= ndr
->flags
;
2779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2780 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2781 if (_ptr_data_type
) {
2782 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2783 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2785 r
->data_type
= NULL
;
2787 ndr
->flags
= _flags_save_string
;
2790 uint32_t _flags_save_string
= ndr
->flags
;
2791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2792 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2793 if (_ptr_text_status
) {
2794 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2795 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2797 r
->text_status
= NULL
;
2799 ndr
->flags
= _flags_save_string
;
2801 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2803 if (r
->priority
> 99) {
2804 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2809 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2811 if (ndr_flags
& NDR_BUFFERS
) {
2813 uint32_t _flags_save_string
= ndr
->flags
;
2814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2815 if (r
->printer_name
) {
2816 uint32_t _relative_save_offset
;
2817 _relative_save_offset
= ndr
->offset
;
2818 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2819 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2820 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2821 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2823 ndr
->offset
= _relative_save_offset
;
2825 ndr
->flags
= _flags_save_string
;
2828 uint32_t _flags_save_string
= ndr
->flags
;
2829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2830 if (r
->server_name
) {
2831 uint32_t _relative_save_offset
;
2832 _relative_save_offset
= ndr
->offset
;
2833 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2834 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2835 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2836 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2838 ndr
->offset
= _relative_save_offset
;
2840 ndr
->flags
= _flags_save_string
;
2843 uint32_t _flags_save_string
= ndr
->flags
;
2844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2846 uint32_t _relative_save_offset
;
2847 _relative_save_offset
= ndr
->offset
;
2848 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2849 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2850 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2851 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2853 ndr
->offset
= _relative_save_offset
;
2855 ndr
->flags
= _flags_save_string
;
2858 uint32_t _flags_save_string
= ndr
->flags
;
2859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2860 if (r
->document_name
) {
2861 uint32_t _relative_save_offset
;
2862 _relative_save_offset
= ndr
->offset
;
2863 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2864 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2865 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2866 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2868 ndr
->offset
= _relative_save_offset
;
2870 ndr
->flags
= _flags_save_string
;
2873 uint32_t _flags_save_string
= ndr
->flags
;
2874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2876 uint32_t _relative_save_offset
;
2877 _relative_save_offset
= ndr
->offset
;
2878 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2879 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2880 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2881 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2883 ndr
->offset
= _relative_save_offset
;
2885 ndr
->flags
= _flags_save_string
;
2888 uint32_t _flags_save_string
= ndr
->flags
;
2889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2890 if (r
->text_status
) {
2891 uint32_t _relative_save_offset
;
2892 _relative_save_offset
= ndr
->offset
;
2893 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2894 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2895 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2896 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2898 ndr
->offset
= _relative_save_offset
;
2900 ndr
->flags
= _flags_save_string
;
2903 return NDR_ERR_SUCCESS
;
2906 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2908 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2910 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2911 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2913 if (r
->printer_name
) {
2914 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2917 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2919 if (r
->server_name
) {
2920 ndr_print_string(ndr
, "server_name", r
->server_name
);
2923 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2926 ndr_print_string(ndr
, "user_name", r
->user_name
);
2929 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2931 if (r
->document_name
) {
2932 ndr_print_string(ndr
, "document_name", r
->document_name
);
2935 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2938 ndr_print_string(ndr
, "data_type", r
->data_type
);
2941 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2943 if (r
->text_status
) {
2944 ndr_print_string(ndr
, "text_status", r
->text_status
);
2947 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2948 ndr_print_uint32(ndr
, "priority", r
->priority
);
2949 ndr_print_uint32(ndr
, "position", r
->position
);
2950 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2951 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2952 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2956 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2958 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
2961 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2963 if (ndr_flags
& NDR_SCALARS
) {
2964 NDR_CHECK(ndr_push_align(ndr
, 4));
2965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2967 uint32_t _flags_save_string
= ndr
->flags
;
2968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2970 ndr
->flags
= _flags_save_string
;
2973 uint32_t _flags_save_string
= ndr
->flags
;
2974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2976 ndr
->flags
= _flags_save_string
;
2979 uint32_t _flags_save_string
= ndr
->flags
;
2980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2981 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2982 ndr
->flags
= _flags_save_string
;
2985 uint32_t _flags_save_string
= ndr
->flags
;
2986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2987 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2988 ndr
->flags
= _flags_save_string
;
2991 uint32_t _flags_save_string
= ndr
->flags
;
2992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2993 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2994 ndr
->flags
= _flags_save_string
;
2997 uint32_t _flags_save_string
= ndr
->flags
;
2998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2999 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3000 ndr
->flags
= _flags_save_string
;
3003 uint32_t _flags_save_string
= ndr
->flags
;
3004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3005 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3006 ndr
->flags
= _flags_save_string
;
3009 uint32_t _flags_save_string
= ndr
->flags
;
3010 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3011 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3012 ndr
->flags
= _flags_save_string
;
3015 uint32_t _flags_save_string
= ndr
->flags
;
3016 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3017 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3018 ndr
->flags
= _flags_save_string
;
3020 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3022 uint32_t _flags_save_string
= ndr
->flags
;
3023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3024 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3025 ndr
->flags
= _flags_save_string
;
3027 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3028 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3035 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3039 if (ndr_flags
& NDR_BUFFERS
) {
3041 uint32_t _flags_save_string
= ndr
->flags
;
3042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3043 if (r
->printer_name
) {
3044 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3045 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3047 ndr
->flags
= _flags_save_string
;
3050 uint32_t _flags_save_string
= ndr
->flags
;
3051 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3052 if (r
->server_name
) {
3053 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3054 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3056 ndr
->flags
= _flags_save_string
;
3059 uint32_t _flags_save_string
= ndr
->flags
;
3060 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3062 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3063 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3065 ndr
->flags
= _flags_save_string
;
3068 uint32_t _flags_save_string
= ndr
->flags
;
3069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3070 if (r
->document_name
) {
3071 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3072 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3074 ndr
->flags
= _flags_save_string
;
3077 uint32_t _flags_save_string
= ndr
->flags
;
3078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3079 if (r
->notify_name
) {
3080 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3081 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3083 ndr
->flags
= _flags_save_string
;
3086 uint32_t _flags_save_string
= ndr
->flags
;
3087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3089 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3090 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3092 ndr
->flags
= _flags_save_string
;
3095 uint32_t _flags_save_string
= ndr
->flags
;
3096 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3097 if (r
->print_processor
) {
3098 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3099 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3101 ndr
->flags
= _flags_save_string
;
3104 uint32_t _flags_save_string
= ndr
->flags
;
3105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3106 if (r
->parameters
) {
3107 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3108 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3110 ndr
->flags
= _flags_save_string
;
3113 uint32_t _flags_save_string
= ndr
->flags
;
3114 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3115 if (r
->driver_name
) {
3116 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3117 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3119 ndr
->flags
= _flags_save_string
;
3122 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3123 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3126 uint32_t _flags_save_string
= ndr
->flags
;
3127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3128 if (r
->text_status
) {
3129 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3130 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3132 ndr
->flags
= _flags_save_string
;
3135 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3136 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3139 return NDR_ERR_SUCCESS
;
3142 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3144 uint32_t _ptr_printer_name
;
3145 TALLOC_CTX
*_mem_save_printer_name_0
;
3146 uint32_t _ptr_server_name
;
3147 TALLOC_CTX
*_mem_save_server_name_0
;
3148 uint32_t _ptr_user_name
;
3149 TALLOC_CTX
*_mem_save_user_name_0
;
3150 uint32_t _ptr_document_name
;
3151 TALLOC_CTX
*_mem_save_document_name_0
;
3152 uint32_t _ptr_notify_name
;
3153 TALLOC_CTX
*_mem_save_notify_name_0
;
3154 uint32_t _ptr_data_type
;
3155 TALLOC_CTX
*_mem_save_data_type_0
;
3156 uint32_t _ptr_print_processor
;
3157 TALLOC_CTX
*_mem_save_print_processor_0
;
3158 uint32_t _ptr_parameters
;
3159 TALLOC_CTX
*_mem_save_parameters_0
;
3160 uint32_t _ptr_driver_name
;
3161 TALLOC_CTX
*_mem_save_driver_name_0
;
3162 uint32_t _ptr_devmode
;
3163 TALLOC_CTX
*_mem_save_devmode_0
;
3164 uint32_t _ptr_text_status
;
3165 TALLOC_CTX
*_mem_save_text_status_0
;
3166 uint32_t _ptr_secdesc
;
3167 TALLOC_CTX
*_mem_save_secdesc_0
;
3168 if (ndr_flags
& NDR_SCALARS
) {
3169 NDR_CHECK(ndr_pull_align(ndr
, 4));
3170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3172 uint32_t _flags_save_string
= ndr
->flags
;
3173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3175 if (_ptr_printer_name
) {
3176 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3177 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3179 r
->printer_name
= NULL
;
3181 ndr
->flags
= _flags_save_string
;
3184 uint32_t _flags_save_string
= ndr
->flags
;
3185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3187 if (_ptr_server_name
) {
3188 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3189 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3191 r
->server_name
= NULL
;
3193 ndr
->flags
= _flags_save_string
;
3196 uint32_t _flags_save_string
= ndr
->flags
;
3197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3198 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3199 if (_ptr_user_name
) {
3200 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3201 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3203 r
->user_name
= NULL
;
3205 ndr
->flags
= _flags_save_string
;
3208 uint32_t _flags_save_string
= ndr
->flags
;
3209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3210 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3211 if (_ptr_document_name
) {
3212 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3213 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3215 r
->document_name
= NULL
;
3217 ndr
->flags
= _flags_save_string
;
3220 uint32_t _flags_save_string
= ndr
->flags
;
3221 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3222 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3223 if (_ptr_notify_name
) {
3224 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3225 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3227 r
->notify_name
= NULL
;
3229 ndr
->flags
= _flags_save_string
;
3232 uint32_t _flags_save_string
= ndr
->flags
;
3233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3234 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3235 if (_ptr_data_type
) {
3236 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3237 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3239 r
->data_type
= NULL
;
3241 ndr
->flags
= _flags_save_string
;
3244 uint32_t _flags_save_string
= ndr
->flags
;
3245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3246 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3247 if (_ptr_print_processor
) {
3248 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3249 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3251 r
->print_processor
= NULL
;
3253 ndr
->flags
= _flags_save_string
;
3256 uint32_t _flags_save_string
= ndr
->flags
;
3257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3259 if (_ptr_parameters
) {
3260 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3261 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3263 r
->parameters
= NULL
;
3265 ndr
->flags
= _flags_save_string
;
3268 uint32_t _flags_save_string
= ndr
->flags
;
3269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3271 if (_ptr_driver_name
) {
3272 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3273 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3275 r
->driver_name
= NULL
;
3277 ndr
->flags
= _flags_save_string
;
3279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3281 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3282 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3287 uint32_t _flags_save_string
= ndr
->flags
;
3288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3289 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3290 if (_ptr_text_status
) {
3291 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3292 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3294 r
->text_status
= NULL
;
3296 ndr
->flags
= _flags_save_string
;
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3300 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3301 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3305 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3307 if (r
->priority
> 99) {
3308 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3315 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3319 if (ndr_flags
& NDR_BUFFERS
) {
3321 uint32_t _flags_save_string
= ndr
->flags
;
3322 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3323 if (r
->printer_name
) {
3324 uint32_t _relative_save_offset
;
3325 _relative_save_offset
= ndr
->offset
;
3326 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3327 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3328 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3329 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3331 ndr
->offset
= _relative_save_offset
;
3333 ndr
->flags
= _flags_save_string
;
3336 uint32_t _flags_save_string
= ndr
->flags
;
3337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3338 if (r
->server_name
) {
3339 uint32_t _relative_save_offset
;
3340 _relative_save_offset
= ndr
->offset
;
3341 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3342 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3343 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3344 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3346 ndr
->offset
= _relative_save_offset
;
3348 ndr
->flags
= _flags_save_string
;
3351 uint32_t _flags_save_string
= ndr
->flags
;
3352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3354 uint32_t _relative_save_offset
;
3355 _relative_save_offset
= ndr
->offset
;
3356 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3357 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3358 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3359 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3361 ndr
->offset
= _relative_save_offset
;
3363 ndr
->flags
= _flags_save_string
;
3366 uint32_t _flags_save_string
= ndr
->flags
;
3367 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3368 if (r
->document_name
) {
3369 uint32_t _relative_save_offset
;
3370 _relative_save_offset
= ndr
->offset
;
3371 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3372 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3373 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3374 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3375 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3376 ndr
->offset
= _relative_save_offset
;
3378 ndr
->flags
= _flags_save_string
;
3381 uint32_t _flags_save_string
= ndr
->flags
;
3382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3383 if (r
->notify_name
) {
3384 uint32_t _relative_save_offset
;
3385 _relative_save_offset
= ndr
->offset
;
3386 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3387 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3388 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3389 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3391 ndr
->offset
= _relative_save_offset
;
3393 ndr
->flags
= _flags_save_string
;
3396 uint32_t _flags_save_string
= ndr
->flags
;
3397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3399 uint32_t _relative_save_offset
;
3400 _relative_save_offset
= ndr
->offset
;
3401 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3402 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3403 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3404 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3406 ndr
->offset
= _relative_save_offset
;
3408 ndr
->flags
= _flags_save_string
;
3411 uint32_t _flags_save_string
= ndr
->flags
;
3412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3413 if (r
->print_processor
) {
3414 uint32_t _relative_save_offset
;
3415 _relative_save_offset
= ndr
->offset
;
3416 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3417 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3418 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3419 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3421 ndr
->offset
= _relative_save_offset
;
3423 ndr
->flags
= _flags_save_string
;
3426 uint32_t _flags_save_string
= ndr
->flags
;
3427 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3428 if (r
->parameters
) {
3429 uint32_t _relative_save_offset
;
3430 _relative_save_offset
= ndr
->offset
;
3431 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3432 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3433 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3434 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3436 ndr
->offset
= _relative_save_offset
;
3438 ndr
->flags
= _flags_save_string
;
3441 uint32_t _flags_save_string
= ndr
->flags
;
3442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3443 if (r
->driver_name
) {
3444 uint32_t _relative_save_offset
;
3445 _relative_save_offset
= ndr
->offset
;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3447 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3448 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3449 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3451 ndr
->offset
= _relative_save_offset
;
3453 ndr
->flags
= _flags_save_string
;
3456 uint32_t _relative_save_offset
;
3457 _relative_save_offset
= ndr
->offset
;
3458 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3459 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3460 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3461 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3463 ndr
->offset
= _relative_save_offset
;
3466 uint32_t _flags_save_string
= ndr
->flags
;
3467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3468 if (r
->text_status
) {
3469 uint32_t _relative_save_offset
;
3470 _relative_save_offset
= ndr
->offset
;
3471 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3472 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3473 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3474 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3476 ndr
->offset
= _relative_save_offset
;
3478 ndr
->flags
= _flags_save_string
;
3481 uint32_t _relative_save_offset
;
3482 _relative_save_offset
= ndr
->offset
;
3483 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3484 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3485 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3486 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3488 ndr
->offset
= _relative_save_offset
;
3491 return NDR_ERR_SUCCESS
;
3494 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3496 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3498 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3499 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3501 if (r
->printer_name
) {
3502 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3505 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3507 if (r
->server_name
) {
3508 ndr_print_string(ndr
, "server_name", r
->server_name
);
3511 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3514 ndr_print_string(ndr
, "user_name", r
->user_name
);
3517 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3519 if (r
->document_name
) {
3520 ndr_print_string(ndr
, "document_name", r
->document_name
);
3523 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3525 if (r
->notify_name
) {
3526 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3529 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3532 ndr_print_string(ndr
, "data_type", r
->data_type
);
3535 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3537 if (r
->print_processor
) {
3538 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3541 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3543 if (r
->parameters
) {
3544 ndr_print_string(ndr
, "parameters", r
->parameters
);
3547 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3549 if (r
->driver_name
) {
3550 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3553 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3556 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3559 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3561 if (r
->text_status
) {
3562 ndr_print_string(ndr
, "text_status", r
->text_status
);
3565 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3568 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3571 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3572 ndr_print_uint32(ndr
, "priority", r
->priority
);
3573 ndr_print_uint32(ndr
, "position", r
->position
);
3574 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3575 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3576 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3577 ndr_print_uint32(ndr
, "size", r
->size
);
3578 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3579 ndr_print_uint32(ndr
, "time", r
->time
);
3580 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3584 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3586 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
3589 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3591 if (ndr_flags
& NDR_SCALARS
) {
3592 NDR_CHECK(ndr_push_align(ndr
, 4));
3593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3597 if (ndr_flags
& NDR_BUFFERS
) {
3599 return NDR_ERR_SUCCESS
;
3602 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3604 if (ndr_flags
& NDR_SCALARS
) {
3605 NDR_CHECK(ndr_pull_align(ndr
, 4));
3606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3607 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3610 if (ndr_flags
& NDR_BUFFERS
) {
3612 return NDR_ERR_SUCCESS
;
3615 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3617 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3619 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3620 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3621 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3625 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3627 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
3630 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3632 if (ndr_flags
& NDR_SCALARS
) {
3633 NDR_CHECK(ndr_push_align(ndr
, 4));
3634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3636 uint32_t _flags_save_string
= ndr
->flags
;
3637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3638 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3639 ndr
->flags
= _flags_save_string
;
3642 uint32_t _flags_save_string
= ndr
->flags
;
3643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3644 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3645 ndr
->flags
= _flags_save_string
;
3648 uint32_t _flags_save_string
= ndr
->flags
;
3649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3650 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3651 ndr
->flags
= _flags_save_string
;
3654 uint32_t _flags_save_string
= ndr
->flags
;
3655 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3656 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3657 ndr
->flags
= _flags_save_string
;
3660 uint32_t _flags_save_string
= ndr
->flags
;
3661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3662 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3663 ndr
->flags
= _flags_save_string
;
3666 uint32_t _flags_save_string
= ndr
->flags
;
3667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3668 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3669 ndr
->flags
= _flags_save_string
;
3672 uint32_t _flags_save_string
= ndr
->flags
;
3673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3674 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3675 ndr
->flags
= _flags_save_string
;
3678 uint32_t _flags_save_string
= ndr
->flags
;
3679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3680 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
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_push_relative_ptr1(ndr
, r
->driver_name
));
3687 ndr
->flags
= _flags_save_string
;
3689 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3691 uint32_t _flags_save_string
= ndr
->flags
;
3692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3693 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3694 ndr
->flags
= _flags_save_string
;
3696 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3697 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3704 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3709 if (ndr_flags
& NDR_BUFFERS
) {
3711 uint32_t _flags_save_string
= ndr
->flags
;
3712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3713 if (r
->printer_name
) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3715 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
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 if (r
->server_name
) {
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3724 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3726 ndr
->flags
= _flags_save_string
;
3729 uint32_t _flags_save_string
= ndr
->flags
;
3730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3733 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3735 ndr
->flags
= _flags_save_string
;
3738 uint32_t _flags_save_string
= ndr
->flags
;
3739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3740 if (r
->document_name
) {
3741 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3742 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3744 ndr
->flags
= _flags_save_string
;
3747 uint32_t _flags_save_string
= ndr
->flags
;
3748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3749 if (r
->notify_name
) {
3750 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3751 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3753 ndr
->flags
= _flags_save_string
;
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3759 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3760 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3762 ndr
->flags
= _flags_save_string
;
3765 uint32_t _flags_save_string
= ndr
->flags
;
3766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3767 if (r
->print_processor
) {
3768 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3769 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3771 ndr
->flags
= _flags_save_string
;
3774 uint32_t _flags_save_string
= ndr
->flags
;
3775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3776 if (r
->parameters
) {
3777 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3778 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3780 ndr
->flags
= _flags_save_string
;
3783 uint32_t _flags_save_string
= ndr
->flags
;
3784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3785 if (r
->driver_name
) {
3786 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3787 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3789 ndr
->flags
= _flags_save_string
;
3792 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3793 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3796 uint32_t _flags_save_string
= ndr
->flags
;
3797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3798 if (r
->text_status
) {
3799 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3800 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3802 ndr
->flags
= _flags_save_string
;
3805 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3806 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3809 return NDR_ERR_SUCCESS
;
3812 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3814 uint32_t _ptr_printer_name
;
3815 TALLOC_CTX
*_mem_save_printer_name_0
;
3816 uint32_t _ptr_server_name
;
3817 TALLOC_CTX
*_mem_save_server_name_0
;
3818 uint32_t _ptr_user_name
;
3819 TALLOC_CTX
*_mem_save_user_name_0
;
3820 uint32_t _ptr_document_name
;
3821 TALLOC_CTX
*_mem_save_document_name_0
;
3822 uint32_t _ptr_notify_name
;
3823 TALLOC_CTX
*_mem_save_notify_name_0
;
3824 uint32_t _ptr_data_type
;
3825 TALLOC_CTX
*_mem_save_data_type_0
;
3826 uint32_t _ptr_print_processor
;
3827 TALLOC_CTX
*_mem_save_print_processor_0
;
3828 uint32_t _ptr_parameters
;
3829 TALLOC_CTX
*_mem_save_parameters_0
;
3830 uint32_t _ptr_driver_name
;
3831 TALLOC_CTX
*_mem_save_driver_name_0
;
3832 uint32_t _ptr_devmode
;
3833 TALLOC_CTX
*_mem_save_devmode_0
;
3834 uint32_t _ptr_text_status
;
3835 TALLOC_CTX
*_mem_save_text_status_0
;
3836 uint32_t _ptr_secdesc
;
3837 TALLOC_CTX
*_mem_save_secdesc_0
;
3838 if (ndr_flags
& NDR_SCALARS
) {
3839 NDR_CHECK(ndr_pull_align(ndr
, 4));
3840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3842 uint32_t _flags_save_string
= ndr
->flags
;
3843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3845 if (_ptr_printer_name
) {
3846 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3847 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3849 r
->printer_name
= NULL
;
3851 ndr
->flags
= _flags_save_string
;
3854 uint32_t _flags_save_string
= ndr
->flags
;
3855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3857 if (_ptr_server_name
) {
3858 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3859 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3861 r
->server_name
= NULL
;
3863 ndr
->flags
= _flags_save_string
;
3866 uint32_t _flags_save_string
= ndr
->flags
;
3867 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3869 if (_ptr_user_name
) {
3870 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3871 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3873 r
->user_name
= NULL
;
3875 ndr
->flags
= _flags_save_string
;
3878 uint32_t _flags_save_string
= ndr
->flags
;
3879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3881 if (_ptr_document_name
) {
3882 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3885 r
->document_name
= NULL
;
3887 ndr
->flags
= _flags_save_string
;
3890 uint32_t _flags_save_string
= ndr
->flags
;
3891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3893 if (_ptr_notify_name
) {
3894 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3895 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3897 r
->notify_name
= NULL
;
3899 ndr
->flags
= _flags_save_string
;
3902 uint32_t _flags_save_string
= ndr
->flags
;
3903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3905 if (_ptr_data_type
) {
3906 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3907 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3909 r
->data_type
= NULL
;
3911 ndr
->flags
= _flags_save_string
;
3914 uint32_t _flags_save_string
= ndr
->flags
;
3915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3917 if (_ptr_print_processor
) {
3918 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3919 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3921 r
->print_processor
= NULL
;
3923 ndr
->flags
= _flags_save_string
;
3926 uint32_t _flags_save_string
= ndr
->flags
;
3927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3929 if (_ptr_parameters
) {
3930 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3931 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3933 r
->parameters
= NULL
;
3935 ndr
->flags
= _flags_save_string
;
3938 uint32_t _flags_save_string
= ndr
->flags
;
3939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3941 if (_ptr_driver_name
) {
3942 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3943 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3945 r
->driver_name
= NULL
;
3947 ndr
->flags
= _flags_save_string
;
3949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3951 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3952 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3957 uint32_t _flags_save_string
= ndr
->flags
;
3958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3960 if (_ptr_text_status
) {
3961 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3964 r
->text_status
= NULL
;
3966 ndr
->flags
= _flags_save_string
;
3968 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3970 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3971 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3975 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3977 if (r
->priority
> 99) {
3978 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3985 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3988 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
3990 if (ndr_flags
& NDR_BUFFERS
) {
3992 uint32_t _flags_save_string
= ndr
->flags
;
3993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3994 if (r
->printer_name
) {
3995 uint32_t _relative_save_offset
;
3996 _relative_save_offset
= ndr
->offset
;
3997 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3998 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3999 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4000 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4002 ndr
->offset
= _relative_save_offset
;
4004 ndr
->flags
= _flags_save_string
;
4007 uint32_t _flags_save_string
= ndr
->flags
;
4008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4009 if (r
->server_name
) {
4010 uint32_t _relative_save_offset
;
4011 _relative_save_offset
= ndr
->offset
;
4012 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4013 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4014 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4015 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4017 ndr
->offset
= _relative_save_offset
;
4019 ndr
->flags
= _flags_save_string
;
4022 uint32_t _flags_save_string
= ndr
->flags
;
4023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4025 uint32_t _relative_save_offset
;
4026 _relative_save_offset
= ndr
->offset
;
4027 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4028 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4029 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4030 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4032 ndr
->offset
= _relative_save_offset
;
4034 ndr
->flags
= _flags_save_string
;
4037 uint32_t _flags_save_string
= ndr
->flags
;
4038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4039 if (r
->document_name
) {
4040 uint32_t _relative_save_offset
;
4041 _relative_save_offset
= ndr
->offset
;
4042 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4043 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4044 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4045 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4047 ndr
->offset
= _relative_save_offset
;
4049 ndr
->flags
= _flags_save_string
;
4052 uint32_t _flags_save_string
= ndr
->flags
;
4053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4054 if (r
->notify_name
) {
4055 uint32_t _relative_save_offset
;
4056 _relative_save_offset
= ndr
->offset
;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4058 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4059 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4060 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4062 ndr
->offset
= _relative_save_offset
;
4064 ndr
->flags
= _flags_save_string
;
4067 uint32_t _flags_save_string
= ndr
->flags
;
4068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4070 uint32_t _relative_save_offset
;
4071 _relative_save_offset
= ndr
->offset
;
4072 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4073 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4074 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4075 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4077 ndr
->offset
= _relative_save_offset
;
4079 ndr
->flags
= _flags_save_string
;
4082 uint32_t _flags_save_string
= ndr
->flags
;
4083 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4084 if (r
->print_processor
) {
4085 uint32_t _relative_save_offset
;
4086 _relative_save_offset
= ndr
->offset
;
4087 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4088 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4089 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4090 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4092 ndr
->offset
= _relative_save_offset
;
4094 ndr
->flags
= _flags_save_string
;
4097 uint32_t _flags_save_string
= ndr
->flags
;
4098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4099 if (r
->parameters
) {
4100 uint32_t _relative_save_offset
;
4101 _relative_save_offset
= ndr
->offset
;
4102 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4103 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4104 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4105 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4107 ndr
->offset
= _relative_save_offset
;
4109 ndr
->flags
= _flags_save_string
;
4112 uint32_t _flags_save_string
= ndr
->flags
;
4113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4114 if (r
->driver_name
) {
4115 uint32_t _relative_save_offset
;
4116 _relative_save_offset
= ndr
->offset
;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4118 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4119 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4120 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4122 ndr
->offset
= _relative_save_offset
;
4124 ndr
->flags
= _flags_save_string
;
4127 uint32_t _relative_save_offset
;
4128 _relative_save_offset
= ndr
->offset
;
4129 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4130 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4131 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4132 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4134 ndr
->offset
= _relative_save_offset
;
4137 uint32_t _flags_save_string
= ndr
->flags
;
4138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4139 if (r
->text_status
) {
4140 uint32_t _relative_save_offset
;
4141 _relative_save_offset
= ndr
->offset
;
4142 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4143 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4144 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4145 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4147 ndr
->offset
= _relative_save_offset
;
4149 ndr
->flags
= _flags_save_string
;
4152 uint32_t _relative_save_offset
;
4153 _relative_save_offset
= ndr
->offset
;
4154 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4155 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4156 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4157 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4159 ndr
->offset
= _relative_save_offset
;
4162 return NDR_ERR_SUCCESS
;
4165 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4167 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4169 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4170 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4172 if (r
->printer_name
) {
4173 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4176 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4178 if (r
->server_name
) {
4179 ndr_print_string(ndr
, "server_name", r
->server_name
);
4182 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4185 ndr_print_string(ndr
, "user_name", r
->user_name
);
4188 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4190 if (r
->document_name
) {
4191 ndr_print_string(ndr
, "document_name", r
->document_name
);
4194 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4196 if (r
->notify_name
) {
4197 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4200 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4203 ndr_print_string(ndr
, "data_type", r
->data_type
);
4206 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4208 if (r
->print_processor
) {
4209 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4212 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4214 if (r
->parameters
) {
4215 ndr_print_string(ndr
, "parameters", r
->parameters
);
4218 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4220 if (r
->driver_name
) {
4221 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4224 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4227 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4230 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4232 if (r
->text_status
) {
4233 ndr_print_string(ndr
, "text_status", r
->text_status
);
4236 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4239 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4242 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4243 ndr_print_uint32(ndr
, "priority", r
->priority
);
4244 ndr_print_uint32(ndr
, "position", r
->position
);
4245 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4246 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4247 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4248 ndr_print_uint32(ndr
, "size", r
->size
);
4249 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4250 ndr_print_uint32(ndr
, "time", r
->time
);
4251 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4252 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4256 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4258 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4261 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4263 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4264 if (ndr_flags
& NDR_SCALARS
) {
4265 int level
= ndr_push_get_switch_value(ndr
, r
);
4268 NDR_CHECK(ndr_push_align(ndr
, 4));
4269 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4270 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4274 NDR_CHECK(ndr_push_align(ndr
, 4));
4275 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4276 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4280 NDR_CHECK(ndr_push_align(ndr
, 4));
4281 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4282 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4286 NDR_CHECK(ndr_push_align(ndr
, 4));
4287 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4288 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4296 if (ndr_flags
& NDR_BUFFERS
) {
4297 int level
= ndr_push_get_switch_value(ndr
, r
);
4298 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4301 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4305 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4312 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4320 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4321 return NDR_ERR_SUCCESS
;
4324 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4326 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4328 level
= ndr_pull_get_switch_value(ndr
, r
);
4329 if (ndr_flags
& NDR_SCALARS
) {
4332 NDR_CHECK(ndr_pull_align(ndr
, 4));
4333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4334 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4338 NDR_CHECK(ndr_pull_align(ndr
, 4));
4339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4340 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4344 NDR_CHECK(ndr_pull_align(ndr
, 4));
4345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4346 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4350 NDR_CHECK(ndr_pull_align(ndr
, 4));
4351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4352 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4360 if (ndr_flags
& NDR_BUFFERS
) {
4361 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4364 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4368 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4375 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4383 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4384 return NDR_ERR_SUCCESS
;
4387 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4390 level
= ndr_print_get_switch_value(ndr
, r
);
4391 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4394 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4398 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4402 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4406 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4415 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4417 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4420 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4422 if (ndr_flags
& NDR_SCALARS
) {
4423 NDR_CHECK(ndr_push_align(ndr
, 4));
4424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4426 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4427 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4429 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4431 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4436 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4438 if (ndr_flags
& NDR_BUFFERS
) {
4439 if (r
->printer_name
) {
4440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4443 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4445 if (r
->server_name
) {
4446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4449 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4455 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4457 if (r
->document_name
) {
4458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4461 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4467 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4469 if (r
->text_status
) {
4470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4473 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4476 return NDR_ERR_SUCCESS
;
4479 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4481 uint32_t _ptr_printer_name
;
4482 TALLOC_CTX
*_mem_save_printer_name_0
;
4483 uint32_t _ptr_server_name
;
4484 TALLOC_CTX
*_mem_save_server_name_0
;
4485 uint32_t _ptr_user_name
;
4486 TALLOC_CTX
*_mem_save_user_name_0
;
4487 uint32_t _ptr_document_name
;
4488 TALLOC_CTX
*_mem_save_document_name_0
;
4489 uint32_t _ptr_data_type
;
4490 TALLOC_CTX
*_mem_save_data_type_0
;
4491 uint32_t _ptr_text_status
;
4492 TALLOC_CTX
*_mem_save_text_status_0
;
4493 if (ndr_flags
& NDR_SCALARS
) {
4494 NDR_CHECK(ndr_pull_align(ndr
, 4));
4495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4496 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4497 if (_ptr_printer_name
) {
4498 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4500 r
->printer_name
= NULL
;
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4503 if (_ptr_server_name
) {
4504 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4506 r
->server_name
= NULL
;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4509 if (_ptr_user_name
) {
4510 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4512 r
->user_name
= NULL
;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4515 if (_ptr_document_name
) {
4516 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4518 r
->document_name
= NULL
;
4520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4521 if (_ptr_data_type
) {
4522 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4524 r
->data_type
= NULL
;
4526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4527 if (_ptr_text_status
) {
4528 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4530 r
->text_status
= NULL
;
4532 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4534 if (r
->priority
> 99) {
4535 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4540 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4542 if (ndr_flags
& NDR_BUFFERS
) {
4543 if (r
->printer_name
) {
4544 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4545 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4546 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4547 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4548 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4549 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
));
4551 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4552 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4555 if (r
->server_name
) {
4556 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4557 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4558 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4559 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4560 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4561 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
));
4563 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4564 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4568 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4569 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4570 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4571 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4572 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4573 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
));
4575 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4576 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4579 if (r
->document_name
) {
4580 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4581 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4582 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4583 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4584 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4585 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
));
4587 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4588 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4592 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4593 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4594 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4595 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4596 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4597 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
));
4599 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4600 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4603 if (r
->text_status
) {
4604 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4605 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4606 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4607 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4608 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4609 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
));
4611 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4612 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4613 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4616 return NDR_ERR_SUCCESS
;
4619 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
4621 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
4623 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4624 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4626 if (r
->printer_name
) {
4627 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4630 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4632 if (r
->server_name
) {
4633 ndr_print_string(ndr
, "server_name", r
->server_name
);
4636 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4639 ndr_print_string(ndr
, "user_name", r
->user_name
);
4642 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4644 if (r
->document_name
) {
4645 ndr_print_string(ndr
, "document_name", r
->document_name
);
4648 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4651 ndr_print_string(ndr
, "data_type", r
->data_type
);
4654 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4656 if (r
->text_status
) {
4657 ndr_print_string(ndr
, "text_status", r
->text_status
);
4660 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4661 ndr_print_uint32(ndr
, "priority", r
->priority
);
4662 ndr_print_uint32(ndr
, "position", r
->position
);
4663 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4664 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4665 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4669 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
4671 if (ndr_flags
& NDR_SCALARS
) {
4672 NDR_CHECK(ndr_push_align(ndr
, 4));
4673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4674 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4675 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4676 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4677 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4678 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
4679 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
4681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4682 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
4683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
4684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
4686 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4693 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4697 if (ndr_flags
& NDR_BUFFERS
) {
4698 if (r
->printer_name
) {
4699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4702 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4704 if (r
->server_name
) {
4705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4708 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4714 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4716 if (r
->document_name
) {
4717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4720 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4722 if (r
->notify_name
) {
4723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4726 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4732 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4734 if (r
->print_processor
) {
4735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4738 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4740 if (r
->parameters
) {
4741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4744 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4746 if (r
->driver_name
) {
4747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4750 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4752 if (r
->text_status
) {
4753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4756 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4759 return NDR_ERR_SUCCESS
;
4762 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
4764 uint32_t _ptr_printer_name
;
4765 TALLOC_CTX
*_mem_save_printer_name_0
;
4766 uint32_t _ptr_server_name
;
4767 TALLOC_CTX
*_mem_save_server_name_0
;
4768 uint32_t _ptr_user_name
;
4769 TALLOC_CTX
*_mem_save_user_name_0
;
4770 uint32_t _ptr_document_name
;
4771 TALLOC_CTX
*_mem_save_document_name_0
;
4772 uint32_t _ptr_notify_name
;
4773 TALLOC_CTX
*_mem_save_notify_name_0
;
4774 uint32_t _ptr_data_type
;
4775 TALLOC_CTX
*_mem_save_data_type_0
;
4776 uint32_t _ptr_print_processor
;
4777 TALLOC_CTX
*_mem_save_print_processor_0
;
4778 uint32_t _ptr_parameters
;
4779 TALLOC_CTX
*_mem_save_parameters_0
;
4780 uint32_t _ptr_driver_name
;
4781 TALLOC_CTX
*_mem_save_driver_name_0
;
4782 uint32_t _ptr_text_status
;
4783 TALLOC_CTX
*_mem_save_text_status_0
;
4784 if (ndr_flags
& NDR_SCALARS
) {
4785 NDR_CHECK(ndr_pull_align(ndr
, 4));
4786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4788 if (_ptr_printer_name
) {
4789 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4791 r
->printer_name
= NULL
;
4793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4794 if (_ptr_server_name
) {
4795 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4797 r
->server_name
= NULL
;
4799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4800 if (_ptr_user_name
) {
4801 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4803 r
->user_name
= NULL
;
4805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4806 if (_ptr_document_name
) {
4807 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4809 r
->document_name
= NULL
;
4811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4812 if (_ptr_notify_name
) {
4813 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4815 r
->notify_name
= NULL
;
4817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4818 if (_ptr_data_type
) {
4819 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4821 r
->data_type
= NULL
;
4823 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4824 if (_ptr_print_processor
) {
4825 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4827 r
->print_processor
= NULL
;
4829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4830 if (_ptr_parameters
) {
4831 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4833 r
->parameters
= NULL
;
4835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4836 if (_ptr_driver_name
) {
4837 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4839 r
->driver_name
= NULL
;
4841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
4842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4843 if (_ptr_text_status
) {
4844 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4846 r
->text_status
= NULL
;
4848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
4849 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4850 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4851 if (r
->priority
> 99) {
4852 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4859 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4863 if (ndr_flags
& NDR_BUFFERS
) {
4864 if (r
->printer_name
) {
4865 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4866 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4867 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4868 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4869 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4870 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
));
4872 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4873 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4876 if (r
->server_name
) {
4877 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4878 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4879 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4880 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4881 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4882 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
));
4884 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4885 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4889 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4890 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4893 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4894 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
));
4896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4897 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4900 if (r
->document_name
) {
4901 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4902 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4903 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4904 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4905 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4906 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
));
4908 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4909 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4912 if (r
->notify_name
) {
4913 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4914 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
4916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
4917 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
4918 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
));
4920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
4921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
4922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4925 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4926 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4927 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4928 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4929 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4930 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
));
4932 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4933 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4936 if (r
->print_processor
) {
4937 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4938 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4939 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
4940 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
4941 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
4942 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
));
4944 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
4945 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
4946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4948 if (r
->parameters
) {
4949 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4950 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4951 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
4952 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
4953 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
4954 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
));
4956 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
4957 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
4958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4960 if (r
->driver_name
) {
4961 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4962 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4963 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
4964 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
4965 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
4966 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
));
4968 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
4969 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
4970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4972 if (r
->text_status
) {
4973 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4974 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4975 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4976 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4977 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4978 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
));
4980 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4981 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4985 return NDR_ERR_SUCCESS
;
4988 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
4990 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
4992 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4993 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4995 if (r
->printer_name
) {
4996 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4999 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5001 if (r
->server_name
) {
5002 ndr_print_string(ndr
, "server_name", r
->server_name
);
5005 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5008 ndr_print_string(ndr
, "user_name", r
->user_name
);
5011 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5013 if (r
->document_name
) {
5014 ndr_print_string(ndr
, "document_name", r
->document_name
);
5017 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5019 if (r
->notify_name
) {
5020 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5023 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5026 ndr_print_string(ndr
, "data_type", r
->data_type
);
5029 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5031 if (r
->print_processor
) {
5032 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5035 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5037 if (r
->parameters
) {
5038 ndr_print_string(ndr
, "parameters", r
->parameters
);
5041 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5043 if (r
->driver_name
) {
5044 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5047 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5048 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5050 if (r
->text_status
) {
5051 ndr_print_string(ndr
, "text_status", r
->text_status
);
5054 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5055 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5056 ndr_print_uint32(ndr
, "priority", r
->priority
);
5057 ndr_print_uint32(ndr
, "position", r
->position
);
5058 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5059 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5060 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5061 ndr_print_uint32(ndr
, "size", r
->size
);
5062 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5063 ndr_print_uint32(ndr
, "time", r
->time
);
5064 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5068 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5070 if (ndr_flags
& NDR_SCALARS
) {
5071 NDR_CHECK(ndr_push_align(ndr
, 4));
5072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5073 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5074 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5077 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5078 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5079 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5080 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5081 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5083 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5085 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5092 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5097 if (ndr_flags
& NDR_BUFFERS
) {
5098 if (r
->printer_name
) {
5099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5102 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5104 if (r
->server_name
) {
5105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5108 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5114 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5116 if (r
->document_name
) {
5117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5120 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5122 if (r
->notify_name
) {
5123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5126 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5132 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5134 if (r
->print_processor
) {
5135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5138 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5140 if (r
->parameters
) {
5141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5144 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5146 if (r
->driver_name
) {
5147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5152 if (r
->text_status
) {
5153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5156 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5159 return NDR_ERR_SUCCESS
;
5162 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5164 uint32_t _ptr_printer_name
;
5165 TALLOC_CTX
*_mem_save_printer_name_0
;
5166 uint32_t _ptr_server_name
;
5167 TALLOC_CTX
*_mem_save_server_name_0
;
5168 uint32_t _ptr_user_name
;
5169 TALLOC_CTX
*_mem_save_user_name_0
;
5170 uint32_t _ptr_document_name
;
5171 TALLOC_CTX
*_mem_save_document_name_0
;
5172 uint32_t _ptr_notify_name
;
5173 TALLOC_CTX
*_mem_save_notify_name_0
;
5174 uint32_t _ptr_data_type
;
5175 TALLOC_CTX
*_mem_save_data_type_0
;
5176 uint32_t _ptr_print_processor
;
5177 TALLOC_CTX
*_mem_save_print_processor_0
;
5178 uint32_t _ptr_parameters
;
5179 TALLOC_CTX
*_mem_save_parameters_0
;
5180 uint32_t _ptr_driver_name
;
5181 TALLOC_CTX
*_mem_save_driver_name_0
;
5182 uint32_t _ptr_text_status
;
5183 TALLOC_CTX
*_mem_save_text_status_0
;
5184 if (ndr_flags
& NDR_SCALARS
) {
5185 NDR_CHECK(ndr_pull_align(ndr
, 4));
5186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5188 if (_ptr_printer_name
) {
5189 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5191 r
->printer_name
= NULL
;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5194 if (_ptr_server_name
) {
5195 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5197 r
->server_name
= NULL
;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5200 if (_ptr_user_name
) {
5201 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5203 r
->user_name
= NULL
;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5206 if (_ptr_document_name
) {
5207 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5209 r
->document_name
= NULL
;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5212 if (_ptr_notify_name
) {
5213 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5215 r
->notify_name
= NULL
;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5218 if (_ptr_data_type
) {
5219 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5221 r
->data_type
= NULL
;
5223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5224 if (_ptr_print_processor
) {
5225 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5227 r
->print_processor
= NULL
;
5229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5230 if (_ptr_parameters
) {
5231 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5233 r
->parameters
= NULL
;
5235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5236 if (_ptr_driver_name
) {
5237 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5239 r
->driver_name
= NULL
;
5241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5243 if (_ptr_text_status
) {
5244 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5246 r
->text_status
= NULL
;
5248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5251 if (r
->priority
> 99) {
5252 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5256 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5259 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5264 if (ndr_flags
& NDR_BUFFERS
) {
5265 if (r
->printer_name
) {
5266 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5267 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5270 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5271 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
));
5273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5277 if (r
->server_name
) {
5278 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5279 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5282 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5283 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
));
5285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5290 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5291 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5292 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5293 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5294 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5295 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
));
5297 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5298 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5301 if (r
->document_name
) {
5302 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5303 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5304 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5305 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5306 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5307 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
));
5309 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5313 if (r
->notify_name
) {
5314 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5315 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5316 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5317 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5318 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5319 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
));
5321 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5322 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5326 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5327 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5328 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5329 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5330 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5331 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
));
5333 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5334 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5337 if (r
->print_processor
) {
5338 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5339 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5340 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5341 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5342 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5343 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
));
5345 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5346 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5349 if (r
->parameters
) {
5350 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5351 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5352 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5353 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5354 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5355 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
));
5357 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5358 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5361 if (r
->driver_name
) {
5362 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5363 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5364 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5365 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5366 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5367 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
));
5369 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5370 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5373 if (r
->text_status
) {
5374 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5375 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5377 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5378 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5379 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
));
5381 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5382 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5386 return NDR_ERR_SUCCESS
;
5389 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5391 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5393 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5394 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5396 if (r
->printer_name
) {
5397 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5400 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5402 if (r
->server_name
) {
5403 ndr_print_string(ndr
, "server_name", r
->server_name
);
5406 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5409 ndr_print_string(ndr
, "user_name", r
->user_name
);
5412 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5414 if (r
->document_name
) {
5415 ndr_print_string(ndr
, "document_name", r
->document_name
);
5418 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5420 if (r
->notify_name
) {
5421 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5424 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5427 ndr_print_string(ndr
, "data_type", r
->data_type
);
5430 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5432 if (r
->print_processor
) {
5433 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5436 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5438 if (r
->parameters
) {
5439 ndr_print_string(ndr
, "parameters", r
->parameters
);
5442 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5444 if (r
->driver_name
) {
5445 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5448 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5449 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5451 if (r
->text_status
) {
5452 ndr_print_string(ndr
, "text_status", r
->text_status
);
5455 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5456 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5457 ndr_print_uint32(ndr
, "priority", r
->priority
);
5458 ndr_print_uint32(ndr
, "position", r
->position
);
5459 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5460 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5461 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5462 ndr_print_uint32(ndr
, "size", r
->size
);
5463 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5464 ndr_print_uint32(ndr
, "time", r
->time
);
5465 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5466 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5470 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5472 if (ndr_flags
& NDR_SCALARS
) {
5473 int level
= ndr_push_get_switch_value(ndr
, r
);
5474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5497 if (ndr_flags
& NDR_BUFFERS
) {
5498 int level
= ndr_push_get_switch_value(ndr
, r
);
5502 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5508 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5514 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5520 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5529 return NDR_ERR_SUCCESS
;
5532 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
5536 TALLOC_CTX
*_mem_save_info1_0
;
5537 TALLOC_CTX
*_mem_save_info2_0
;
5538 TALLOC_CTX
*_mem_save_info3_0
;
5539 TALLOC_CTX
*_mem_save_info4_0
;
5540 level
= ndr_pull_get_switch_value(ndr
, r
);
5541 if (ndr_flags
& NDR_SCALARS
) {
5542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5543 if (_level
!= level
) {
5544 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5548 uint32_t _ptr_info1
;
5549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5551 NDR_PULL_ALLOC(ndr
, r
->info1
);
5558 uint32_t _ptr_info2
;
5559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5561 NDR_PULL_ALLOC(ndr
, r
->info2
);
5568 uint32_t _ptr_info3
;
5569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5571 NDR_PULL_ALLOC(ndr
, r
->info3
);
5578 uint32_t _ptr_info4
;
5579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5581 NDR_PULL_ALLOC(ndr
, r
->info4
);
5592 if (ndr_flags
& NDR_BUFFERS
) {
5596 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5597 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5598 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5605 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5606 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5607 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5614 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5615 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5616 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5623 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5624 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5625 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5635 return NDR_ERR_SUCCESS
;
5638 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
5641 level
= ndr_print_get_switch_value(ndr
, r
);
5642 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
5645 ndr_print_ptr(ndr
, "info1", r
->info1
);
5648 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
5654 ndr_print_ptr(ndr
, "info2", r
->info2
);
5657 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
5663 ndr_print_ptr(ndr
, "info3", r
->info3
);
5666 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
5672 ndr_print_ptr(ndr
, "info4", r
->info4
);
5675 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
5686 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
5688 if (ndr_flags
& NDR_SCALARS
) {
5689 NDR_CHECK(ndr_push_align(ndr
, 4));
5690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5691 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5692 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5694 if (ndr_flags
& NDR_BUFFERS
) {
5695 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5697 return NDR_ERR_SUCCESS
;
5700 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
5702 if (ndr_flags
& NDR_SCALARS
) {
5703 NDR_CHECK(ndr_pull_align(ndr
, 4));
5704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
5705 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
5706 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5708 if (ndr_flags
& NDR_BUFFERS
) {
5709 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5711 return NDR_ERR_SUCCESS
;
5714 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
5716 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
5718 ndr_print_uint32(ndr
, "level", r
->level
);
5719 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
5720 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
5724 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
5726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5727 return NDR_ERR_SUCCESS
;
5730 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
5733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5735 return NDR_ERR_SUCCESS
;
5738 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
5740 const char *val
= NULL
;
5743 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5744 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
5745 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5746 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
5747 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
5748 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5749 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5750 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5751 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5753 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5756 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
5758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5759 return NDR_ERR_SUCCESS
;
5762 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
5765 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5767 return NDR_ERR_SUCCESS
;
5770 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
5772 const char *val
= NULL
;
5775 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5776 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5777 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5778 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5779 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5781 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5784 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
5786 if (ndr_flags
& NDR_SCALARS
) {
5787 NDR_CHECK(ndr_push_align(ndr
, 4));
5788 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
5793 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
5795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
5797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
5798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
5799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
5800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
5801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
5802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
5803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
5804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
5805 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
5806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
5807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
5808 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
5809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
5810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
5811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
5812 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
5813 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
5814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
5815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
5816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
5818 if (ndr_flags
& NDR_BUFFERS
) {
5819 if (r
->servername
) {
5820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5823 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5825 if (r
->printername
) {
5826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5829 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5832 return NDR_ERR_SUCCESS
;
5835 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
5837 uint32_t _ptr_servername
;
5838 TALLOC_CTX
*_mem_save_servername_0
;
5839 uint32_t _ptr_printername
;
5840 TALLOC_CTX
*_mem_save_printername_0
;
5841 if (ndr_flags
& NDR_SCALARS
) {
5842 NDR_CHECK(ndr_pull_align(ndr
, 4));
5843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
5844 if (_ptr_servername
) {
5845 NDR_PULL_ALLOC(ndr
, r
->servername
);
5847 r
->servername
= NULL
;
5849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5850 if (_ptr_printername
) {
5851 NDR_PULL_ALLOC(ndr
, r
->printername
);
5853 r
->printername
= NULL
;
5855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
5856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
5857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
5858 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5859 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
5860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
5862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
5863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
5864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
5865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
5866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
5867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
5868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
5869 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
5870 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
5871 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
5872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
5873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
5874 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
5875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
5876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
5877 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
5878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
5879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
5880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
5881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
5883 if (ndr_flags
& NDR_BUFFERS
) {
5884 if (r
->servername
) {
5885 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5886 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
5887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
5888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
5889 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
5890 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
));
5892 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
5893 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
5894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
5896 if (r
->printername
) {
5897 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5898 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5899 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5900 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5901 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5902 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
));
5904 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5905 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5909 return NDR_ERR_SUCCESS
;
5912 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
5914 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
5916 ndr_print_ptr(ndr
, "servername", r
->servername
);
5918 if (r
->servername
) {
5919 ndr_print_string(ndr
, "servername", r
->servername
);
5922 ndr_print_ptr(ndr
, "printername", r
->printername
);
5924 if (r
->printername
) {
5925 ndr_print_string(ndr
, "printername", r
->printername
);
5928 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
5929 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
5930 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
5931 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
5932 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
5933 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5934 ndr_print_uint32(ndr
, "version", r
->version
);
5935 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
5936 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
5937 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
5938 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
5939 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
5940 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
5941 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
5942 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
5943 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
5944 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
5945 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
5946 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
5947 ndr_print_uint32(ndr
, "status", r
->status
);
5948 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
5949 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
5950 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
5951 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
5952 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
5953 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
5954 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
5958 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
5960 if (ndr_flags
& NDR_SCALARS
) {
5961 NDR_CHECK(ndr_push_align(ndr
, 4));
5962 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
5963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
5964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
5965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
5967 if (ndr_flags
& NDR_BUFFERS
) {
5969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5972 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5974 if (r
->description
) {
5975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5978 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5984 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5987 return NDR_ERR_SUCCESS
;
5990 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
5993 TALLOC_CTX
*_mem_save_name_0
;
5994 uint32_t _ptr_description
;
5995 TALLOC_CTX
*_mem_save_description_0
;
5996 uint32_t _ptr_comment
;
5997 TALLOC_CTX
*_mem_save_comment_0
;
5998 if (ndr_flags
& NDR_SCALARS
) {
5999 NDR_CHECK(ndr_pull_align(ndr
, 4));
6000 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6003 NDR_PULL_ALLOC(ndr
, r
->name
);
6007 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6008 if (_ptr_description
) {
6009 NDR_PULL_ALLOC(ndr
, r
->description
);
6011 r
->description
= NULL
;
6013 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6015 NDR_PULL_ALLOC(ndr
, r
->comment
);
6020 if (ndr_flags
& NDR_BUFFERS
) {
6022 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6023 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6024 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6025 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6026 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
6027 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
));
6029 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
6030 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
6031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6033 if (r
->description
) {
6034 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6035 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6036 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6037 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6038 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
6039 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
));
6041 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
6042 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
6043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6046 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6047 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6048 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6049 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6050 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6051 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
));
6053 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6058 return NDR_ERR_SUCCESS
;
6061 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6063 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6065 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
6066 ndr_print_ptr(ndr
, "name", r
->name
);
6069 ndr_print_string(ndr
, "name", r
->name
);
6072 ndr_print_ptr(ndr
, "description", r
->description
);
6074 if (r
->description
) {
6075 ndr_print_string(ndr
, "description", r
->description
);
6078 ndr_print_ptr(ndr
, "comment", r
->comment
);
6081 ndr_print_string(ndr
, "comment", r
->comment
);
6087 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6089 if (ndr_flags
& NDR_SCALARS
) {
6090 NDR_CHECK(ndr_push_align(ndr
, 4));
6091 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6093 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6095 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6097 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6099 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6104 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6109 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6113 if (ndr_flags
& NDR_BUFFERS
) {
6114 if (r
->servername
) {
6115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6118 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6120 if (r
->printername
) {
6121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6124 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6130 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6136 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6138 if (r
->drivername
) {
6139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6142 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6148 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6154 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6158 struct ndr_push
*_ndr_devmode
;
6159 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6160 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6161 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6170 if (r
->printprocessor
) {
6171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6174 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6180 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6182 if (r
->parameters
) {
6183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6190 struct ndr_push
*_ndr_secdesc
;
6191 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6192 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6193 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6197 return NDR_ERR_SUCCESS
;
6200 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6202 uint32_t _ptr_servername
;
6203 TALLOC_CTX
*_mem_save_servername_0
;
6204 uint32_t _ptr_printername
;
6205 TALLOC_CTX
*_mem_save_printername_0
;
6206 uint32_t _ptr_sharename
;
6207 TALLOC_CTX
*_mem_save_sharename_0
;
6208 uint32_t _ptr_portname
;
6209 TALLOC_CTX
*_mem_save_portname_0
;
6210 uint32_t _ptr_drivername
;
6211 TALLOC_CTX
*_mem_save_drivername_0
;
6212 uint32_t _ptr_comment
;
6213 TALLOC_CTX
*_mem_save_comment_0
;
6214 uint32_t _ptr_location
;
6215 TALLOC_CTX
*_mem_save_location_0
;
6216 uint32_t _ptr_devmode
;
6217 TALLOC_CTX
*_mem_save_devmode_0
;
6218 uint32_t _ptr_sepfile
;
6219 TALLOC_CTX
*_mem_save_sepfile_0
;
6220 uint32_t _ptr_printprocessor
;
6221 TALLOC_CTX
*_mem_save_printprocessor_0
;
6222 uint32_t _ptr_datatype
;
6223 TALLOC_CTX
*_mem_save_datatype_0
;
6224 uint32_t _ptr_parameters
;
6225 TALLOC_CTX
*_mem_save_parameters_0
;
6226 uint32_t _ptr_secdesc
;
6227 TALLOC_CTX
*_mem_save_secdesc_0
;
6228 if (ndr_flags
& NDR_SCALARS
) {
6229 NDR_CHECK(ndr_pull_align(ndr
, 4));
6230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6231 if (_ptr_servername
) {
6232 NDR_PULL_ALLOC(ndr
, r
->servername
);
6234 r
->servername
= NULL
;
6236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6237 if (_ptr_printername
) {
6238 NDR_PULL_ALLOC(ndr
, r
->printername
);
6240 r
->printername
= NULL
;
6242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6243 if (_ptr_sharename
) {
6244 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6246 r
->sharename
= NULL
;
6248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6249 if (_ptr_portname
) {
6250 NDR_PULL_ALLOC(ndr
, r
->portname
);
6254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6255 if (_ptr_drivername
) {
6256 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6258 r
->drivername
= NULL
;
6260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6262 NDR_PULL_ALLOC(ndr
, r
->comment
);
6266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6267 if (_ptr_location
) {
6268 NDR_PULL_ALLOC(ndr
, r
->location
);
6272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6274 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6280 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6285 if (_ptr_printprocessor
) {
6286 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6288 r
->printprocessor
= NULL
;
6290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6291 if (_ptr_datatype
) {
6292 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6296 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6297 if (_ptr_parameters
) {
6298 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6300 r
->parameters
= NULL
;
6302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6304 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6308 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6309 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6310 if (r
->priority
> 99) {
6311 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6316 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6320 if (ndr_flags
& NDR_BUFFERS
) {
6321 if (r
->servername
) {
6322 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6323 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6324 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6325 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6326 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6327 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
));
6329 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6330 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6333 if (r
->printername
) {
6334 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6335 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6336 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6337 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6338 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6339 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
));
6341 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6342 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6346 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6347 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6350 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6351 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
));
6353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6358 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6359 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6362 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6363 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
));
6365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6369 if (r
->drivername
) {
6370 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6371 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6372 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6373 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6374 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6375 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
));
6377 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6378 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6382 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6383 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6386 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6387 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
));
6389 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6390 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6394 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6395 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6396 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6397 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6398 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6399 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
));
6401 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6402 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6406 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6407 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6409 struct ndr_pull
*_ndr_devmode
;
6410 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6411 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6412 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6417 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6418 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6419 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6420 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6421 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6422 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
));
6424 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6425 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6428 if (r
->printprocessor
) {
6429 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6430 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6431 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6432 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6433 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6434 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
));
6436 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6437 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6441 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6442 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6443 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6444 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6445 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6446 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
));
6448 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6449 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6452 if (r
->parameters
) {
6453 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6454 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6455 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6456 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6457 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6458 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
));
6460 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6461 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6465 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6466 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6468 struct ndr_pull
*_ndr_secdesc
;
6469 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6470 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6471 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6476 return NDR_ERR_SUCCESS
;
6479 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6481 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6483 ndr_print_ptr(ndr
, "servername", r
->servername
);
6485 if (r
->servername
) {
6486 ndr_print_string(ndr
, "servername", r
->servername
);
6489 ndr_print_ptr(ndr
, "printername", r
->printername
);
6491 if (r
->printername
) {
6492 ndr_print_string(ndr
, "printername", r
->printername
);
6495 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6498 ndr_print_string(ndr
, "sharename", r
->sharename
);
6501 ndr_print_ptr(ndr
, "portname", r
->portname
);
6504 ndr_print_string(ndr
, "portname", r
->portname
);
6507 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6509 if (r
->drivername
) {
6510 ndr_print_string(ndr
, "drivername", r
->drivername
);
6513 ndr_print_ptr(ndr
, "comment", r
->comment
);
6516 ndr_print_string(ndr
, "comment", r
->comment
);
6519 ndr_print_ptr(ndr
, "location", r
->location
);
6522 ndr_print_string(ndr
, "location", r
->location
);
6525 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
6528 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
6531 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
6534 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
6537 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
6539 if (r
->printprocessor
) {
6540 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
6543 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
6546 ndr_print_string(ndr
, "datatype", r
->datatype
);
6549 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6551 if (r
->parameters
) {
6552 ndr_print_string(ndr
, "parameters", r
->parameters
);
6555 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
6558 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
6561 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6562 ndr_print_uint32(ndr
, "priority", r
->priority
);
6563 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
6564 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
6565 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
6566 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6567 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6568 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
6572 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
6574 if (ndr_flags
& NDR_SCALARS
) {
6575 NDR_CHECK(ndr_push_align(ndr
, 4));
6576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
6578 if (ndr_flags
& NDR_BUFFERS
) {
6580 return NDR_ERR_SUCCESS
;
6583 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
6585 if (ndr_flags
& NDR_SCALARS
) {
6586 NDR_CHECK(ndr_pull_align(ndr
, 4));
6587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
6589 if (ndr_flags
& NDR_BUFFERS
) {
6591 return NDR_ERR_SUCCESS
;
6594 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
6596 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
6598 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
6602 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
6604 if (ndr_flags
& NDR_SCALARS
) {
6605 NDR_CHECK(ndr_push_align(ndr
, 4));
6606 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6608 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6610 if (ndr_flags
& NDR_BUFFERS
) {
6611 if (r
->printername
) {
6612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6615 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6617 if (r
->servername
) {
6618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6621 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6624 return NDR_ERR_SUCCESS
;
6627 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
6629 uint32_t _ptr_printername
;
6630 TALLOC_CTX
*_mem_save_printername_0
;
6631 uint32_t _ptr_servername
;
6632 TALLOC_CTX
*_mem_save_servername_0
;
6633 if (ndr_flags
& NDR_SCALARS
) {
6634 NDR_CHECK(ndr_pull_align(ndr
, 4));
6635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6636 if (_ptr_printername
) {
6637 NDR_PULL_ALLOC(ndr
, r
->printername
);
6639 r
->printername
= NULL
;
6641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6642 if (_ptr_servername
) {
6643 NDR_PULL_ALLOC(ndr
, r
->servername
);
6645 r
->servername
= NULL
;
6647 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6649 if (ndr_flags
& NDR_BUFFERS
) {
6650 if (r
->printername
) {
6651 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6652 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6653 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6654 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6655 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6656 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
));
6658 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6659 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6662 if (r
->servername
) {
6663 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6664 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6665 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6666 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6667 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6668 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
));
6670 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6671 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6675 return NDR_ERR_SUCCESS
;
6678 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
6680 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
6682 ndr_print_ptr(ndr
, "printername", r
->printername
);
6684 if (r
->printername
) {
6685 ndr_print_string(ndr
, "printername", r
->printername
);
6688 ndr_print_ptr(ndr
, "servername", r
->servername
);
6690 if (r
->servername
) {
6691 ndr_print_string(ndr
, "servername", r
->servername
);
6694 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6698 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
6700 if (ndr_flags
& NDR_SCALARS
) {
6701 NDR_CHECK(ndr_push_align(ndr
, 4));
6702 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6703 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6704 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
6706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
6708 if (ndr_flags
& NDR_BUFFERS
) {
6709 if (r
->printername
) {
6710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6713 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6719 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6722 return NDR_ERR_SUCCESS
;
6725 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
6727 uint32_t _ptr_printername
;
6728 TALLOC_CTX
*_mem_save_printername_0
;
6729 uint32_t _ptr_portname
;
6730 TALLOC_CTX
*_mem_save_portname_0
;
6731 if (ndr_flags
& NDR_SCALARS
) {
6732 NDR_CHECK(ndr_pull_align(ndr
, 4));
6733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6734 if (_ptr_printername
) {
6735 NDR_PULL_ALLOC(ndr
, r
->printername
);
6737 r
->printername
= NULL
;
6739 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6740 if (_ptr_portname
) {
6741 NDR_PULL_ALLOC(ndr
, r
->portname
);
6745 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
6747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
6749 if (ndr_flags
& NDR_BUFFERS
) {
6750 if (r
->printername
) {
6751 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6752 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6753 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6754 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6755 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6756 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
));
6758 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6759 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6763 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6764 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6765 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6766 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6767 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6768 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
));
6770 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6771 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6775 return NDR_ERR_SUCCESS
;
6778 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
6780 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
6782 ndr_print_ptr(ndr
, "printername", r
->printername
);
6784 if (r
->printername
) {
6785 ndr_print_string(ndr
, "printername", r
->printername
);
6788 ndr_print_ptr(ndr
, "portname", r
->portname
);
6791 ndr_print_string(ndr
, "portname", r
->portname
);
6794 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6795 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
6796 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
6800 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
6802 if (ndr_flags
& NDR_SCALARS
) {
6803 NDR_CHECK(ndr_push_align(ndr
, 4));
6804 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6806 if (ndr_flags
& NDR_BUFFERS
) {
6808 return NDR_ERR_SUCCESS
;
6811 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
6813 if (ndr_flags
& NDR_SCALARS
) {
6814 NDR_CHECK(ndr_pull_align(ndr
, 4));
6815 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6817 if (ndr_flags
& NDR_BUFFERS
) {
6819 return NDR_ERR_SUCCESS
;
6822 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
6824 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
6826 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6830 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
6832 if (ndr_flags
& NDR_SCALARS
) {
6833 NDR_CHECK(ndr_push_align(ndr
, 4));
6834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
6835 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
6837 if (ndr_flags
& NDR_BUFFERS
) {
6839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6842 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6845 return NDR_ERR_SUCCESS
;
6848 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
6851 TALLOC_CTX
*_mem_save_guid_0
;
6852 if (ndr_flags
& NDR_SCALARS
) {
6853 NDR_CHECK(ndr_pull_align(ndr
, 4));
6854 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
6856 NDR_PULL_ALLOC(ndr
, r
->guid
);
6860 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
6862 if (ndr_flags
& NDR_BUFFERS
) {
6864 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6865 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
6866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
6867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
6868 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
6869 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
));
6871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
6872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
6873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
6876 return NDR_ERR_SUCCESS
;
6879 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
6881 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
6883 ndr_print_ptr(ndr
, "guid", r
->guid
);
6886 ndr_print_string(ndr
, "guid", r
->guid
);
6889 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
6893 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
6895 if (ndr_flags
& NDR_SCALARS
) {
6896 int level
= ndr_push_get_switch_value(ndr
, r
);
6897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6900 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6908 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6912 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6916 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6920 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
6924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
6928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
6932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
6936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
6944 if (ndr_flags
& NDR_BUFFERS
) {
6945 int level
= ndr_push_get_switch_value(ndr
, r
);
6949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
6955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6973 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
6985 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
6991 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
6997 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7003 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7012 return NDR_ERR_SUCCESS
;
7015 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7019 TALLOC_CTX
*_mem_save_info0_0
;
7020 TALLOC_CTX
*_mem_save_info1_0
;
7021 TALLOC_CTX
*_mem_save_info2_0
;
7022 TALLOC_CTX
*_mem_save_info3_0
;
7023 TALLOC_CTX
*_mem_save_info4_0
;
7024 TALLOC_CTX
*_mem_save_info5_0
;
7025 TALLOC_CTX
*_mem_save_info6_0
;
7026 TALLOC_CTX
*_mem_save_info7_0
;
7027 TALLOC_CTX
*_mem_save_info8_0
;
7028 TALLOC_CTX
*_mem_save_info9_0
;
7029 level
= ndr_pull_get_switch_value(ndr
, r
);
7030 if (ndr_flags
& NDR_SCALARS
) {
7031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7032 if (_level
!= level
) {
7033 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7037 uint32_t _ptr_info0
;
7038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7040 NDR_PULL_ALLOC(ndr
, r
->info0
);
7047 uint32_t _ptr_info1
;
7048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7050 NDR_PULL_ALLOC(ndr
, r
->info1
);
7057 uint32_t _ptr_info2
;
7058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7060 NDR_PULL_ALLOC(ndr
, r
->info2
);
7067 uint32_t _ptr_info3
;
7068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7070 NDR_PULL_ALLOC(ndr
, r
->info3
);
7077 uint32_t _ptr_info4
;
7078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7080 NDR_PULL_ALLOC(ndr
, r
->info4
);
7087 uint32_t _ptr_info5
;
7088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7090 NDR_PULL_ALLOC(ndr
, r
->info5
);
7097 uint32_t _ptr_info6
;
7098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7100 NDR_PULL_ALLOC(ndr
, r
->info6
);
7107 uint32_t _ptr_info7
;
7108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7110 NDR_PULL_ALLOC(ndr
, r
->info7
);
7117 uint32_t _ptr_info8
;
7118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7120 NDR_PULL_ALLOC(ndr
, r
->info8
);
7127 uint32_t _ptr_info9
;
7128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7130 NDR_PULL_ALLOC(ndr
, r
->info9
);
7141 if (ndr_flags
& NDR_BUFFERS
) {
7145 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7146 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7147 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7154 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7155 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7156 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7163 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7164 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7165 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7172 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7173 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7174 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7181 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7182 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7183 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7190 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7191 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7192 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7199 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7200 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7201 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7208 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7209 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7210 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7217 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7218 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7219 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7226 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7227 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7228 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7238 return NDR_ERR_SUCCESS
;
7241 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7244 level
= ndr_print_get_switch_value(ndr
, r
);
7245 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7248 ndr_print_ptr(ndr
, "info0", r
->info0
);
7251 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7257 ndr_print_ptr(ndr
, "info1", r
->info1
);
7260 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7266 ndr_print_ptr(ndr
, "info2", r
->info2
);
7269 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7275 ndr_print_ptr(ndr
, "info3", r
->info3
);
7278 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7284 ndr_print_ptr(ndr
, "info4", r
->info4
);
7287 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7293 ndr_print_ptr(ndr
, "info5", r
->info5
);
7296 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7302 ndr_print_ptr(ndr
, "info6", r
->info6
);
7305 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7311 ndr_print_ptr(ndr
, "info7", r
->info7
);
7314 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7320 ndr_print_ptr(ndr
, "info8", r
->info8
);
7323 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7329 ndr_print_ptr(ndr
, "info9", r
->info9
);
7332 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7343 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7345 if (ndr_flags
& NDR_SCALARS
) {
7346 NDR_CHECK(ndr_push_align(ndr
, 4));
7347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7348 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7349 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7351 if (ndr_flags
& NDR_BUFFERS
) {
7352 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7354 return NDR_ERR_SUCCESS
;
7357 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7359 if (ndr_flags
& NDR_SCALARS
) {
7360 NDR_CHECK(ndr_pull_align(ndr
, 4));
7361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7362 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7363 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7365 if (ndr_flags
& NDR_BUFFERS
) {
7366 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7368 return NDR_ERR_SUCCESS
;
7371 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7373 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7375 ndr_print_uint32(ndr
, "level", r
->level
);
7376 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7377 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7381 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7383 if (ndr_flags
& NDR_SCALARS
) {
7384 NDR_CHECK(ndr_push_align(ndr
, 4));
7385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7387 uint32_t _flags_save_string_array
= ndr
->flags
;
7388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7389 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7390 ndr
->flags
= _flags_save_string_array
;
7393 if (ndr_flags
& NDR_BUFFERS
) {
7395 return NDR_ERR_SUCCESS
;
7398 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7400 if (ndr_flags
& NDR_SCALARS
) {
7401 NDR_CHECK(ndr_pull_align(ndr
, 4));
7402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7404 uint32_t _flags_save_string_array
= ndr
->flags
;
7405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7406 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7407 ndr
->flags
= _flags_save_string_array
;
7410 if (ndr_flags
& NDR_BUFFERS
) {
7412 return NDR_ERR_SUCCESS
;
7415 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7417 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7419 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
);
7420 ndr_print_string_array(ndr
, "string", r
->string
);
7424 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7426 if (ndr_flags
& NDR_SCALARS
) {
7427 NDR_CHECK(ndr_push_align(ndr
, 4));
7428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7430 if (ndr_flags
& NDR_BUFFERS
) {
7431 if (r
->driver_name
) {
7432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7435 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7438 return NDR_ERR_SUCCESS
;
7441 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7443 uint32_t _ptr_driver_name
;
7444 TALLOC_CTX
*_mem_save_driver_name_0
;
7445 if (ndr_flags
& NDR_SCALARS
) {
7446 NDR_CHECK(ndr_pull_align(ndr
, 4));
7447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7448 if (_ptr_driver_name
) {
7449 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7451 r
->driver_name
= NULL
;
7454 if (ndr_flags
& NDR_BUFFERS
) {
7455 if (r
->driver_name
) {
7456 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7457 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7459 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7460 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7461 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
));
7463 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7464 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7468 return NDR_ERR_SUCCESS
;
7471 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
7473 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
7475 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7477 if (r
->driver_name
) {
7478 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7484 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
7486 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7487 return NDR_ERR_SUCCESS
;
7490 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
7493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7495 return NDR_ERR_SUCCESS
;
7498 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
7500 const char *val
= NULL
;
7503 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
7504 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
7505 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
7506 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
7508 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7511 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
7513 if (ndr_flags
& NDR_SCALARS
) {
7514 NDR_CHECK(ndr_push_align(ndr
, 4));
7515 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7522 if (ndr_flags
& NDR_BUFFERS
) {
7523 if (r
->driver_name
) {
7524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7527 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7529 if (r
->architecture
) {
7530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7533 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7535 if (r
->driver_path
) {
7536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7539 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7545 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7547 if (r
->config_file
) {
7548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7551 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7554 return NDR_ERR_SUCCESS
;
7557 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
7559 uint32_t _ptr_driver_name
;
7560 TALLOC_CTX
*_mem_save_driver_name_0
;
7561 uint32_t _ptr_architecture
;
7562 TALLOC_CTX
*_mem_save_architecture_0
;
7563 uint32_t _ptr_driver_path
;
7564 TALLOC_CTX
*_mem_save_driver_path_0
;
7565 uint32_t _ptr_data_file
;
7566 TALLOC_CTX
*_mem_save_data_file_0
;
7567 uint32_t _ptr_config_file
;
7568 TALLOC_CTX
*_mem_save_config_file_0
;
7569 if (ndr_flags
& NDR_SCALARS
) {
7570 NDR_CHECK(ndr_pull_align(ndr
, 4));
7571 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7573 if (_ptr_driver_name
) {
7574 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7576 r
->driver_name
= NULL
;
7578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7579 if (_ptr_architecture
) {
7580 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7582 r
->architecture
= NULL
;
7584 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7585 if (_ptr_driver_path
) {
7586 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7588 r
->driver_path
= NULL
;
7590 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7591 if (_ptr_data_file
) {
7592 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7594 r
->data_file
= NULL
;
7596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7597 if (_ptr_config_file
) {
7598 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7600 r
->config_file
= NULL
;
7603 if (ndr_flags
& NDR_BUFFERS
) {
7604 if (r
->driver_name
) {
7605 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7606 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7609 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7610 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
));
7612 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7613 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7616 if (r
->architecture
) {
7617 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7618 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7621 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7622 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
));
7624 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7628 if (r
->driver_path
) {
7629 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7630 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7631 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7632 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7633 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7634 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
));
7636 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7637 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7641 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7642 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7643 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7644 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7645 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7646 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
));
7648 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7649 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7652 if (r
->config_file
) {
7653 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7654 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7655 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7656 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7657 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7658 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
));
7660 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7661 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7665 return NDR_ERR_SUCCESS
;
7668 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
7670 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
7672 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7673 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7675 if (r
->driver_name
) {
7676 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7679 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7681 if (r
->architecture
) {
7682 ndr_print_string(ndr
, "architecture", r
->architecture
);
7685 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7687 if (r
->driver_path
) {
7688 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7691 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7694 ndr_print_string(ndr
, "data_file", r
->data_file
);
7697 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7699 if (r
->config_file
) {
7700 ndr_print_string(ndr
, "config_file", r
->config_file
);
7706 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
7708 if (ndr_flags
& NDR_SCALARS
) {
7709 NDR_CHECK(ndr_push_align(ndr
, 4));
7710 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7712 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7715 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7716 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7717 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7718 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7722 if (ndr_flags
& NDR_BUFFERS
) {
7723 if (r
->driver_name
) {
7724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7727 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7729 if (r
->architecture
) {
7730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7733 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7735 if (r
->driver_path
) {
7736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7739 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7745 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7747 if (r
->config_file
) {
7748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7751 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7757 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7759 if (r
->monitor_name
) {
7760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7763 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7765 if (r
->default_datatype
) {
7766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7769 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7771 if (r
->dependent_files
) {
7772 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7775 return NDR_ERR_SUCCESS
;
7778 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
7780 uint32_t _ptr_driver_name
;
7781 TALLOC_CTX
*_mem_save_driver_name_0
;
7782 uint32_t _ptr_architecture
;
7783 TALLOC_CTX
*_mem_save_architecture_0
;
7784 uint32_t _ptr_driver_path
;
7785 TALLOC_CTX
*_mem_save_driver_path_0
;
7786 uint32_t _ptr_data_file
;
7787 TALLOC_CTX
*_mem_save_data_file_0
;
7788 uint32_t _ptr_config_file
;
7789 TALLOC_CTX
*_mem_save_config_file_0
;
7790 uint32_t _ptr_help_file
;
7791 TALLOC_CTX
*_mem_save_help_file_0
;
7792 uint32_t _ptr_monitor_name
;
7793 TALLOC_CTX
*_mem_save_monitor_name_0
;
7794 uint32_t _ptr_default_datatype
;
7795 TALLOC_CTX
*_mem_save_default_datatype_0
;
7796 uint32_t _ptr_dependent_files
;
7797 TALLOC_CTX
*_mem_save_dependent_files_0
;
7798 if (ndr_flags
& NDR_SCALARS
) {
7799 NDR_CHECK(ndr_pull_align(ndr
, 4));
7800 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7802 if (_ptr_driver_name
) {
7803 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7805 r
->driver_name
= NULL
;
7807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7808 if (_ptr_architecture
) {
7809 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7811 r
->architecture
= NULL
;
7813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7814 if (_ptr_driver_path
) {
7815 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7817 r
->driver_path
= NULL
;
7819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7820 if (_ptr_data_file
) {
7821 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7823 r
->data_file
= NULL
;
7825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7826 if (_ptr_config_file
) {
7827 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7829 r
->config_file
= NULL
;
7831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7832 if (_ptr_help_file
) {
7833 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7835 r
->help_file
= NULL
;
7837 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7838 if (_ptr_monitor_name
) {
7839 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7841 r
->monitor_name
= NULL
;
7843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7844 if (_ptr_default_datatype
) {
7845 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7847 r
->default_datatype
= NULL
;
7849 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7851 if (_ptr_dependent_files
) {
7852 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7854 r
->dependent_files
= NULL
;
7857 if (ndr_flags
& NDR_BUFFERS
) {
7858 if (r
->driver_name
) {
7859 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7860 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7861 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7862 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7863 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7864 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
));
7866 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7867 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7870 if (r
->architecture
) {
7871 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7872 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7873 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7874 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7875 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7876 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
));
7878 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7879 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7882 if (r
->driver_path
) {
7883 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7884 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7887 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7888 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
));
7890 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7891 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7895 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7896 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7897 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7898 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7899 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7900 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
));
7902 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7903 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7906 if (r
->config_file
) {
7907 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7908 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7909 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7910 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7911 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7912 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
));
7914 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7915 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7919 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7920 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7922 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7923 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7924 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
));
7926 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7930 if (r
->monitor_name
) {
7931 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7932 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7933 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7934 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7935 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7936 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
));
7938 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7939 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7942 if (r
->default_datatype
) {
7943 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7944 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7945 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7946 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7947 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7948 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
));
7950 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7951 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7954 if (r
->dependent_files
) {
7955 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7956 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7957 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7961 return NDR_ERR_SUCCESS
;
7964 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
7966 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
7968 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7969 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7971 if (r
->driver_name
) {
7972 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7975 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7977 if (r
->architecture
) {
7978 ndr_print_string(ndr
, "architecture", r
->architecture
);
7981 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7983 if (r
->driver_path
) {
7984 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7987 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7990 ndr_print_string(ndr
, "data_file", r
->data_file
);
7993 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7995 if (r
->config_file
) {
7996 ndr_print_string(ndr
, "config_file", r
->config_file
);
7999 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8002 ndr_print_string(ndr
, "help_file", r
->help_file
);
8005 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8007 if (r
->monitor_name
) {
8008 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8011 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8013 if (r
->default_datatype
) {
8014 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8017 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
);
8018 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8020 if (r
->dependent_files
) {
8021 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8027 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8029 if (ndr_flags
& NDR_SCALARS
) {
8030 NDR_CHECK(ndr_push_align(ndr
, 4));
8031 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8045 if (ndr_flags
& NDR_BUFFERS
) {
8046 if (r
->driver_name
) {
8047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8050 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8052 if (r
->architecture
) {
8053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8058 if (r
->driver_path
) {
8059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8070 if (r
->config_file
) {
8071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8074 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8082 if (r
->monitor_name
) {
8083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8086 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8088 if (r
->default_datatype
) {
8089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8092 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8094 if (r
->dependent_files
) {
8095 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8097 if (r
->previous_names
) {
8098 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8101 return NDR_ERR_SUCCESS
;
8104 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8106 uint32_t _ptr_driver_name
;
8107 TALLOC_CTX
*_mem_save_driver_name_0
;
8108 uint32_t _ptr_architecture
;
8109 TALLOC_CTX
*_mem_save_architecture_0
;
8110 uint32_t _ptr_driver_path
;
8111 TALLOC_CTX
*_mem_save_driver_path_0
;
8112 uint32_t _ptr_data_file
;
8113 TALLOC_CTX
*_mem_save_data_file_0
;
8114 uint32_t _ptr_config_file
;
8115 TALLOC_CTX
*_mem_save_config_file_0
;
8116 uint32_t _ptr_help_file
;
8117 TALLOC_CTX
*_mem_save_help_file_0
;
8118 uint32_t _ptr_monitor_name
;
8119 TALLOC_CTX
*_mem_save_monitor_name_0
;
8120 uint32_t _ptr_default_datatype
;
8121 TALLOC_CTX
*_mem_save_default_datatype_0
;
8122 uint32_t _ptr_dependent_files
;
8123 TALLOC_CTX
*_mem_save_dependent_files_0
;
8124 uint32_t _ptr_previous_names
;
8125 TALLOC_CTX
*_mem_save_previous_names_0
;
8126 if (ndr_flags
& NDR_SCALARS
) {
8127 NDR_CHECK(ndr_pull_align(ndr
, 4));
8128 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8130 if (_ptr_driver_name
) {
8131 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8133 r
->driver_name
= NULL
;
8135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8136 if (_ptr_architecture
) {
8137 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8139 r
->architecture
= NULL
;
8141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8142 if (_ptr_driver_path
) {
8143 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8145 r
->driver_path
= NULL
;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8148 if (_ptr_data_file
) {
8149 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8151 r
->data_file
= NULL
;
8153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8154 if (_ptr_config_file
) {
8155 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8157 r
->config_file
= NULL
;
8159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8160 if (_ptr_help_file
) {
8161 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8163 r
->help_file
= NULL
;
8165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8166 if (_ptr_monitor_name
) {
8167 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8169 r
->monitor_name
= NULL
;
8171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8172 if (_ptr_default_datatype
) {
8173 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8175 r
->default_datatype
= NULL
;
8177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8178 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8179 if (_ptr_dependent_files
) {
8180 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8182 r
->dependent_files
= NULL
;
8184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8186 if (_ptr_previous_names
) {
8187 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8189 r
->previous_names
= NULL
;
8192 if (ndr_flags
& NDR_BUFFERS
) {
8193 if (r
->driver_name
) {
8194 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8195 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8198 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8199 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
));
8201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8205 if (r
->architecture
) {
8206 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8207 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8209 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8210 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8211 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
));
8213 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8217 if (r
->driver_path
) {
8218 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8219 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8221 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8222 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8223 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
));
8225 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8230 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8231 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8233 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8234 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8235 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
));
8237 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8241 if (r
->config_file
) {
8242 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8243 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8244 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8245 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8246 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8247 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
));
8249 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8250 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8254 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8255 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8258 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8259 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
));
8261 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8265 if (r
->monitor_name
) {
8266 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8267 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8270 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8271 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
));
8273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8277 if (r
->default_datatype
) {
8278 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8279 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8282 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8283 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
));
8285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8289 if (r
->dependent_files
) {
8290 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8291 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8292 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8295 if (r
->previous_names
) {
8296 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8297 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8298 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8302 return NDR_ERR_SUCCESS
;
8305 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8307 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8309 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8310 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8312 if (r
->driver_name
) {
8313 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8316 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8318 if (r
->architecture
) {
8319 ndr_print_string(ndr
, "architecture", r
->architecture
);
8322 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8324 if (r
->driver_path
) {
8325 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8328 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8331 ndr_print_string(ndr
, "data_file", r
->data_file
);
8334 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8336 if (r
->config_file
) {
8337 ndr_print_string(ndr
, "config_file", r
->config_file
);
8340 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8343 ndr_print_string(ndr
, "help_file", r
->help_file
);
8346 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8348 if (r
->monitor_name
) {
8349 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8352 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8354 if (r
->default_datatype
) {
8355 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8358 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
);
8359 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8361 if (r
->dependent_files
) {
8362 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8365 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
);
8366 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8368 if (r
->previous_names
) {
8369 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8375 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8377 if (ndr_flags
& NDR_SCALARS
) {
8378 NDR_CHECK(ndr_push_align(ndr
, 8));
8379 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8380 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8381 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8382 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8383 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8384 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8385 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8386 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8387 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8389 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8391 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8392 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8393 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8394 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8395 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8396 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8397 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8399 if (ndr_flags
& NDR_BUFFERS
) {
8400 if (r
->driver_name
) {
8401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8404 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8406 if (r
->architecture
) {
8407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8410 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8412 if (r
->driver_path
) {
8413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8416 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8422 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8424 if (r
->config_file
) {
8425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8428 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8434 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8436 if (r
->monitor_name
) {
8437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8440 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8442 if (r
->default_datatype
) {
8443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8446 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8448 if (r
->dependent_files
) {
8449 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8451 if (r
->previous_names
) {
8452 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8454 if (r
->manufacturer_name
) {
8455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8458 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8460 if (r
->manufacturer_url
) {
8461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8464 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8466 if (r
->hardware_id
) {
8467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8470 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8476 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8479 return NDR_ERR_SUCCESS
;
8482 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
8484 uint32_t _ptr_driver_name
;
8485 TALLOC_CTX
*_mem_save_driver_name_0
;
8486 uint32_t _ptr_architecture
;
8487 TALLOC_CTX
*_mem_save_architecture_0
;
8488 uint32_t _ptr_driver_path
;
8489 TALLOC_CTX
*_mem_save_driver_path_0
;
8490 uint32_t _ptr_data_file
;
8491 TALLOC_CTX
*_mem_save_data_file_0
;
8492 uint32_t _ptr_config_file
;
8493 TALLOC_CTX
*_mem_save_config_file_0
;
8494 uint32_t _ptr_help_file
;
8495 TALLOC_CTX
*_mem_save_help_file_0
;
8496 uint32_t _ptr_monitor_name
;
8497 TALLOC_CTX
*_mem_save_monitor_name_0
;
8498 uint32_t _ptr_default_datatype
;
8499 TALLOC_CTX
*_mem_save_default_datatype_0
;
8500 uint32_t _ptr_dependent_files
;
8501 TALLOC_CTX
*_mem_save_dependent_files_0
;
8502 uint32_t _ptr_previous_names
;
8503 TALLOC_CTX
*_mem_save_previous_names_0
;
8504 uint32_t _ptr_manufacturer_name
;
8505 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8506 uint32_t _ptr_manufacturer_url
;
8507 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8508 uint32_t _ptr_hardware_id
;
8509 TALLOC_CTX
*_mem_save_hardware_id_0
;
8510 uint32_t _ptr_provider
;
8511 TALLOC_CTX
*_mem_save_provider_0
;
8512 if (ndr_flags
& NDR_SCALARS
) {
8513 NDR_CHECK(ndr_pull_align(ndr
, 8));
8514 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8516 if (_ptr_driver_name
) {
8517 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8519 r
->driver_name
= NULL
;
8521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8522 if (_ptr_architecture
) {
8523 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8525 r
->architecture
= NULL
;
8527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8528 if (_ptr_driver_path
) {
8529 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8531 r
->driver_path
= NULL
;
8533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8534 if (_ptr_data_file
) {
8535 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8537 r
->data_file
= NULL
;
8539 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8540 if (_ptr_config_file
) {
8541 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8543 r
->config_file
= NULL
;
8545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8546 if (_ptr_help_file
) {
8547 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8549 r
->help_file
= NULL
;
8551 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8552 if (_ptr_monitor_name
) {
8553 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8555 r
->monitor_name
= NULL
;
8557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8558 if (_ptr_default_datatype
) {
8559 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8561 r
->default_datatype
= NULL
;
8563 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8564 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8565 if (_ptr_dependent_files
) {
8566 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8568 r
->dependent_files
= NULL
;
8570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8572 if (_ptr_previous_names
) {
8573 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8575 r
->previous_names
= NULL
;
8577 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
8578 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
8579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
8580 if (_ptr_manufacturer_name
) {
8581 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
8583 r
->manufacturer_name
= NULL
;
8585 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
8586 if (_ptr_manufacturer_url
) {
8587 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
8589 r
->manufacturer_url
= NULL
;
8591 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
8592 if (_ptr_hardware_id
) {
8593 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
8595 r
->hardware_id
= NULL
;
8597 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
8598 if (_ptr_provider
) {
8599 NDR_PULL_ALLOC(ndr
, r
->provider
);
8604 if (ndr_flags
& NDR_BUFFERS
) {
8605 if (r
->driver_name
) {
8606 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8607 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8608 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8609 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8610 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8611 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
));
8613 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8614 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8617 if (r
->architecture
) {
8618 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8619 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8620 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8621 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8622 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8623 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
));
8625 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8626 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8629 if (r
->driver_path
) {
8630 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8631 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8632 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8633 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8634 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8635 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
));
8637 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8638 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8642 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8643 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8644 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8645 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8646 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8647 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
));
8649 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8650 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8653 if (r
->config_file
) {
8654 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8655 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8656 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8657 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8658 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8659 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
));
8661 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8662 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8666 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8667 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8668 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8669 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8670 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8671 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
));
8673 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8674 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8677 if (r
->monitor_name
) {
8678 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8679 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8680 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8681 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8682 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8683 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
));
8685 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8686 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8689 if (r
->default_datatype
) {
8690 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8691 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8692 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8693 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8694 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8695 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
));
8697 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8698 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8701 if (r
->dependent_files
) {
8702 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8703 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8704 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8707 if (r
->previous_names
) {
8708 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8709 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8710 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8713 if (r
->manufacturer_name
) {
8714 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8715 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
8716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
8717 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
8718 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
8719 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
));
8721 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
8722 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
8723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
8725 if (r
->manufacturer_url
) {
8726 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8727 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
8728 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
8729 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
8730 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
8731 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
));
8733 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
8734 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
8735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
8737 if (r
->hardware_id
) {
8738 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8739 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
8740 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
8741 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
8742 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
8743 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
));
8745 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
8746 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
8747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
8750 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8751 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
8752 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
8753 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
8754 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
8755 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
));
8757 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
8758 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
8759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
8762 return NDR_ERR_SUCCESS
;
8765 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
8767 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
8769 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8770 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8772 if (r
->driver_name
) {
8773 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8776 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8778 if (r
->architecture
) {
8779 ndr_print_string(ndr
, "architecture", r
->architecture
);
8782 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8784 if (r
->driver_path
) {
8785 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8788 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8791 ndr_print_string(ndr
, "data_file", r
->data_file
);
8794 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8796 if (r
->config_file
) {
8797 ndr_print_string(ndr
, "config_file", r
->config_file
);
8800 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8803 ndr_print_string(ndr
, "help_file", r
->help_file
);
8806 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8808 if (r
->monitor_name
) {
8809 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8812 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8814 if (r
->default_datatype
) {
8815 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8818 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
);
8819 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8821 if (r
->dependent_files
) {
8822 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8825 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
);
8826 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8828 if (r
->previous_names
) {
8829 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8832 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
8833 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
8834 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
8836 if (r
->manufacturer_name
) {
8837 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
8840 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
8842 if (r
->manufacturer_url
) {
8843 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
8846 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
8848 if (r
->hardware_id
) {
8849 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
8852 ndr_print_ptr(ndr
, "provider", r
->provider
);
8855 ndr_print_string(ndr
, "provider", r
->provider
);
8861 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
8863 if (ndr_flags
& NDR_SCALARS
) {
8864 NDR_CHECK(ndr_push_align(ndr
, 8));
8865 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8866 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8868 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8869 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8870 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8877 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8878 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8879 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8880 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8881 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8882 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8884 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
8885 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
8886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
8888 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
8889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
8890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8891 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
8892 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
8893 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
8895 if (ndr_flags
& NDR_BUFFERS
) {
8896 if (r
->driver_name
) {
8897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8900 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8902 if (r
->architecture
) {
8903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8908 if (r
->driver_path
) {
8909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8910 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8912 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8918 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8920 if (r
->config_file
) {
8921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8924 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8930 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8932 if (r
->monitor_name
) {
8933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8938 if (r
->default_datatype
) {
8939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8942 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8944 if (r
->dependent_files
) {
8945 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8947 if (r
->previous_names
) {
8948 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8950 if (r
->manufacturer_name
) {
8951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8954 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8956 if (r
->manufacturer_url
) {
8957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8960 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8962 if (r
->hardware_id
) {
8963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8966 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8972 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8974 if (r
->print_processor
) {
8975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8978 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8980 if (r
->vendor_setup
) {
8981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8984 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8986 if (r
->color_profiles
) {
8987 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
8990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8995 if (r
->core_driver_dependencies
) {
8996 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
8999 return NDR_ERR_SUCCESS
;
9002 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9004 uint32_t _ptr_driver_name
;
9005 TALLOC_CTX
*_mem_save_driver_name_0
;
9006 uint32_t _ptr_architecture
;
9007 TALLOC_CTX
*_mem_save_architecture_0
;
9008 uint32_t _ptr_driver_path
;
9009 TALLOC_CTX
*_mem_save_driver_path_0
;
9010 uint32_t _ptr_data_file
;
9011 TALLOC_CTX
*_mem_save_data_file_0
;
9012 uint32_t _ptr_config_file
;
9013 TALLOC_CTX
*_mem_save_config_file_0
;
9014 uint32_t _ptr_help_file
;
9015 TALLOC_CTX
*_mem_save_help_file_0
;
9016 uint32_t _ptr_monitor_name
;
9017 TALLOC_CTX
*_mem_save_monitor_name_0
;
9018 uint32_t _ptr_default_datatype
;
9019 TALLOC_CTX
*_mem_save_default_datatype_0
;
9020 uint32_t _ptr_dependent_files
;
9021 TALLOC_CTX
*_mem_save_dependent_files_0
;
9022 uint32_t _ptr_previous_names
;
9023 TALLOC_CTX
*_mem_save_previous_names_0
;
9024 uint32_t _ptr_manufacturer_name
;
9025 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9026 uint32_t _ptr_manufacturer_url
;
9027 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9028 uint32_t _ptr_hardware_id
;
9029 TALLOC_CTX
*_mem_save_hardware_id_0
;
9030 uint32_t _ptr_provider
;
9031 TALLOC_CTX
*_mem_save_provider_0
;
9032 uint32_t _ptr_print_processor
;
9033 TALLOC_CTX
*_mem_save_print_processor_0
;
9034 uint32_t _ptr_vendor_setup
;
9035 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9036 uint32_t _ptr_color_profiles
;
9037 TALLOC_CTX
*_mem_save_color_profiles_0
;
9038 uint32_t _ptr_inf_path
;
9039 TALLOC_CTX
*_mem_save_inf_path_0
;
9040 uint32_t _ptr_core_driver_dependencies
;
9041 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9042 if (ndr_flags
& NDR_SCALARS
) {
9043 NDR_CHECK(ndr_pull_align(ndr
, 8));
9044 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9046 if (_ptr_driver_name
) {
9047 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9049 r
->driver_name
= NULL
;
9051 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9052 if (_ptr_architecture
) {
9053 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9055 r
->architecture
= NULL
;
9057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9058 if (_ptr_driver_path
) {
9059 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9061 r
->driver_path
= NULL
;
9063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9064 if (_ptr_data_file
) {
9065 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9067 r
->data_file
= NULL
;
9069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9070 if (_ptr_config_file
) {
9071 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9073 r
->config_file
= NULL
;
9075 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9076 if (_ptr_help_file
) {
9077 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9079 r
->help_file
= NULL
;
9081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9082 if (_ptr_monitor_name
) {
9083 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9085 r
->monitor_name
= NULL
;
9087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9088 if (_ptr_default_datatype
) {
9089 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9091 r
->default_datatype
= NULL
;
9093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9095 if (_ptr_dependent_files
) {
9096 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9098 r
->dependent_files
= NULL
;
9100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9101 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9102 if (_ptr_previous_names
) {
9103 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9105 r
->previous_names
= NULL
;
9107 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9108 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9110 if (_ptr_manufacturer_name
) {
9111 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9113 r
->manufacturer_name
= NULL
;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9116 if (_ptr_manufacturer_url
) {
9117 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9119 r
->manufacturer_url
= NULL
;
9121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9122 if (_ptr_hardware_id
) {
9123 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9125 r
->hardware_id
= NULL
;
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9128 if (_ptr_provider
) {
9129 NDR_PULL_ALLOC(ndr
, r
->provider
);
9133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9134 if (_ptr_print_processor
) {
9135 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9137 r
->print_processor
= NULL
;
9139 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9140 if (_ptr_vendor_setup
) {
9141 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9143 r
->vendor_setup
= NULL
;
9145 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9146 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9147 if (_ptr_color_profiles
) {
9148 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9150 r
->color_profiles
= NULL
;
9152 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9153 if (_ptr_inf_path
) {
9154 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9158 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9159 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9160 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9161 if (_ptr_core_driver_dependencies
) {
9162 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9164 r
->core_driver_dependencies
= NULL
;
9166 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9167 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9169 if (ndr_flags
& NDR_BUFFERS
) {
9170 if (r
->driver_name
) {
9171 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9172 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9173 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9174 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9175 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9176 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
));
9178 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9179 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9182 if (r
->architecture
) {
9183 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9184 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9185 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9186 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9187 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9188 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
));
9190 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9191 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9192 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9194 if (r
->driver_path
) {
9195 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9196 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9197 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9198 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9199 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9200 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
));
9202 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9203 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9207 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9208 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9209 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9210 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9211 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9212 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
));
9214 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9215 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9218 if (r
->config_file
) {
9219 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9220 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9222 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9223 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9224 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
));
9226 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9227 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9231 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9232 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9233 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9234 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9235 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9236 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
));
9238 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9239 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9242 if (r
->monitor_name
) {
9243 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9244 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9245 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9246 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9247 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9248 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
));
9250 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9251 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9254 if (r
->default_datatype
) {
9255 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9256 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9258 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9259 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9260 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
));
9262 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9266 if (r
->dependent_files
) {
9267 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9268 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9269 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9272 if (r
->previous_names
) {
9273 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9274 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9275 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9278 if (r
->manufacturer_name
) {
9279 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9280 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9283 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9284 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
));
9286 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9290 if (r
->manufacturer_url
) {
9291 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9292 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9295 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9296 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
));
9298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9302 if (r
->hardware_id
) {
9303 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9304 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9307 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9308 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
));
9310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9315 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9316 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9319 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9320 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
));
9322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9326 if (r
->print_processor
) {
9327 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9328 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9331 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9332 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
));
9334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9338 if (r
->vendor_setup
) {
9339 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9340 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9341 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9342 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9343 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9344 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
));
9346 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9347 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9350 if (r
->color_profiles
) {
9351 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9352 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9353 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9354 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9357 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9358 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9359 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9360 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9361 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9362 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
));
9364 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9365 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9368 if (r
->core_driver_dependencies
) {
9369 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9370 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9371 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9375 return NDR_ERR_SUCCESS
;
9378 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9380 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9382 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9383 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9385 if (r
->driver_name
) {
9386 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9389 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9391 if (r
->architecture
) {
9392 ndr_print_string(ndr
, "architecture", r
->architecture
);
9395 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9397 if (r
->driver_path
) {
9398 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9401 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9404 ndr_print_string(ndr
, "data_file", r
->data_file
);
9407 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9409 if (r
->config_file
) {
9410 ndr_print_string(ndr
, "config_file", r
->config_file
);
9413 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9416 ndr_print_string(ndr
, "help_file", r
->help_file
);
9419 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9421 if (r
->monitor_name
) {
9422 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9425 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9427 if (r
->default_datatype
) {
9428 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9431 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
);
9432 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9434 if (r
->dependent_files
) {
9435 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9438 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
);
9439 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9441 if (r
->previous_names
) {
9442 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9445 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9446 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9447 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9449 if (r
->manufacturer_name
) {
9450 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9453 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9455 if (r
->manufacturer_url
) {
9456 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9459 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9461 if (r
->hardware_id
) {
9462 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9465 ndr_print_ptr(ndr
, "provider", r
->provider
);
9468 ndr_print_string(ndr
, "provider", r
->provider
);
9471 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
9473 if (r
->print_processor
) {
9474 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
9477 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
9479 if (r
->vendor_setup
) {
9480 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
9483 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
);
9484 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
9486 if (r
->color_profiles
) {
9487 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
9490 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
9493 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
9496 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
9497 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
);
9498 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9500 if (r
->core_driver_dependencies
) {
9501 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9504 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
9505 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
9509 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
9511 if (ndr_flags
& NDR_SCALARS
) {
9512 int level
= ndr_push_get_switch_value(ndr
, r
);
9513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
9516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
9520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
9524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
9528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
9532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
9536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
9540 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9543 if (ndr_flags
& NDR_BUFFERS
) {
9544 int level
= ndr_push_get_switch_value(ndr
, r
);
9548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9554 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9560 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9566 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9572 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9578 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9583 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9586 return NDR_ERR_SUCCESS
;
9589 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
9593 TALLOC_CTX
*_mem_save_info1_0
;
9594 TALLOC_CTX
*_mem_save_info2_0
;
9595 TALLOC_CTX
*_mem_save_info3_0
;
9596 TALLOC_CTX
*_mem_save_info4_0
;
9597 TALLOC_CTX
*_mem_save_info6_0
;
9598 TALLOC_CTX
*_mem_save_info8_0
;
9599 level
= ndr_pull_get_switch_value(ndr
, r
);
9600 if (ndr_flags
& NDR_SCALARS
) {
9601 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
9602 if (_level
!= level
) {
9603 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
9607 uint32_t _ptr_info1
;
9608 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
9610 NDR_PULL_ALLOC(ndr
, r
->info1
);
9617 uint32_t _ptr_info2
;
9618 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
9620 NDR_PULL_ALLOC(ndr
, r
->info2
);
9627 uint32_t _ptr_info3
;
9628 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
9630 NDR_PULL_ALLOC(ndr
, r
->info3
);
9637 uint32_t _ptr_info4
;
9638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
9640 NDR_PULL_ALLOC(ndr
, r
->info4
);
9647 uint32_t _ptr_info6
;
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
9650 NDR_PULL_ALLOC(ndr
, r
->info6
);
9657 uint32_t _ptr_info8
;
9658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
9660 NDR_PULL_ALLOC(ndr
, r
->info8
);
9667 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9670 if (ndr_flags
& NDR_BUFFERS
) {
9674 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9675 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
9676 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
9683 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9684 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
9685 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
9692 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9693 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
9694 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
9701 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9702 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
9703 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
9710 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9711 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
9712 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
9719 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9720 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
9721 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
9727 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9730 return NDR_ERR_SUCCESS
;
9733 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
9736 level
= ndr_print_get_switch_value(ndr
, r
);
9737 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
9740 ndr_print_ptr(ndr
, "info1", r
->info1
);
9743 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
9749 ndr_print_ptr(ndr
, "info2", r
->info2
);
9752 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
9758 ndr_print_ptr(ndr
, "info3", r
->info3
);
9761 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
9767 ndr_print_ptr(ndr
, "info4", r
->info4
);
9770 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
9776 ndr_print_ptr(ndr
, "info6", r
->info6
);
9779 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
9785 ndr_print_ptr(ndr
, "info8", r
->info8
);
9788 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
9794 ndr_print_bad_level(ndr
, name
, level
);
9798 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
9800 if (ndr_flags
& NDR_SCALARS
) {
9801 NDR_CHECK(ndr_push_align(ndr
, 4));
9802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
9803 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
9804 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9806 if (ndr_flags
& NDR_BUFFERS
) {
9807 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9809 return NDR_ERR_SUCCESS
;
9812 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
9814 if (ndr_flags
& NDR_SCALARS
) {
9815 NDR_CHECK(ndr_pull_align(ndr
, 4));
9816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
9817 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
9818 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9820 if (ndr_flags
& NDR_BUFFERS
) {
9821 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9823 return NDR_ERR_SUCCESS
;
9826 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
9828 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
9830 ndr_print_uint32(ndr
, "level", r
->level
);
9831 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
9832 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
9836 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
9838 if (ndr_flags
& NDR_SCALARS
) {
9839 NDR_CHECK(ndr_push_align(ndr
, 4));
9841 uint32_t _flags_save_string
= ndr
->flags
;
9842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9843 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9844 ndr
->flags
= _flags_save_string
;
9847 if (ndr_flags
& NDR_BUFFERS
) {
9849 uint32_t _flags_save_string
= ndr
->flags
;
9850 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9851 if (r
->driver_name
) {
9852 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9853 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9855 ndr
->flags
= _flags_save_string
;
9858 return NDR_ERR_SUCCESS
;
9861 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
9863 uint32_t _ptr_driver_name
;
9864 TALLOC_CTX
*_mem_save_driver_name_0
;
9865 if (ndr_flags
& NDR_SCALARS
) {
9866 NDR_CHECK(ndr_pull_align(ndr
, 4));
9868 uint32_t _flags_save_string
= ndr
->flags
;
9869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9871 if (_ptr_driver_name
) {
9872 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9873 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9875 r
->driver_name
= NULL
;
9877 ndr
->flags
= _flags_save_string
;
9880 if (ndr_flags
& NDR_BUFFERS
) {
9882 uint32_t _flags_save_string
= ndr
->flags
;
9883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9884 if (r
->driver_name
) {
9885 uint32_t _relative_save_offset
;
9886 _relative_save_offset
= ndr
->offset
;
9887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9888 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9889 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9892 ndr
->offset
= _relative_save_offset
;
9894 ndr
->flags
= _flags_save_string
;
9897 return NDR_ERR_SUCCESS
;
9900 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
9902 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
9904 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9906 if (r
->driver_name
) {
9907 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9913 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9915 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
9918 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
9920 if (ndr_flags
& NDR_SCALARS
) {
9921 NDR_CHECK(ndr_push_align(ndr
, 4));
9922 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9924 uint32_t _flags_save_string
= ndr
->flags
;
9925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9926 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9927 ndr
->flags
= _flags_save_string
;
9930 uint32_t _flags_save_string
= ndr
->flags
;
9931 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9932 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9933 ndr
->flags
= _flags_save_string
;
9936 uint32_t _flags_save_string
= ndr
->flags
;
9937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9938 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9939 ndr
->flags
= _flags_save_string
;
9942 uint32_t _flags_save_string
= ndr
->flags
;
9943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9944 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9945 ndr
->flags
= _flags_save_string
;
9948 uint32_t _flags_save_string
= ndr
->flags
;
9949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9950 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9951 ndr
->flags
= _flags_save_string
;
9954 if (ndr_flags
& NDR_BUFFERS
) {
9956 uint32_t _flags_save_string
= ndr
->flags
;
9957 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9958 if (r
->driver_name
) {
9959 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9960 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9962 ndr
->flags
= _flags_save_string
;
9965 uint32_t _flags_save_string
= ndr
->flags
;
9966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9967 if (r
->architecture
) {
9968 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9969 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9971 ndr
->flags
= _flags_save_string
;
9974 uint32_t _flags_save_string
= ndr
->flags
;
9975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9976 if (r
->driver_path
) {
9977 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
9978 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
9980 ndr
->flags
= _flags_save_string
;
9983 uint32_t _flags_save_string
= ndr
->flags
;
9984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9986 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
9987 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
9989 ndr
->flags
= _flags_save_string
;
9992 uint32_t _flags_save_string
= ndr
->flags
;
9993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9994 if (r
->config_file
) {
9995 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
9996 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
9998 ndr
->flags
= _flags_save_string
;
10001 return NDR_ERR_SUCCESS
;
10004 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10006 uint32_t _ptr_driver_name
;
10007 TALLOC_CTX
*_mem_save_driver_name_0
;
10008 uint32_t _ptr_architecture
;
10009 TALLOC_CTX
*_mem_save_architecture_0
;
10010 uint32_t _ptr_driver_path
;
10011 TALLOC_CTX
*_mem_save_driver_path_0
;
10012 uint32_t _ptr_data_file
;
10013 TALLOC_CTX
*_mem_save_data_file_0
;
10014 uint32_t _ptr_config_file
;
10015 TALLOC_CTX
*_mem_save_config_file_0
;
10016 if (ndr_flags
& NDR_SCALARS
) {
10017 NDR_CHECK(ndr_pull_align(ndr
, 4));
10018 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10020 uint32_t _flags_save_string
= ndr
->flags
;
10021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10023 if (_ptr_driver_name
) {
10024 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10025 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10027 r
->driver_name
= NULL
;
10029 ndr
->flags
= _flags_save_string
;
10032 uint32_t _flags_save_string
= ndr
->flags
;
10033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10035 if (_ptr_architecture
) {
10036 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10037 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10039 r
->architecture
= NULL
;
10041 ndr
->flags
= _flags_save_string
;
10044 uint32_t _flags_save_string
= ndr
->flags
;
10045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10046 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10047 if (_ptr_driver_path
) {
10048 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10049 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10051 r
->driver_path
= NULL
;
10053 ndr
->flags
= _flags_save_string
;
10056 uint32_t _flags_save_string
= ndr
->flags
;
10057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10059 if (_ptr_data_file
) {
10060 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10061 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10063 r
->data_file
= NULL
;
10065 ndr
->flags
= _flags_save_string
;
10068 uint32_t _flags_save_string
= ndr
->flags
;
10069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10070 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10071 if (_ptr_config_file
) {
10072 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10073 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10075 r
->config_file
= NULL
;
10077 ndr
->flags
= _flags_save_string
;
10080 if (ndr_flags
& NDR_BUFFERS
) {
10082 uint32_t _flags_save_string
= ndr
->flags
;
10083 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10084 if (r
->driver_name
) {
10085 uint32_t _relative_save_offset
;
10086 _relative_save_offset
= ndr
->offset
;
10087 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10088 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10089 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10090 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10092 ndr
->offset
= _relative_save_offset
;
10094 ndr
->flags
= _flags_save_string
;
10097 uint32_t _flags_save_string
= ndr
->flags
;
10098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10099 if (r
->architecture
) {
10100 uint32_t _relative_save_offset
;
10101 _relative_save_offset
= ndr
->offset
;
10102 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10103 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10104 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10105 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10107 ndr
->offset
= _relative_save_offset
;
10109 ndr
->flags
= _flags_save_string
;
10112 uint32_t _flags_save_string
= ndr
->flags
;
10113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10114 if (r
->driver_path
) {
10115 uint32_t _relative_save_offset
;
10116 _relative_save_offset
= ndr
->offset
;
10117 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10118 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10119 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10120 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10122 ndr
->offset
= _relative_save_offset
;
10124 ndr
->flags
= _flags_save_string
;
10127 uint32_t _flags_save_string
= ndr
->flags
;
10128 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10129 if (r
->data_file
) {
10130 uint32_t _relative_save_offset
;
10131 _relative_save_offset
= ndr
->offset
;
10132 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10133 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10134 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10135 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10137 ndr
->offset
= _relative_save_offset
;
10139 ndr
->flags
= _flags_save_string
;
10142 uint32_t _flags_save_string
= ndr
->flags
;
10143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10144 if (r
->config_file
) {
10145 uint32_t _relative_save_offset
;
10146 _relative_save_offset
= ndr
->offset
;
10147 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10148 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10149 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10150 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10152 ndr
->offset
= _relative_save_offset
;
10154 ndr
->flags
= _flags_save_string
;
10157 return NDR_ERR_SUCCESS
;
10160 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10162 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10164 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10165 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10167 if (r
->driver_name
) {
10168 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10171 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10173 if (r
->architecture
) {
10174 ndr_print_string(ndr
, "architecture", r
->architecture
);
10177 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10179 if (r
->driver_path
) {
10180 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10183 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10185 if (r
->data_file
) {
10186 ndr_print_string(ndr
, "data_file", r
->data_file
);
10189 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10191 if (r
->config_file
) {
10192 ndr_print_string(ndr
, "config_file", r
->config_file
);
10198 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10200 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10203 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10205 if (ndr_flags
& NDR_SCALARS
) {
10206 NDR_CHECK(ndr_push_align(ndr
, 4));
10207 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10209 uint32_t _flags_save_string
= ndr
->flags
;
10210 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10211 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10212 ndr
->flags
= _flags_save_string
;
10215 uint32_t _flags_save_string
= ndr
->flags
;
10216 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10217 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10218 ndr
->flags
= _flags_save_string
;
10221 uint32_t _flags_save_string
= ndr
->flags
;
10222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10223 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10224 ndr
->flags
= _flags_save_string
;
10227 uint32_t _flags_save_string
= ndr
->flags
;
10228 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10229 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10230 ndr
->flags
= _flags_save_string
;
10233 uint32_t _flags_save_string
= ndr
->flags
;
10234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10235 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10236 ndr
->flags
= _flags_save_string
;
10239 uint32_t _flags_save_string
= ndr
->flags
;
10240 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10241 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10242 ndr
->flags
= _flags_save_string
;
10245 uint32_t _flags_save_string_array
= ndr
->flags
;
10246 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10247 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10248 ndr
->flags
= _flags_save_string_array
;
10251 uint32_t _flags_save_string
= ndr
->flags
;
10252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10253 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10254 ndr
->flags
= _flags_save_string
;
10257 uint32_t _flags_save_string
= ndr
->flags
;
10258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10259 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10260 ndr
->flags
= _flags_save_string
;
10263 if (ndr_flags
& NDR_BUFFERS
) {
10265 uint32_t _flags_save_string
= ndr
->flags
;
10266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10267 if (r
->driver_name
) {
10268 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10269 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10271 ndr
->flags
= _flags_save_string
;
10274 uint32_t _flags_save_string
= ndr
->flags
;
10275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10276 if (r
->architecture
) {
10277 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10278 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10280 ndr
->flags
= _flags_save_string
;
10283 uint32_t _flags_save_string
= ndr
->flags
;
10284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10285 if (r
->driver_path
) {
10286 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10287 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10289 ndr
->flags
= _flags_save_string
;
10292 uint32_t _flags_save_string
= ndr
->flags
;
10293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10294 if (r
->data_file
) {
10295 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10296 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10298 ndr
->flags
= _flags_save_string
;
10301 uint32_t _flags_save_string
= ndr
->flags
;
10302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10303 if (r
->config_file
) {
10304 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10305 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10307 ndr
->flags
= _flags_save_string
;
10310 uint32_t _flags_save_string
= ndr
->flags
;
10311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10312 if (r
->help_file
) {
10313 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10314 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10316 ndr
->flags
= _flags_save_string
;
10319 uint32_t _flags_save_string_array
= ndr
->flags
;
10320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10321 if (r
->dependent_files
) {
10322 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10323 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10325 ndr
->flags
= _flags_save_string_array
;
10328 uint32_t _flags_save_string
= ndr
->flags
;
10329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10330 if (r
->monitor_name
) {
10331 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10332 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10334 ndr
->flags
= _flags_save_string
;
10337 uint32_t _flags_save_string
= ndr
->flags
;
10338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10339 if (r
->default_datatype
) {
10340 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10341 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10343 ndr
->flags
= _flags_save_string
;
10346 return NDR_ERR_SUCCESS
;
10349 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10351 uint32_t _ptr_driver_name
;
10352 TALLOC_CTX
*_mem_save_driver_name_0
;
10353 uint32_t _ptr_architecture
;
10354 TALLOC_CTX
*_mem_save_architecture_0
;
10355 uint32_t _ptr_driver_path
;
10356 TALLOC_CTX
*_mem_save_driver_path_0
;
10357 uint32_t _ptr_data_file
;
10358 TALLOC_CTX
*_mem_save_data_file_0
;
10359 uint32_t _ptr_config_file
;
10360 TALLOC_CTX
*_mem_save_config_file_0
;
10361 uint32_t _ptr_help_file
;
10362 TALLOC_CTX
*_mem_save_help_file_0
;
10363 uint32_t _ptr_dependent_files
;
10364 TALLOC_CTX
*_mem_save_dependent_files_0
;
10365 uint32_t _ptr_monitor_name
;
10366 TALLOC_CTX
*_mem_save_monitor_name_0
;
10367 uint32_t _ptr_default_datatype
;
10368 TALLOC_CTX
*_mem_save_default_datatype_0
;
10369 if (ndr_flags
& NDR_SCALARS
) {
10370 NDR_CHECK(ndr_pull_align(ndr
, 4));
10371 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10373 uint32_t _flags_save_string
= ndr
->flags
;
10374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10376 if (_ptr_driver_name
) {
10377 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10378 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10380 r
->driver_name
= NULL
;
10382 ndr
->flags
= _flags_save_string
;
10385 uint32_t _flags_save_string
= ndr
->flags
;
10386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10388 if (_ptr_architecture
) {
10389 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10390 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10392 r
->architecture
= NULL
;
10394 ndr
->flags
= _flags_save_string
;
10397 uint32_t _flags_save_string
= ndr
->flags
;
10398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10400 if (_ptr_driver_path
) {
10401 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10402 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10404 r
->driver_path
= NULL
;
10406 ndr
->flags
= _flags_save_string
;
10409 uint32_t _flags_save_string
= ndr
->flags
;
10410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10412 if (_ptr_data_file
) {
10413 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10414 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10416 r
->data_file
= NULL
;
10418 ndr
->flags
= _flags_save_string
;
10421 uint32_t _flags_save_string
= ndr
->flags
;
10422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10423 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10424 if (_ptr_config_file
) {
10425 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10426 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10428 r
->config_file
= NULL
;
10430 ndr
->flags
= _flags_save_string
;
10433 uint32_t _flags_save_string
= ndr
->flags
;
10434 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10436 if (_ptr_help_file
) {
10437 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10438 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10440 r
->help_file
= NULL
;
10442 ndr
->flags
= _flags_save_string
;
10445 uint32_t _flags_save_string_array
= ndr
->flags
;
10446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10448 if (_ptr_dependent_files
) {
10449 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10450 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10452 r
->dependent_files
= NULL
;
10454 ndr
->flags
= _flags_save_string_array
;
10457 uint32_t _flags_save_string
= ndr
->flags
;
10458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10459 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10460 if (_ptr_monitor_name
) {
10461 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10462 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10464 r
->monitor_name
= NULL
;
10466 ndr
->flags
= _flags_save_string
;
10469 uint32_t _flags_save_string
= ndr
->flags
;
10470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10471 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10472 if (_ptr_default_datatype
) {
10473 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10474 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10476 r
->default_datatype
= NULL
;
10478 ndr
->flags
= _flags_save_string
;
10481 if (ndr_flags
& NDR_BUFFERS
) {
10483 uint32_t _flags_save_string
= ndr
->flags
;
10484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10485 if (r
->driver_name
) {
10486 uint32_t _relative_save_offset
;
10487 _relative_save_offset
= ndr
->offset
;
10488 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10489 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10490 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10491 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10493 ndr
->offset
= _relative_save_offset
;
10495 ndr
->flags
= _flags_save_string
;
10498 uint32_t _flags_save_string
= ndr
->flags
;
10499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10500 if (r
->architecture
) {
10501 uint32_t _relative_save_offset
;
10502 _relative_save_offset
= ndr
->offset
;
10503 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10504 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10505 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10506 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10508 ndr
->offset
= _relative_save_offset
;
10510 ndr
->flags
= _flags_save_string
;
10513 uint32_t _flags_save_string
= ndr
->flags
;
10514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10515 if (r
->driver_path
) {
10516 uint32_t _relative_save_offset
;
10517 _relative_save_offset
= ndr
->offset
;
10518 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10519 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10520 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10521 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10523 ndr
->offset
= _relative_save_offset
;
10525 ndr
->flags
= _flags_save_string
;
10528 uint32_t _flags_save_string
= ndr
->flags
;
10529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10530 if (r
->data_file
) {
10531 uint32_t _relative_save_offset
;
10532 _relative_save_offset
= ndr
->offset
;
10533 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10534 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10535 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10536 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10538 ndr
->offset
= _relative_save_offset
;
10540 ndr
->flags
= _flags_save_string
;
10543 uint32_t _flags_save_string
= ndr
->flags
;
10544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10545 if (r
->config_file
) {
10546 uint32_t _relative_save_offset
;
10547 _relative_save_offset
= ndr
->offset
;
10548 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10549 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10550 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10551 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10553 ndr
->offset
= _relative_save_offset
;
10555 ndr
->flags
= _flags_save_string
;
10558 uint32_t _flags_save_string
= ndr
->flags
;
10559 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10560 if (r
->help_file
) {
10561 uint32_t _relative_save_offset
;
10562 _relative_save_offset
= ndr
->offset
;
10563 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
10564 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10565 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10566 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
10567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10568 ndr
->offset
= _relative_save_offset
;
10570 ndr
->flags
= _flags_save_string
;
10573 uint32_t _flags_save_string_array
= ndr
->flags
;
10574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10575 if (r
->dependent_files
) {
10576 uint32_t _relative_save_offset
;
10577 _relative_save_offset
= ndr
->offset
;
10578 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
10579 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10580 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10581 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
10582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10583 ndr
->offset
= _relative_save_offset
;
10585 ndr
->flags
= _flags_save_string_array
;
10588 uint32_t _flags_save_string
= ndr
->flags
;
10589 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10590 if (r
->monitor_name
) {
10591 uint32_t _relative_save_offset
;
10592 _relative_save_offset
= ndr
->offset
;
10593 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
10594 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10595 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10596 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
10597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10598 ndr
->offset
= _relative_save_offset
;
10600 ndr
->flags
= _flags_save_string
;
10603 uint32_t _flags_save_string
= ndr
->flags
;
10604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10605 if (r
->default_datatype
) {
10606 uint32_t _relative_save_offset
;
10607 _relative_save_offset
= ndr
->offset
;
10608 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
10609 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10610 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10611 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
10612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10613 ndr
->offset
= _relative_save_offset
;
10615 ndr
->flags
= _flags_save_string
;
10618 return NDR_ERR_SUCCESS
;
10621 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
10623 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
10625 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10626 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10628 if (r
->driver_name
) {
10629 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10632 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10634 if (r
->architecture
) {
10635 ndr_print_string(ndr
, "architecture", r
->architecture
);
10638 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10640 if (r
->driver_path
) {
10641 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10644 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10646 if (r
->data_file
) {
10647 ndr_print_string(ndr
, "data_file", r
->data_file
);
10650 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10652 if (r
->config_file
) {
10653 ndr_print_string(ndr
, "config_file", r
->config_file
);
10656 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10658 if (r
->help_file
) {
10659 ndr_print_string(ndr
, "help_file", r
->help_file
);
10662 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10664 if (r
->dependent_files
) {
10665 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
10668 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10670 if (r
->monitor_name
) {
10671 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10674 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10676 if (r
->default_datatype
) {
10677 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10683 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10685 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
10688 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
10690 if (ndr_flags
& NDR_SCALARS
) {
10691 NDR_CHECK(ndr_push_align(ndr
, 4));
10692 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10694 uint32_t _flags_save_string
= ndr
->flags
;
10695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10696 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10697 ndr
->flags
= _flags_save_string
;
10700 uint32_t _flags_save_string
= ndr
->flags
;
10701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10702 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10703 ndr
->flags
= _flags_save_string
;
10706 uint32_t _flags_save_string
= ndr
->flags
;
10707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10708 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10709 ndr
->flags
= _flags_save_string
;
10712 uint32_t _flags_save_string
= ndr
->flags
;
10713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10714 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10715 ndr
->flags
= _flags_save_string
;
10718 uint32_t _flags_save_string
= ndr
->flags
;
10719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10720 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10721 ndr
->flags
= _flags_save_string
;
10724 uint32_t _flags_save_string
= ndr
->flags
;
10725 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10726 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10727 ndr
->flags
= _flags_save_string
;
10730 uint32_t _flags_save_string_array
= ndr
->flags
;
10731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10732 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10733 ndr
->flags
= _flags_save_string_array
;
10736 uint32_t _flags_save_string
= ndr
->flags
;
10737 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10738 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10739 ndr
->flags
= _flags_save_string
;
10742 uint32_t _flags_save_string
= ndr
->flags
;
10743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10744 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10745 ndr
->flags
= _flags_save_string
;
10748 uint32_t _flags_save_string_array
= ndr
->flags
;
10749 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10750 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10751 ndr
->flags
= _flags_save_string_array
;
10754 if (ndr_flags
& NDR_BUFFERS
) {
10756 uint32_t _flags_save_string
= ndr
->flags
;
10757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10758 if (r
->driver_name
) {
10759 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10760 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10762 ndr
->flags
= _flags_save_string
;
10765 uint32_t _flags_save_string
= ndr
->flags
;
10766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10767 if (r
->architecture
) {
10768 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10769 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10771 ndr
->flags
= _flags_save_string
;
10774 uint32_t _flags_save_string
= ndr
->flags
;
10775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10776 if (r
->driver_path
) {
10777 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10778 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10780 ndr
->flags
= _flags_save_string
;
10783 uint32_t _flags_save_string
= ndr
->flags
;
10784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10785 if (r
->data_file
) {
10786 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10787 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10789 ndr
->flags
= _flags_save_string
;
10792 uint32_t _flags_save_string
= ndr
->flags
;
10793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10794 if (r
->config_file
) {
10795 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10796 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10798 ndr
->flags
= _flags_save_string
;
10801 uint32_t _flags_save_string
= ndr
->flags
;
10802 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10803 if (r
->help_file
) {
10804 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10805 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10807 ndr
->flags
= _flags_save_string
;
10810 uint32_t _flags_save_string_array
= ndr
->flags
;
10811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10812 if (r
->dependent_files
) {
10813 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10814 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10816 ndr
->flags
= _flags_save_string_array
;
10819 uint32_t _flags_save_string
= ndr
->flags
;
10820 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10821 if (r
->monitor_name
) {
10822 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10823 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10825 ndr
->flags
= _flags_save_string
;
10828 uint32_t _flags_save_string
= ndr
->flags
;
10829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10830 if (r
->default_datatype
) {
10831 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10832 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10834 ndr
->flags
= _flags_save_string
;
10837 uint32_t _flags_save_string_array
= ndr
->flags
;
10838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10839 if (r
->previous_names
) {
10840 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
10841 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
10843 ndr
->flags
= _flags_save_string_array
;
10846 return NDR_ERR_SUCCESS
;
10849 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
10851 uint32_t _ptr_driver_name
;
10852 TALLOC_CTX
*_mem_save_driver_name_0
;
10853 uint32_t _ptr_architecture
;
10854 TALLOC_CTX
*_mem_save_architecture_0
;
10855 uint32_t _ptr_driver_path
;
10856 TALLOC_CTX
*_mem_save_driver_path_0
;
10857 uint32_t _ptr_data_file
;
10858 TALLOC_CTX
*_mem_save_data_file_0
;
10859 uint32_t _ptr_config_file
;
10860 TALLOC_CTX
*_mem_save_config_file_0
;
10861 uint32_t _ptr_help_file
;
10862 TALLOC_CTX
*_mem_save_help_file_0
;
10863 uint32_t _ptr_dependent_files
;
10864 TALLOC_CTX
*_mem_save_dependent_files_0
;
10865 uint32_t _ptr_monitor_name
;
10866 TALLOC_CTX
*_mem_save_monitor_name_0
;
10867 uint32_t _ptr_default_datatype
;
10868 TALLOC_CTX
*_mem_save_default_datatype_0
;
10869 uint32_t _ptr_previous_names
;
10870 TALLOC_CTX
*_mem_save_previous_names_0
;
10871 if (ndr_flags
& NDR_SCALARS
) {
10872 NDR_CHECK(ndr_pull_align(ndr
, 4));
10873 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10875 uint32_t _flags_save_string
= ndr
->flags
;
10876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10878 if (_ptr_driver_name
) {
10879 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10880 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10882 r
->driver_name
= NULL
;
10884 ndr
->flags
= _flags_save_string
;
10887 uint32_t _flags_save_string
= ndr
->flags
;
10888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10890 if (_ptr_architecture
) {
10891 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10892 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10894 r
->architecture
= NULL
;
10896 ndr
->flags
= _flags_save_string
;
10899 uint32_t _flags_save_string
= ndr
->flags
;
10900 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10902 if (_ptr_driver_path
) {
10903 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10904 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10906 r
->driver_path
= NULL
;
10908 ndr
->flags
= _flags_save_string
;
10911 uint32_t _flags_save_string
= ndr
->flags
;
10912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10913 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10914 if (_ptr_data_file
) {
10915 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10916 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10918 r
->data_file
= NULL
;
10920 ndr
->flags
= _flags_save_string
;
10923 uint32_t _flags_save_string
= ndr
->flags
;
10924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10926 if (_ptr_config_file
) {
10927 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10928 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10930 r
->config_file
= NULL
;
10932 ndr
->flags
= _flags_save_string
;
10935 uint32_t _flags_save_string
= ndr
->flags
;
10936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10938 if (_ptr_help_file
) {
10939 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10940 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10942 r
->help_file
= NULL
;
10944 ndr
->flags
= _flags_save_string
;
10947 uint32_t _flags_save_string_array
= ndr
->flags
;
10948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10950 if (_ptr_dependent_files
) {
10951 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10952 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10954 r
->dependent_files
= NULL
;
10956 ndr
->flags
= _flags_save_string_array
;
10959 uint32_t _flags_save_string
= ndr
->flags
;
10960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10962 if (_ptr_monitor_name
) {
10963 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10964 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10966 r
->monitor_name
= NULL
;
10968 ndr
->flags
= _flags_save_string
;
10971 uint32_t _flags_save_string
= ndr
->flags
;
10972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10974 if (_ptr_default_datatype
) {
10975 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10976 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10978 r
->default_datatype
= NULL
;
10980 ndr
->flags
= _flags_save_string
;
10983 uint32_t _flags_save_string_array
= ndr
->flags
;
10984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10986 if (_ptr_previous_names
) {
10987 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10988 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
10990 r
->previous_names
= NULL
;
10992 ndr
->flags
= _flags_save_string_array
;
10995 if (ndr_flags
& NDR_BUFFERS
) {
10997 uint32_t _flags_save_string
= ndr
->flags
;
10998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10999 if (r
->driver_name
) {
11000 uint32_t _relative_save_offset
;
11001 _relative_save_offset
= ndr
->offset
;
11002 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11003 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11004 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11005 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11007 ndr
->offset
= _relative_save_offset
;
11009 ndr
->flags
= _flags_save_string
;
11012 uint32_t _flags_save_string
= ndr
->flags
;
11013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11014 if (r
->architecture
) {
11015 uint32_t _relative_save_offset
;
11016 _relative_save_offset
= ndr
->offset
;
11017 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11018 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11019 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11020 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11022 ndr
->offset
= _relative_save_offset
;
11024 ndr
->flags
= _flags_save_string
;
11027 uint32_t _flags_save_string
= ndr
->flags
;
11028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11029 if (r
->driver_path
) {
11030 uint32_t _relative_save_offset
;
11031 _relative_save_offset
= ndr
->offset
;
11032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11033 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11034 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11037 ndr
->offset
= _relative_save_offset
;
11039 ndr
->flags
= _flags_save_string
;
11042 uint32_t _flags_save_string
= ndr
->flags
;
11043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11044 if (r
->data_file
) {
11045 uint32_t _relative_save_offset
;
11046 _relative_save_offset
= ndr
->offset
;
11047 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11048 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11049 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11050 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11052 ndr
->offset
= _relative_save_offset
;
11054 ndr
->flags
= _flags_save_string
;
11057 uint32_t _flags_save_string
= ndr
->flags
;
11058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11059 if (r
->config_file
) {
11060 uint32_t _relative_save_offset
;
11061 _relative_save_offset
= ndr
->offset
;
11062 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11063 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11064 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11065 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11067 ndr
->offset
= _relative_save_offset
;
11069 ndr
->flags
= _flags_save_string
;
11072 uint32_t _flags_save_string
= ndr
->flags
;
11073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11074 if (r
->help_file
) {
11075 uint32_t _relative_save_offset
;
11076 _relative_save_offset
= ndr
->offset
;
11077 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11078 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11079 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11080 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11082 ndr
->offset
= _relative_save_offset
;
11084 ndr
->flags
= _flags_save_string
;
11087 uint32_t _flags_save_string_array
= ndr
->flags
;
11088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11089 if (r
->dependent_files
) {
11090 uint32_t _relative_save_offset
;
11091 _relative_save_offset
= ndr
->offset
;
11092 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11093 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11094 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11095 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11097 ndr
->offset
= _relative_save_offset
;
11099 ndr
->flags
= _flags_save_string_array
;
11102 uint32_t _flags_save_string
= ndr
->flags
;
11103 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11104 if (r
->monitor_name
) {
11105 uint32_t _relative_save_offset
;
11106 _relative_save_offset
= ndr
->offset
;
11107 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11108 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11109 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11110 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11112 ndr
->offset
= _relative_save_offset
;
11114 ndr
->flags
= _flags_save_string
;
11117 uint32_t _flags_save_string
= ndr
->flags
;
11118 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11119 if (r
->default_datatype
) {
11120 uint32_t _relative_save_offset
;
11121 _relative_save_offset
= ndr
->offset
;
11122 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11123 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11124 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11125 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11126 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11127 ndr
->offset
= _relative_save_offset
;
11129 ndr
->flags
= _flags_save_string
;
11132 uint32_t _flags_save_string_array
= ndr
->flags
;
11133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11134 if (r
->previous_names
) {
11135 uint32_t _relative_save_offset
;
11136 _relative_save_offset
= ndr
->offset
;
11137 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11138 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11139 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11140 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11142 ndr
->offset
= _relative_save_offset
;
11144 ndr
->flags
= _flags_save_string_array
;
11147 return NDR_ERR_SUCCESS
;
11150 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11152 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11154 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11155 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11157 if (r
->driver_name
) {
11158 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11161 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11163 if (r
->architecture
) {
11164 ndr_print_string(ndr
, "architecture", r
->architecture
);
11167 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11169 if (r
->driver_path
) {
11170 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11173 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11175 if (r
->data_file
) {
11176 ndr_print_string(ndr
, "data_file", r
->data_file
);
11179 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11181 if (r
->config_file
) {
11182 ndr_print_string(ndr
, "config_file", r
->config_file
);
11185 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11187 if (r
->help_file
) {
11188 ndr_print_string(ndr
, "help_file", r
->help_file
);
11191 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11193 if (r
->dependent_files
) {
11194 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11197 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11199 if (r
->monitor_name
) {
11200 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11203 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11205 if (r
->default_datatype
) {
11206 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11209 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11211 if (r
->previous_names
) {
11212 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11218 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11220 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11223 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11225 if (ndr_flags
& NDR_SCALARS
) {
11226 NDR_CHECK(ndr_push_align(ndr
, 4));
11227 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11229 uint32_t _flags_save_string
= ndr
->flags
;
11230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11231 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11232 ndr
->flags
= _flags_save_string
;
11235 uint32_t _flags_save_string
= ndr
->flags
;
11236 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11237 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11238 ndr
->flags
= _flags_save_string
;
11241 uint32_t _flags_save_string
= ndr
->flags
;
11242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11243 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11244 ndr
->flags
= _flags_save_string
;
11247 uint32_t _flags_save_string
= ndr
->flags
;
11248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11249 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11250 ndr
->flags
= _flags_save_string
;
11253 uint32_t _flags_save_string
= ndr
->flags
;
11254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11255 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11256 ndr
->flags
= _flags_save_string
;
11258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11262 if (ndr_flags
& NDR_BUFFERS
) {
11264 uint32_t _flags_save_string
= ndr
->flags
;
11265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11266 if (r
->driver_name
) {
11267 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11268 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11270 ndr
->flags
= _flags_save_string
;
11273 uint32_t _flags_save_string
= ndr
->flags
;
11274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11275 if (r
->architecture
) {
11276 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11277 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11279 ndr
->flags
= _flags_save_string
;
11282 uint32_t _flags_save_string
= ndr
->flags
;
11283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11284 if (r
->driver_path
) {
11285 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11286 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
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 if (r
->data_file
) {
11294 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11295 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11297 ndr
->flags
= _flags_save_string
;
11300 uint32_t _flags_save_string
= ndr
->flags
;
11301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11302 if (r
->config_file
) {
11303 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11306 ndr
->flags
= _flags_save_string
;
11309 return NDR_ERR_SUCCESS
;
11312 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11314 uint32_t _ptr_driver_name
;
11315 TALLOC_CTX
*_mem_save_driver_name_0
;
11316 uint32_t _ptr_architecture
;
11317 TALLOC_CTX
*_mem_save_architecture_0
;
11318 uint32_t _ptr_driver_path
;
11319 TALLOC_CTX
*_mem_save_driver_path_0
;
11320 uint32_t _ptr_data_file
;
11321 TALLOC_CTX
*_mem_save_data_file_0
;
11322 uint32_t _ptr_config_file
;
11323 TALLOC_CTX
*_mem_save_config_file_0
;
11324 if (ndr_flags
& NDR_SCALARS
) {
11325 NDR_CHECK(ndr_pull_align(ndr
, 4));
11326 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11328 uint32_t _flags_save_string
= ndr
->flags
;
11329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11331 if (_ptr_driver_name
) {
11332 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11333 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11335 r
->driver_name
= NULL
;
11337 ndr
->flags
= _flags_save_string
;
11340 uint32_t _flags_save_string
= ndr
->flags
;
11341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11343 if (_ptr_architecture
) {
11344 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11345 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11347 r
->architecture
= NULL
;
11349 ndr
->flags
= _flags_save_string
;
11352 uint32_t _flags_save_string
= ndr
->flags
;
11353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11354 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11355 if (_ptr_driver_path
) {
11356 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11357 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11359 r
->driver_path
= NULL
;
11361 ndr
->flags
= _flags_save_string
;
11364 uint32_t _flags_save_string
= ndr
->flags
;
11365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11366 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11367 if (_ptr_data_file
) {
11368 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11369 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11371 r
->data_file
= NULL
;
11373 ndr
->flags
= _flags_save_string
;
11376 uint32_t _flags_save_string
= ndr
->flags
;
11377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11379 if (_ptr_config_file
) {
11380 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11381 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11383 r
->config_file
= NULL
;
11385 ndr
->flags
= _flags_save_string
;
11387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11391 if (ndr_flags
& NDR_BUFFERS
) {
11393 uint32_t _flags_save_string
= ndr
->flags
;
11394 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11395 if (r
->driver_name
) {
11396 uint32_t _relative_save_offset
;
11397 _relative_save_offset
= ndr
->offset
;
11398 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11399 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11400 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11401 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11403 ndr
->offset
= _relative_save_offset
;
11405 ndr
->flags
= _flags_save_string
;
11408 uint32_t _flags_save_string
= ndr
->flags
;
11409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11410 if (r
->architecture
) {
11411 uint32_t _relative_save_offset
;
11412 _relative_save_offset
= ndr
->offset
;
11413 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11414 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11415 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11416 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11418 ndr
->offset
= _relative_save_offset
;
11420 ndr
->flags
= _flags_save_string
;
11423 uint32_t _flags_save_string
= ndr
->flags
;
11424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11425 if (r
->driver_path
) {
11426 uint32_t _relative_save_offset
;
11427 _relative_save_offset
= ndr
->offset
;
11428 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11429 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11430 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11431 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11433 ndr
->offset
= _relative_save_offset
;
11435 ndr
->flags
= _flags_save_string
;
11438 uint32_t _flags_save_string
= ndr
->flags
;
11439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11440 if (r
->data_file
) {
11441 uint32_t _relative_save_offset
;
11442 _relative_save_offset
= ndr
->offset
;
11443 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11444 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11445 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11446 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11448 ndr
->offset
= _relative_save_offset
;
11450 ndr
->flags
= _flags_save_string
;
11453 uint32_t _flags_save_string
= ndr
->flags
;
11454 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11455 if (r
->config_file
) {
11456 uint32_t _relative_save_offset
;
11457 _relative_save_offset
= ndr
->offset
;
11458 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11459 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11460 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11461 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11463 ndr
->offset
= _relative_save_offset
;
11465 ndr
->flags
= _flags_save_string
;
11468 return NDR_ERR_SUCCESS
;
11471 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
11473 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
11475 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11476 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11478 if (r
->driver_name
) {
11479 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11482 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11484 if (r
->architecture
) {
11485 ndr_print_string(ndr
, "architecture", r
->architecture
);
11488 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11490 if (r
->driver_path
) {
11491 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11494 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11496 if (r
->data_file
) {
11497 ndr_print_string(ndr
, "data_file", r
->data_file
);
11500 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11502 if (r
->config_file
) {
11503 ndr_print_string(ndr
, "config_file", r
->config_file
);
11506 ndr_print_uint32(ndr
, "driver_attributes", r
->driver_attributes
);
11507 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
11508 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
11512 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11514 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
11517 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
11519 if (ndr_flags
& NDR_SCALARS
) {
11520 NDR_CHECK(ndr_push_align(ndr
, 8));
11521 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11523 uint32_t _flags_save_string
= ndr
->flags
;
11524 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11526 ndr
->flags
= _flags_save_string
;
11529 uint32_t _flags_save_string
= ndr
->flags
;
11530 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11532 ndr
->flags
= _flags_save_string
;
11535 uint32_t _flags_save_string
= ndr
->flags
;
11536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11538 ndr
->flags
= _flags_save_string
;
11541 uint32_t _flags_save_string
= ndr
->flags
;
11542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11544 ndr
->flags
= _flags_save_string
;
11547 uint32_t _flags_save_string
= ndr
->flags
;
11548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11549 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11550 ndr
->flags
= _flags_save_string
;
11553 uint32_t _flags_save_string
= ndr
->flags
;
11554 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11555 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11556 ndr
->flags
= _flags_save_string
;
11559 uint32_t _flags_save_string_array
= ndr
->flags
;
11560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11561 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11562 ndr
->flags
= _flags_save_string_array
;
11565 uint32_t _flags_save_string
= ndr
->flags
;
11566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11567 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11568 ndr
->flags
= _flags_save_string
;
11571 uint32_t _flags_save_string
= ndr
->flags
;
11572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11573 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11574 ndr
->flags
= _flags_save_string
;
11577 uint32_t _flags_save_string_array
= ndr
->flags
;
11578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11579 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11580 ndr
->flags
= _flags_save_string_array
;
11582 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
11583 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
11585 uint32_t _flags_save_string
= ndr
->flags
;
11586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11587 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
11588 ndr
->flags
= _flags_save_string
;
11591 uint32_t _flags_save_string
= ndr
->flags
;
11592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
11594 ndr
->flags
= _flags_save_string
;
11597 uint32_t _flags_save_string
= ndr
->flags
;
11598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
11600 ndr
->flags
= _flags_save_string
;
11603 uint32_t _flags_save_string
= ndr
->flags
;
11604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
11606 ndr
->flags
= _flags_save_string
;
11609 if (ndr_flags
& NDR_BUFFERS
) {
11611 uint32_t _flags_save_string
= ndr
->flags
;
11612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11613 if (r
->driver_name
) {
11614 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11615 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11617 ndr
->flags
= _flags_save_string
;
11620 uint32_t _flags_save_string
= ndr
->flags
;
11621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11622 if (r
->architecture
) {
11623 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11624 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
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
->driver_path
) {
11632 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11633 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11635 ndr
->flags
= _flags_save_string
;
11638 uint32_t _flags_save_string
= ndr
->flags
;
11639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11640 if (r
->data_file
) {
11641 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11642 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11644 ndr
->flags
= _flags_save_string
;
11647 uint32_t _flags_save_string
= ndr
->flags
;
11648 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11649 if (r
->config_file
) {
11650 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11651 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11653 ndr
->flags
= _flags_save_string
;
11656 uint32_t _flags_save_string
= ndr
->flags
;
11657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11658 if (r
->help_file
) {
11659 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11660 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11662 ndr
->flags
= _flags_save_string
;
11665 uint32_t _flags_save_string_array
= ndr
->flags
;
11666 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11667 if (r
->dependent_files
) {
11668 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11669 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11671 ndr
->flags
= _flags_save_string_array
;
11674 uint32_t _flags_save_string
= ndr
->flags
;
11675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11676 if (r
->monitor_name
) {
11677 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11678 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11680 ndr
->flags
= _flags_save_string
;
11683 uint32_t _flags_save_string
= ndr
->flags
;
11684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11685 if (r
->default_datatype
) {
11686 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11687 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11689 ndr
->flags
= _flags_save_string
;
11692 uint32_t _flags_save_string_array
= ndr
->flags
;
11693 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11694 if (r
->previous_names
) {
11695 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11696 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11698 ndr
->flags
= _flags_save_string_array
;
11701 uint32_t _flags_save_string
= ndr
->flags
;
11702 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11703 if (r
->manufacturer_name
) {
11704 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
11705 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
11707 ndr
->flags
= _flags_save_string
;
11710 uint32_t _flags_save_string
= ndr
->flags
;
11711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11712 if (r
->manufacturer_url
) {
11713 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
11714 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
11716 ndr
->flags
= _flags_save_string
;
11719 uint32_t _flags_save_string
= ndr
->flags
;
11720 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11721 if (r
->hardware_id
) {
11722 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
11723 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
11725 ndr
->flags
= _flags_save_string
;
11728 uint32_t _flags_save_string
= ndr
->flags
;
11729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11731 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
11732 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
11734 ndr
->flags
= _flags_save_string
;
11737 return NDR_ERR_SUCCESS
;
11740 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
11742 uint32_t _ptr_driver_name
;
11743 TALLOC_CTX
*_mem_save_driver_name_0
;
11744 uint32_t _ptr_architecture
;
11745 TALLOC_CTX
*_mem_save_architecture_0
;
11746 uint32_t _ptr_driver_path
;
11747 TALLOC_CTX
*_mem_save_driver_path_0
;
11748 uint32_t _ptr_data_file
;
11749 TALLOC_CTX
*_mem_save_data_file_0
;
11750 uint32_t _ptr_config_file
;
11751 TALLOC_CTX
*_mem_save_config_file_0
;
11752 uint32_t _ptr_help_file
;
11753 TALLOC_CTX
*_mem_save_help_file_0
;
11754 uint32_t _ptr_dependent_files
;
11755 TALLOC_CTX
*_mem_save_dependent_files_0
;
11756 uint32_t _ptr_monitor_name
;
11757 TALLOC_CTX
*_mem_save_monitor_name_0
;
11758 uint32_t _ptr_default_datatype
;
11759 TALLOC_CTX
*_mem_save_default_datatype_0
;
11760 uint32_t _ptr_previous_names
;
11761 TALLOC_CTX
*_mem_save_previous_names_0
;
11762 uint32_t _ptr_manufacturer_name
;
11763 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
11764 uint32_t _ptr_manufacturer_url
;
11765 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
11766 uint32_t _ptr_hardware_id
;
11767 TALLOC_CTX
*_mem_save_hardware_id_0
;
11768 uint32_t _ptr_provider
;
11769 TALLOC_CTX
*_mem_save_provider_0
;
11770 if (ndr_flags
& NDR_SCALARS
) {
11771 NDR_CHECK(ndr_pull_align(ndr
, 8));
11772 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11774 uint32_t _flags_save_string
= ndr
->flags
;
11775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11777 if (_ptr_driver_name
) {
11778 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11781 r
->driver_name
= NULL
;
11783 ndr
->flags
= _flags_save_string
;
11786 uint32_t _flags_save_string
= ndr
->flags
;
11787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11789 if (_ptr_architecture
) {
11790 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11793 r
->architecture
= NULL
;
11795 ndr
->flags
= _flags_save_string
;
11798 uint32_t _flags_save_string
= ndr
->flags
;
11799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11801 if (_ptr_driver_path
) {
11802 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11803 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11805 r
->driver_path
= NULL
;
11807 ndr
->flags
= _flags_save_string
;
11810 uint32_t _flags_save_string
= ndr
->flags
;
11811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11813 if (_ptr_data_file
) {
11814 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11815 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11817 r
->data_file
= NULL
;
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_pull_generic_ptr(ndr
, &_ptr_config_file
));
11825 if (_ptr_config_file
) {
11826 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11827 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11829 r
->config_file
= NULL
;
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_pull_generic_ptr(ndr
, &_ptr_help_file
));
11837 if (_ptr_help_file
) {
11838 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11839 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11841 r
->help_file
= NULL
;
11843 ndr
->flags
= _flags_save_string
;
11846 uint32_t _flags_save_string_array
= ndr
->flags
;
11847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11849 if (_ptr_dependent_files
) {
11850 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11851 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11853 r
->dependent_files
= NULL
;
11855 ndr
->flags
= _flags_save_string_array
;
11858 uint32_t _flags_save_string
= ndr
->flags
;
11859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11861 if (_ptr_monitor_name
) {
11862 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11863 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11865 r
->monitor_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11873 if (_ptr_default_datatype
) {
11874 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11875 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11877 r
->default_datatype
= NULL
;
11879 ndr
->flags
= _flags_save_string
;
11882 uint32_t _flags_save_string_array
= ndr
->flags
;
11883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11885 if (_ptr_previous_names
) {
11886 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11887 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11889 r
->previous_names
= NULL
;
11891 ndr
->flags
= _flags_save_string_array
;
11893 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
11894 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
11896 uint32_t _flags_save_string
= ndr
->flags
;
11897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11898 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
11899 if (_ptr_manufacturer_name
) {
11900 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
11901 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
11903 r
->manufacturer_name
= NULL
;
11905 ndr
->flags
= _flags_save_string
;
11908 uint32_t _flags_save_string
= ndr
->flags
;
11909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
11911 if (_ptr_manufacturer_url
) {
11912 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
11913 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
11915 r
->manufacturer_url
= NULL
;
11917 ndr
->flags
= _flags_save_string
;
11920 uint32_t _flags_save_string
= ndr
->flags
;
11921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
11923 if (_ptr_hardware_id
) {
11924 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
11925 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
11927 r
->hardware_id
= NULL
;
11929 ndr
->flags
= _flags_save_string
;
11932 uint32_t _flags_save_string
= ndr
->flags
;
11933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11934 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
11935 if (_ptr_provider
) {
11936 NDR_PULL_ALLOC(ndr
, r
->provider
);
11937 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
11939 r
->provider
= NULL
;
11941 ndr
->flags
= _flags_save_string
;
11944 if (ndr_flags
& NDR_BUFFERS
) {
11946 uint32_t _flags_save_string
= ndr
->flags
;
11947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11948 if (r
->driver_name
) {
11949 uint32_t _relative_save_offset
;
11950 _relative_save_offset
= ndr
->offset
;
11951 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11952 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11953 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11954 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11956 ndr
->offset
= _relative_save_offset
;
11958 ndr
->flags
= _flags_save_string
;
11961 uint32_t _flags_save_string
= ndr
->flags
;
11962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11963 if (r
->architecture
) {
11964 uint32_t _relative_save_offset
;
11965 _relative_save_offset
= ndr
->offset
;
11966 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11967 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11968 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11969 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11971 ndr
->offset
= _relative_save_offset
;
11973 ndr
->flags
= _flags_save_string
;
11976 uint32_t _flags_save_string
= ndr
->flags
;
11977 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11978 if (r
->driver_path
) {
11979 uint32_t _relative_save_offset
;
11980 _relative_save_offset
= ndr
->offset
;
11981 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11982 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11983 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11984 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11986 ndr
->offset
= _relative_save_offset
;
11988 ndr
->flags
= _flags_save_string
;
11991 uint32_t _flags_save_string
= ndr
->flags
;
11992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11993 if (r
->data_file
) {
11994 uint32_t _relative_save_offset
;
11995 _relative_save_offset
= ndr
->offset
;
11996 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11997 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11998 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11999 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12001 ndr
->offset
= _relative_save_offset
;
12003 ndr
->flags
= _flags_save_string
;
12006 uint32_t _flags_save_string
= ndr
->flags
;
12007 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12008 if (r
->config_file
) {
12009 uint32_t _relative_save_offset
;
12010 _relative_save_offset
= ndr
->offset
;
12011 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12012 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12013 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12014 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12016 ndr
->offset
= _relative_save_offset
;
12018 ndr
->flags
= _flags_save_string
;
12021 uint32_t _flags_save_string
= ndr
->flags
;
12022 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12023 if (r
->help_file
) {
12024 uint32_t _relative_save_offset
;
12025 _relative_save_offset
= ndr
->offset
;
12026 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12027 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12028 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12029 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12031 ndr
->offset
= _relative_save_offset
;
12033 ndr
->flags
= _flags_save_string
;
12036 uint32_t _flags_save_string_array
= ndr
->flags
;
12037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12038 if (r
->dependent_files
) {
12039 uint32_t _relative_save_offset
;
12040 _relative_save_offset
= ndr
->offset
;
12041 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12042 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12043 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12044 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12046 ndr
->offset
= _relative_save_offset
;
12048 ndr
->flags
= _flags_save_string_array
;
12051 uint32_t _flags_save_string
= ndr
->flags
;
12052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12053 if (r
->monitor_name
) {
12054 uint32_t _relative_save_offset
;
12055 _relative_save_offset
= ndr
->offset
;
12056 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12057 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12058 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12059 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12061 ndr
->offset
= _relative_save_offset
;
12063 ndr
->flags
= _flags_save_string
;
12066 uint32_t _flags_save_string
= ndr
->flags
;
12067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12068 if (r
->default_datatype
) {
12069 uint32_t _relative_save_offset
;
12070 _relative_save_offset
= ndr
->offset
;
12071 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12072 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12073 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12074 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12076 ndr
->offset
= _relative_save_offset
;
12078 ndr
->flags
= _flags_save_string
;
12081 uint32_t _flags_save_string_array
= ndr
->flags
;
12082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12083 if (r
->previous_names
) {
12084 uint32_t _relative_save_offset
;
12085 _relative_save_offset
= ndr
->offset
;
12086 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12087 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12088 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12089 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12091 ndr
->offset
= _relative_save_offset
;
12093 ndr
->flags
= _flags_save_string_array
;
12096 uint32_t _flags_save_string
= ndr
->flags
;
12097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12098 if (r
->manufacturer_name
) {
12099 uint32_t _relative_save_offset
;
12100 _relative_save_offset
= ndr
->offset
;
12101 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12102 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12103 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12104 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12106 ndr
->offset
= _relative_save_offset
;
12108 ndr
->flags
= _flags_save_string
;
12111 uint32_t _flags_save_string
= ndr
->flags
;
12112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12113 if (r
->manufacturer_url
) {
12114 uint32_t _relative_save_offset
;
12115 _relative_save_offset
= ndr
->offset
;
12116 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12117 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12118 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12119 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12121 ndr
->offset
= _relative_save_offset
;
12123 ndr
->flags
= _flags_save_string
;
12126 uint32_t _flags_save_string
= ndr
->flags
;
12127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12128 if (r
->hardware_id
) {
12129 uint32_t _relative_save_offset
;
12130 _relative_save_offset
= ndr
->offset
;
12131 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12132 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12133 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12134 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12136 ndr
->offset
= _relative_save_offset
;
12138 ndr
->flags
= _flags_save_string
;
12141 uint32_t _flags_save_string
= ndr
->flags
;
12142 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12144 uint32_t _relative_save_offset
;
12145 _relative_save_offset
= ndr
->offset
;
12146 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12147 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12148 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12149 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12151 ndr
->offset
= _relative_save_offset
;
12153 ndr
->flags
= _flags_save_string
;
12156 return NDR_ERR_SUCCESS
;
12159 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12161 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12163 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12164 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12166 if (r
->driver_name
) {
12167 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12170 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12172 if (r
->architecture
) {
12173 ndr_print_string(ndr
, "architecture", r
->architecture
);
12176 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12178 if (r
->driver_path
) {
12179 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12182 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12184 if (r
->data_file
) {
12185 ndr_print_string(ndr
, "data_file", r
->data_file
);
12188 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12190 if (r
->config_file
) {
12191 ndr_print_string(ndr
, "config_file", r
->config_file
);
12194 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12196 if (r
->help_file
) {
12197 ndr_print_string(ndr
, "help_file", r
->help_file
);
12200 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12202 if (r
->dependent_files
) {
12203 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12206 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12208 if (r
->monitor_name
) {
12209 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12212 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12214 if (r
->default_datatype
) {
12215 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12218 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12220 if (r
->previous_names
) {
12221 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12224 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12225 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12226 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12228 if (r
->manufacturer_name
) {
12229 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12232 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12234 if (r
->manufacturer_url
) {
12235 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12238 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12240 if (r
->hardware_id
) {
12241 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12244 ndr_print_ptr(ndr
, "provider", r
->provider
);
12247 ndr_print_string(ndr
, "provider", r
->provider
);
12253 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12255 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12258 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12260 if (ndr_flags
& NDR_SCALARS
) {
12261 NDR_CHECK(ndr_push_align(ndr
, 8));
12262 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12264 uint32_t _flags_save_string
= ndr
->flags
;
12265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12266 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12267 ndr
->flags
= _flags_save_string
;
12270 uint32_t _flags_save_string
= ndr
->flags
;
12271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12272 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12273 ndr
->flags
= _flags_save_string
;
12276 uint32_t _flags_save_string
= ndr
->flags
;
12277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12278 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12279 ndr
->flags
= _flags_save_string
;
12282 uint32_t _flags_save_string
= ndr
->flags
;
12283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12284 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12285 ndr
->flags
= _flags_save_string
;
12288 uint32_t _flags_save_string
= ndr
->flags
;
12289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12290 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12291 ndr
->flags
= _flags_save_string
;
12294 uint32_t _flags_save_string
= ndr
->flags
;
12295 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12296 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12303 ndr
->flags
= _flags_save_string
;
12306 uint32_t _flags_save_string
= ndr
->flags
;
12307 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12308 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12309 ndr
->flags
= _flags_save_string
;
12312 uint32_t _flags_save_string_array
= ndr
->flags
;
12313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12314 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12315 ndr
->flags
= _flags_save_string_array
;
12318 uint32_t _flags_save_string_array
= ndr
->flags
;
12319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12320 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12321 ndr
->flags
= _flags_save_string_array
;
12323 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12324 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12326 uint32_t _flags_save_string
= ndr
->flags
;
12327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12328 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12329 ndr
->flags
= _flags_save_string
;
12332 uint32_t _flags_save_string
= ndr
->flags
;
12333 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12334 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12335 ndr
->flags
= _flags_save_string
;
12338 uint32_t _flags_save_string
= ndr
->flags
;
12339 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12340 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12341 ndr
->flags
= _flags_save_string
;
12344 uint32_t _flags_save_string
= ndr
->flags
;
12345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12346 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12347 ndr
->flags
= _flags_save_string
;
12350 uint32_t _flags_save_string
= ndr
->flags
;
12351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12352 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12353 ndr
->flags
= _flags_save_string
;
12356 uint32_t _flags_save_string
= ndr
->flags
;
12357 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12358 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12359 ndr
->flags
= _flags_save_string
;
12362 uint32_t _flags_save_string_array
= ndr
->flags
;
12363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12364 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12365 ndr
->flags
= _flags_save_string_array
;
12368 uint32_t _flags_save_string
= ndr
->flags
;
12369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12370 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12371 ndr
->flags
= _flags_save_string
;
12373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12375 uint32_t _flags_save_string_array
= ndr
->flags
;
12376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12377 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12378 ndr
->flags
= _flags_save_string_array
;
12380 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12381 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12383 if (ndr_flags
& NDR_BUFFERS
) {
12385 uint32_t _flags_save_string
= ndr
->flags
;
12386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12387 if (r
->driver_name
) {
12388 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12389 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12391 ndr
->flags
= _flags_save_string
;
12394 uint32_t _flags_save_string
= ndr
->flags
;
12395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12396 if (r
->architecture
) {
12397 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12398 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12400 ndr
->flags
= _flags_save_string
;
12403 uint32_t _flags_save_string
= ndr
->flags
;
12404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12405 if (r
->driver_path
) {
12406 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12407 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
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 if (r
->data_file
) {
12415 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12416 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12418 ndr
->flags
= _flags_save_string
;
12421 uint32_t _flags_save_string
= ndr
->flags
;
12422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12423 if (r
->config_file
) {
12424 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12425 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12427 ndr
->flags
= _flags_save_string
;
12430 uint32_t _flags_save_string
= ndr
->flags
;
12431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12432 if (r
->help_file
) {
12433 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12434 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12436 ndr
->flags
= _flags_save_string
;
12439 uint32_t _flags_save_string
= ndr
->flags
;
12440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12441 if (r
->monitor_name
) {
12442 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12443 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12445 ndr
->flags
= _flags_save_string
;
12448 uint32_t _flags_save_string
= ndr
->flags
;
12449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12450 if (r
->default_datatype
) {
12451 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12452 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12454 ndr
->flags
= _flags_save_string
;
12457 uint32_t _flags_save_string_array
= ndr
->flags
;
12458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12459 if (r
->dependent_files
) {
12460 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12461 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12463 ndr
->flags
= _flags_save_string_array
;
12466 uint32_t _flags_save_string_array
= ndr
->flags
;
12467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12468 if (r
->previous_names
) {
12469 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12470 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12472 ndr
->flags
= _flags_save_string_array
;
12475 uint32_t _flags_save_string
= ndr
->flags
;
12476 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12477 if (r
->manufacturer_name
) {
12478 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12479 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12481 ndr
->flags
= _flags_save_string
;
12484 uint32_t _flags_save_string
= ndr
->flags
;
12485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12486 if (r
->manufacturer_url
) {
12487 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12488 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12490 ndr
->flags
= _flags_save_string
;
12493 uint32_t _flags_save_string
= ndr
->flags
;
12494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12495 if (r
->hardware_id
) {
12496 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12497 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12499 ndr
->flags
= _flags_save_string
;
12502 uint32_t _flags_save_string
= ndr
->flags
;
12503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12505 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12506 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12508 ndr
->flags
= _flags_save_string
;
12511 uint32_t _flags_save_string
= ndr
->flags
;
12512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12513 if (r
->print_processor
) {
12514 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
12515 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
12517 ndr
->flags
= _flags_save_string
;
12520 uint32_t _flags_save_string
= ndr
->flags
;
12521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12522 if (r
->vendor_setup
) {
12523 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
12524 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
12526 ndr
->flags
= _flags_save_string
;
12529 uint32_t _flags_save_string_array
= ndr
->flags
;
12530 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12531 if (r
->color_profiles
) {
12532 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
12533 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
12535 ndr
->flags
= _flags_save_string_array
;
12538 uint32_t _flags_save_string
= ndr
->flags
;
12539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12541 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
12542 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
12544 ndr
->flags
= _flags_save_string
;
12547 uint32_t _flags_save_string_array
= ndr
->flags
;
12548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12549 if (r
->core_driver_dependencies
) {
12550 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
12551 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
12553 ndr
->flags
= _flags_save_string_array
;
12556 return NDR_ERR_SUCCESS
;
12559 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
12561 uint32_t _ptr_driver_name
;
12562 TALLOC_CTX
*_mem_save_driver_name_0
;
12563 uint32_t _ptr_architecture
;
12564 TALLOC_CTX
*_mem_save_architecture_0
;
12565 uint32_t _ptr_driver_path
;
12566 TALLOC_CTX
*_mem_save_driver_path_0
;
12567 uint32_t _ptr_data_file
;
12568 TALLOC_CTX
*_mem_save_data_file_0
;
12569 uint32_t _ptr_config_file
;
12570 TALLOC_CTX
*_mem_save_config_file_0
;
12571 uint32_t _ptr_help_file
;
12572 TALLOC_CTX
*_mem_save_help_file_0
;
12573 uint32_t _ptr_monitor_name
;
12574 TALLOC_CTX
*_mem_save_monitor_name_0
;
12575 uint32_t _ptr_default_datatype
;
12576 TALLOC_CTX
*_mem_save_default_datatype_0
;
12577 uint32_t _ptr_dependent_files
;
12578 TALLOC_CTX
*_mem_save_dependent_files_0
;
12579 uint32_t _ptr_previous_names
;
12580 TALLOC_CTX
*_mem_save_previous_names_0
;
12581 uint32_t _ptr_manufacturer_name
;
12582 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12583 uint32_t _ptr_manufacturer_url
;
12584 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12585 uint32_t _ptr_hardware_id
;
12586 TALLOC_CTX
*_mem_save_hardware_id_0
;
12587 uint32_t _ptr_provider
;
12588 TALLOC_CTX
*_mem_save_provider_0
;
12589 uint32_t _ptr_print_processor
;
12590 TALLOC_CTX
*_mem_save_print_processor_0
;
12591 uint32_t _ptr_vendor_setup
;
12592 TALLOC_CTX
*_mem_save_vendor_setup_0
;
12593 uint32_t _ptr_color_profiles
;
12594 TALLOC_CTX
*_mem_save_color_profiles_0
;
12595 uint32_t _ptr_inf_path
;
12596 TALLOC_CTX
*_mem_save_inf_path_0
;
12597 uint32_t _ptr_core_driver_dependencies
;
12598 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
12599 if (ndr_flags
& NDR_SCALARS
) {
12600 NDR_CHECK(ndr_pull_align(ndr
, 8));
12601 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12603 uint32_t _flags_save_string
= ndr
->flags
;
12604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12605 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12606 if (_ptr_driver_name
) {
12607 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12608 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12610 r
->driver_name
= NULL
;
12612 ndr
->flags
= _flags_save_string
;
12615 uint32_t _flags_save_string
= ndr
->flags
;
12616 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12618 if (_ptr_architecture
) {
12619 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12620 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12622 r
->architecture
= NULL
;
12624 ndr
->flags
= _flags_save_string
;
12627 uint32_t _flags_save_string
= ndr
->flags
;
12628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12630 if (_ptr_driver_path
) {
12631 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12632 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12634 r
->driver_path
= NULL
;
12636 ndr
->flags
= _flags_save_string
;
12639 uint32_t _flags_save_string
= ndr
->flags
;
12640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12642 if (_ptr_data_file
) {
12643 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12644 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12646 r
->data_file
= NULL
;
12648 ndr
->flags
= _flags_save_string
;
12651 uint32_t _flags_save_string
= ndr
->flags
;
12652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12654 if (_ptr_config_file
) {
12655 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12656 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12658 r
->config_file
= NULL
;
12660 ndr
->flags
= _flags_save_string
;
12663 uint32_t _flags_save_string
= ndr
->flags
;
12664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12666 if (_ptr_help_file
) {
12667 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12668 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12670 r
->help_file
= NULL
;
12672 ndr
->flags
= _flags_save_string
;
12675 uint32_t _flags_save_string
= ndr
->flags
;
12676 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12677 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12678 if (_ptr_monitor_name
) {
12679 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12680 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12682 r
->monitor_name
= NULL
;
12684 ndr
->flags
= _flags_save_string
;
12687 uint32_t _flags_save_string
= ndr
->flags
;
12688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12690 if (_ptr_default_datatype
) {
12691 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12692 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12694 r
->default_datatype
= NULL
;
12696 ndr
->flags
= _flags_save_string
;
12699 uint32_t _flags_save_string_array
= ndr
->flags
;
12700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12702 if (_ptr_dependent_files
) {
12703 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12704 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12706 r
->dependent_files
= NULL
;
12708 ndr
->flags
= _flags_save_string_array
;
12711 uint32_t _flags_save_string_array
= ndr
->flags
;
12712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12714 if (_ptr_previous_names
) {
12715 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12716 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12718 r
->previous_names
= NULL
;
12720 ndr
->flags
= _flags_save_string_array
;
12722 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12723 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12725 uint32_t _flags_save_string
= ndr
->flags
;
12726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12728 if (_ptr_manufacturer_name
) {
12729 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12732 r
->manufacturer_name
= NULL
;
12734 ndr
->flags
= _flags_save_string
;
12737 uint32_t _flags_save_string
= ndr
->flags
;
12738 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12739 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12740 if (_ptr_manufacturer_url
) {
12741 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12742 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12744 r
->manufacturer_url
= NULL
;
12746 ndr
->flags
= _flags_save_string
;
12749 uint32_t _flags_save_string
= ndr
->flags
;
12750 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12752 if (_ptr_hardware_id
) {
12753 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12754 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12756 r
->hardware_id
= NULL
;
12758 ndr
->flags
= _flags_save_string
;
12761 uint32_t _flags_save_string
= ndr
->flags
;
12762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12764 if (_ptr_provider
) {
12765 NDR_PULL_ALLOC(ndr
, r
->provider
);
12766 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12768 r
->provider
= NULL
;
12770 ndr
->flags
= _flags_save_string
;
12773 uint32_t _flags_save_string
= ndr
->flags
;
12774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
12776 if (_ptr_print_processor
) {
12777 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
12778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
12780 r
->print_processor
= NULL
;
12782 ndr
->flags
= _flags_save_string
;
12785 uint32_t _flags_save_string
= ndr
->flags
;
12786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
12788 if (_ptr_vendor_setup
) {
12789 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
12790 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
12792 r
->vendor_setup
= NULL
;
12794 ndr
->flags
= _flags_save_string
;
12797 uint32_t _flags_save_string_array
= ndr
->flags
;
12798 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
12800 if (_ptr_color_profiles
) {
12801 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
12802 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
12804 r
->color_profiles
= NULL
;
12806 ndr
->flags
= _flags_save_string_array
;
12809 uint32_t _flags_save_string
= ndr
->flags
;
12810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
12812 if (_ptr_inf_path
) {
12813 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
12814 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
12816 r
->inf_path
= NULL
;
12818 ndr
->flags
= _flags_save_string
;
12820 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
12822 uint32_t _flags_save_string_array
= ndr
->flags
;
12823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
12825 if (_ptr_core_driver_dependencies
) {
12826 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
12827 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
12829 r
->core_driver_dependencies
= NULL
;
12831 ndr
->flags
= _flags_save_string_array
;
12833 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
12834 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
12836 if (ndr_flags
& NDR_BUFFERS
) {
12838 uint32_t _flags_save_string
= ndr
->flags
;
12839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12840 if (r
->driver_name
) {
12841 uint32_t _relative_save_offset
;
12842 _relative_save_offset
= ndr
->offset
;
12843 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12844 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12845 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12846 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12848 ndr
->offset
= _relative_save_offset
;
12850 ndr
->flags
= _flags_save_string
;
12853 uint32_t _flags_save_string
= ndr
->flags
;
12854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12855 if (r
->architecture
) {
12856 uint32_t _relative_save_offset
;
12857 _relative_save_offset
= ndr
->offset
;
12858 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12859 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12860 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12861 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12863 ndr
->offset
= _relative_save_offset
;
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 if (r
->driver_path
) {
12871 uint32_t _relative_save_offset
;
12872 _relative_save_offset
= ndr
->offset
;
12873 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12874 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12875 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12876 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12877 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12878 ndr
->offset
= _relative_save_offset
;
12880 ndr
->flags
= _flags_save_string
;
12883 uint32_t _flags_save_string
= ndr
->flags
;
12884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12885 if (r
->data_file
) {
12886 uint32_t _relative_save_offset
;
12887 _relative_save_offset
= ndr
->offset
;
12888 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12889 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12890 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12891 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12893 ndr
->offset
= _relative_save_offset
;
12895 ndr
->flags
= _flags_save_string
;
12898 uint32_t _flags_save_string
= ndr
->flags
;
12899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12900 if (r
->config_file
) {
12901 uint32_t _relative_save_offset
;
12902 _relative_save_offset
= ndr
->offset
;
12903 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12904 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12905 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12906 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12908 ndr
->offset
= _relative_save_offset
;
12910 ndr
->flags
= _flags_save_string
;
12913 uint32_t _flags_save_string
= ndr
->flags
;
12914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12915 if (r
->help_file
) {
12916 uint32_t _relative_save_offset
;
12917 _relative_save_offset
= ndr
->offset
;
12918 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12919 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12920 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12921 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12923 ndr
->offset
= _relative_save_offset
;
12925 ndr
->flags
= _flags_save_string
;
12928 uint32_t _flags_save_string
= ndr
->flags
;
12929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12930 if (r
->monitor_name
) {
12931 uint32_t _relative_save_offset
;
12932 _relative_save_offset
= ndr
->offset
;
12933 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12934 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12935 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12936 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12938 ndr
->offset
= _relative_save_offset
;
12940 ndr
->flags
= _flags_save_string
;
12943 uint32_t _flags_save_string
= ndr
->flags
;
12944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12945 if (r
->default_datatype
) {
12946 uint32_t _relative_save_offset
;
12947 _relative_save_offset
= ndr
->offset
;
12948 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12949 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12950 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12951 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12953 ndr
->offset
= _relative_save_offset
;
12955 ndr
->flags
= _flags_save_string
;
12958 uint32_t _flags_save_string_array
= ndr
->flags
;
12959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12960 if (r
->dependent_files
) {
12961 uint32_t _relative_save_offset
;
12962 _relative_save_offset
= ndr
->offset
;
12963 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12964 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12965 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12966 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12968 ndr
->offset
= _relative_save_offset
;
12970 ndr
->flags
= _flags_save_string_array
;
12973 uint32_t _flags_save_string_array
= ndr
->flags
;
12974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12975 if (r
->previous_names
) {
12976 uint32_t _relative_save_offset
;
12977 _relative_save_offset
= ndr
->offset
;
12978 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12979 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12980 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12981 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12983 ndr
->offset
= _relative_save_offset
;
12985 ndr
->flags
= _flags_save_string_array
;
12988 uint32_t _flags_save_string
= ndr
->flags
;
12989 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12990 if (r
->manufacturer_name
) {
12991 uint32_t _relative_save_offset
;
12992 _relative_save_offset
= ndr
->offset
;
12993 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12994 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12995 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12996 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12998 ndr
->offset
= _relative_save_offset
;
13000 ndr
->flags
= _flags_save_string
;
13003 uint32_t _flags_save_string
= ndr
->flags
;
13004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13005 if (r
->manufacturer_url
) {
13006 uint32_t _relative_save_offset
;
13007 _relative_save_offset
= ndr
->offset
;
13008 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13009 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13010 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13011 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13013 ndr
->offset
= _relative_save_offset
;
13015 ndr
->flags
= _flags_save_string
;
13018 uint32_t _flags_save_string
= ndr
->flags
;
13019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13020 if (r
->hardware_id
) {
13021 uint32_t _relative_save_offset
;
13022 _relative_save_offset
= ndr
->offset
;
13023 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13024 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13025 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13026 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13028 ndr
->offset
= _relative_save_offset
;
13030 ndr
->flags
= _flags_save_string
;
13033 uint32_t _flags_save_string
= ndr
->flags
;
13034 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13036 uint32_t _relative_save_offset
;
13037 _relative_save_offset
= ndr
->offset
;
13038 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13039 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13040 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13041 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13043 ndr
->offset
= _relative_save_offset
;
13045 ndr
->flags
= _flags_save_string
;
13048 uint32_t _flags_save_string
= ndr
->flags
;
13049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13050 if (r
->print_processor
) {
13051 uint32_t _relative_save_offset
;
13052 _relative_save_offset
= ndr
->offset
;
13053 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13054 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13055 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13056 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13058 ndr
->offset
= _relative_save_offset
;
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 if (r
->vendor_setup
) {
13066 uint32_t _relative_save_offset
;
13067 _relative_save_offset
= ndr
->offset
;
13068 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13069 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13070 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13071 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13073 ndr
->offset
= _relative_save_offset
;
13075 ndr
->flags
= _flags_save_string
;
13078 uint32_t _flags_save_string_array
= ndr
->flags
;
13079 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13080 if (r
->color_profiles
) {
13081 uint32_t _relative_save_offset
;
13082 _relative_save_offset
= ndr
->offset
;
13083 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13084 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13085 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13086 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13088 ndr
->offset
= _relative_save_offset
;
13090 ndr
->flags
= _flags_save_string_array
;
13093 uint32_t _flags_save_string
= ndr
->flags
;
13094 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13096 uint32_t _relative_save_offset
;
13097 _relative_save_offset
= ndr
->offset
;
13098 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13099 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13100 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13101 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13103 ndr
->offset
= _relative_save_offset
;
13105 ndr
->flags
= _flags_save_string
;
13108 uint32_t _flags_save_string_array
= ndr
->flags
;
13109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13110 if (r
->core_driver_dependencies
) {
13111 uint32_t _relative_save_offset
;
13112 _relative_save_offset
= ndr
->offset
;
13113 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13114 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13115 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13116 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13118 ndr
->offset
= _relative_save_offset
;
13120 ndr
->flags
= _flags_save_string_array
;
13123 return NDR_ERR_SUCCESS
;
13126 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13128 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13130 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13131 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13133 if (r
->driver_name
) {
13134 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13137 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13139 if (r
->architecture
) {
13140 ndr_print_string(ndr
, "architecture", r
->architecture
);
13143 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13145 if (r
->driver_path
) {
13146 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13149 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13151 if (r
->data_file
) {
13152 ndr_print_string(ndr
, "data_file", r
->data_file
);
13155 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13157 if (r
->config_file
) {
13158 ndr_print_string(ndr
, "config_file", r
->config_file
);
13161 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13163 if (r
->help_file
) {
13164 ndr_print_string(ndr
, "help_file", r
->help_file
);
13167 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13169 if (r
->monitor_name
) {
13170 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13173 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13175 if (r
->default_datatype
) {
13176 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13179 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13181 if (r
->dependent_files
) {
13182 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13185 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13187 if (r
->previous_names
) {
13188 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13191 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13192 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13193 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13195 if (r
->manufacturer_name
) {
13196 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13199 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13201 if (r
->manufacturer_url
) {
13202 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13205 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13207 if (r
->hardware_id
) {
13208 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13211 ndr_print_ptr(ndr
, "provider", r
->provider
);
13214 ndr_print_string(ndr
, "provider", r
->provider
);
13217 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13219 if (r
->print_processor
) {
13220 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13223 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13225 if (r
->vendor_setup
) {
13226 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13229 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13231 if (r
->color_profiles
) {
13232 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13235 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13238 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13241 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13242 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13244 if (r
->core_driver_dependencies
) {
13245 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13248 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13249 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13253 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13255 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13258 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13261 return NDR_ERR_SUCCESS
;
13264 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13269 return NDR_ERR_SUCCESS
;
13272 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13274 const char *val
= NULL
;
13277 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13278 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13279 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13280 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13281 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13283 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13286 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13288 if (ndr_flags
& NDR_SCALARS
) {
13289 NDR_CHECK(ndr_push_align(ndr
, 4));
13291 uint32_t _flags_save_string
= ndr
->flags
;
13292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13293 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13294 ndr
->flags
= _flags_save_string
;
13296 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13299 if (ndr_flags
& NDR_BUFFERS
) {
13301 uint32_t _flags_save_string
= ndr
->flags
;
13302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13303 if (r
->file_name
) {
13304 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13305 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13307 ndr
->flags
= _flags_save_string
;
13310 return NDR_ERR_SUCCESS
;
13313 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13315 uint32_t _ptr_file_name
;
13316 TALLOC_CTX
*_mem_save_file_name_0
;
13317 if (ndr_flags
& NDR_SCALARS
) {
13318 NDR_CHECK(ndr_pull_align(ndr
, 4));
13320 uint32_t _flags_save_string
= ndr
->flags
;
13321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13323 if (_ptr_file_name
) {
13324 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13325 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13327 r
->file_name
= NULL
;
13329 ndr
->flags
= _flags_save_string
;
13331 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13334 if (ndr_flags
& NDR_BUFFERS
) {
13336 uint32_t _flags_save_string
= ndr
->flags
;
13337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13338 if (r
->file_name
) {
13339 uint32_t _relative_save_offset
;
13340 _relative_save_offset
= ndr
->offset
;
13341 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13342 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13343 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13344 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13346 ndr
->offset
= _relative_save_offset
;
13348 ndr
->flags
= _flags_save_string
;
13351 return NDR_ERR_SUCCESS
;
13354 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13356 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13358 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13360 if (r
->file_name
) {
13361 ndr_print_string(ndr
, "file_name", r
->file_name
);
13364 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13365 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13369 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13371 uint32_t cntr_file_info_1
;
13372 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13374 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13375 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13377 if (r
->driver_name
) {
13378 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13381 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13383 if (r
->architecture
) {
13384 ndr_print_string(ndr
, "architecture", r
->architecture
);
13387 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13389 if (r
->file_info
) {
13390 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13392 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13394 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13395 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13402 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13403 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13405 if (r
->monitor_name
) {
13406 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13409 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13411 if (r
->default_datatype
) {
13412 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13415 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13417 if (r
->previous_names
) {
13418 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13421 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13422 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13423 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13425 if (r
->manufacturer_name
) {
13426 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13429 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13431 if (r
->manufacturer_url
) {
13432 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13435 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13437 if (r
->hardware_id
) {
13438 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13441 ndr_print_ptr(ndr
, "provider", r
->provider
);
13444 ndr_print_string(ndr
, "provider", r
->provider
);
13450 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13452 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
13455 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
13457 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13458 if (ndr_flags
& NDR_SCALARS
) {
13459 int level
= ndr_push_get_switch_value(ndr
, r
);
13462 NDR_CHECK(ndr_push_align(ndr
, 4));
13463 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13464 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13468 NDR_CHECK(ndr_push_align(ndr
, 4));
13469 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13470 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13474 NDR_CHECK(ndr_push_align(ndr
, 4));
13475 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13476 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13480 NDR_CHECK(ndr_push_align(ndr
, 4));
13481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13482 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13486 NDR_CHECK(ndr_push_align(ndr
, 4));
13487 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13488 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13492 NDR_CHECK(ndr_push_align(ndr
, 8));
13493 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13494 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13498 NDR_CHECK(ndr_push_align(ndr
, 8));
13499 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13500 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13504 NDR_CHECK(ndr_push_align(ndr
, 8));
13505 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13506 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13514 if (ndr_flags
& NDR_BUFFERS
) {
13515 int level
= ndr_push_get_switch_value(ndr
, r
);
13516 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13519 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13523 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13527 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13531 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13535 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13539 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13543 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13547 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13555 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13556 return NDR_ERR_SUCCESS
;
13559 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
13561 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13563 level
= ndr_pull_get_switch_value(ndr
, r
);
13564 if (ndr_flags
& NDR_SCALARS
) {
13567 NDR_CHECK(ndr_pull_align(ndr
, 4));
13568 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13569 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13573 NDR_CHECK(ndr_pull_align(ndr
, 4));
13574 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13575 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13579 NDR_CHECK(ndr_pull_align(ndr
, 4));
13580 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13581 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13585 NDR_CHECK(ndr_pull_align(ndr
, 4));
13586 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13587 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13591 NDR_CHECK(ndr_pull_align(ndr
, 4));
13592 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13593 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13597 NDR_CHECK(ndr_pull_align(ndr
, 8));
13598 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13599 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13603 NDR_CHECK(ndr_pull_align(ndr
, 8));
13604 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13605 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13609 NDR_CHECK(ndr_pull_align(ndr
, 8));
13610 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13611 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13619 if (ndr_flags
& NDR_BUFFERS
) {
13620 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13623 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13627 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13631 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13635 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13639 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13643 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13647 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13651 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13659 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13660 return NDR_ERR_SUCCESS
;
13663 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
13666 level
= ndr_print_get_switch_value(ndr
, r
);
13667 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
13670 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
13674 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
13678 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
13682 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
13686 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
13690 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
13694 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
13698 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
13707 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13709 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
13712 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
13714 if (ndr_flags
& NDR_SCALARS
) {
13715 NDR_CHECK(ndr_push_align(ndr
, 4));
13717 uint32_t _flags_save_string
= ndr
->flags
;
13718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13719 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
13720 ndr
->flags
= _flags_save_string
;
13723 if (ndr_flags
& NDR_BUFFERS
) {
13725 return NDR_ERR_SUCCESS
;
13728 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
13730 if (ndr_flags
& NDR_SCALARS
) {
13731 NDR_CHECK(ndr_pull_align(ndr
, 4));
13733 uint32_t _flags_save_string
= ndr
->flags
;
13734 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13735 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
13736 ndr
->flags
= _flags_save_string
;
13739 if (ndr_flags
& NDR_BUFFERS
) {
13741 return NDR_ERR_SUCCESS
;
13744 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
13746 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
13748 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
13752 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13754 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
13757 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
13759 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13760 if (ndr_flags
& NDR_SCALARS
) {
13761 int level
= ndr_push_get_switch_value(ndr
, r
);
13764 NDR_CHECK(ndr_push_align(ndr
, 4));
13765 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13766 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13770 NDR_CHECK(ndr_push_align(ndr
, 4));
13771 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13772 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13777 if (ndr_flags
& NDR_BUFFERS
) {
13778 int level
= ndr_push_get_switch_value(ndr
, r
);
13779 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13789 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13790 return NDR_ERR_SUCCESS
;
13793 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
13795 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13797 level
= ndr_pull_get_switch_value(ndr
, r
);
13798 if (ndr_flags
& NDR_SCALARS
) {
13801 NDR_CHECK(ndr_pull_align(ndr
, 4));
13802 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13803 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13807 NDR_CHECK(ndr_pull_align(ndr
, 4));
13808 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13809 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13814 if (ndr_flags
& NDR_BUFFERS
) {
13815 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13825 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13826 return NDR_ERR_SUCCESS
;
13829 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
13832 level
= ndr_print_get_switch_value(ndr
, r
);
13833 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
13836 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13840 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13846 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13848 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
13851 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
13853 if (ndr_flags
& NDR_SCALARS
) {
13854 NDR_CHECK(ndr_push_align(ndr
, 4));
13856 uint32_t _flags_save_string
= ndr
->flags
;
13857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13858 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
13859 ndr
->flags
= _flags_save_string
;
13862 if (ndr_flags
& NDR_BUFFERS
) {
13864 uint32_t _flags_save_string
= ndr
->flags
;
13865 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13866 if (r
->print_processor_name
) {
13867 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
13868 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
13870 ndr
->flags
= _flags_save_string
;
13873 return NDR_ERR_SUCCESS
;
13876 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
13878 uint32_t _ptr_print_processor_name
;
13879 TALLOC_CTX
*_mem_save_print_processor_name_0
;
13880 if (ndr_flags
& NDR_SCALARS
) {
13881 NDR_CHECK(ndr_pull_align(ndr
, 4));
13883 uint32_t _flags_save_string
= ndr
->flags
;
13884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13885 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
13886 if (_ptr_print_processor_name
) {
13887 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
13888 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
13890 r
->print_processor_name
= NULL
;
13892 ndr
->flags
= _flags_save_string
;
13895 if (ndr_flags
& NDR_BUFFERS
) {
13897 uint32_t _flags_save_string
= ndr
->flags
;
13898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13899 if (r
->print_processor_name
) {
13900 uint32_t _relative_save_offset
;
13901 _relative_save_offset
= ndr
->offset
;
13902 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
13903 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13904 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
13905 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
13906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
13907 ndr
->offset
= _relative_save_offset
;
13909 ndr
->flags
= _flags_save_string
;
13912 return NDR_ERR_SUCCESS
;
13915 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
13917 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
13919 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
13921 if (r
->print_processor_name
) {
13922 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
13928 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13930 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
13933 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
13935 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13936 if (ndr_flags
& NDR_SCALARS
) {
13937 int level
= ndr_push_get_switch_value(ndr
, r
);
13940 NDR_CHECK(ndr_push_align(ndr
, 4));
13941 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13942 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13950 if (ndr_flags
& NDR_BUFFERS
) {
13951 int level
= ndr_push_get_switch_value(ndr
, r
);
13952 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13955 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13963 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13964 return NDR_ERR_SUCCESS
;
13967 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
13969 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13971 level
= ndr_pull_get_switch_value(ndr
, r
);
13972 if (ndr_flags
& NDR_SCALARS
) {
13975 NDR_CHECK(ndr_pull_align(ndr
, 4));
13976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13977 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13985 if (ndr_flags
& NDR_BUFFERS
) {
13986 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13989 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13997 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13998 return NDR_ERR_SUCCESS
;
14001 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14004 level
= ndr_print_get_switch_value(ndr
, r
);
14005 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14008 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14017 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14019 if (ndr_flags
& NDR_SCALARS
) {
14020 NDR_CHECK(ndr_push_align(ndr
, 4));
14022 uint32_t _flags_save_string
= ndr
->flags
;
14023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14024 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14025 ndr
->flags
= _flags_save_string
;
14028 if (ndr_flags
& NDR_BUFFERS
) {
14030 return NDR_ERR_SUCCESS
;
14033 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14035 if (ndr_flags
& NDR_SCALARS
) {
14036 NDR_CHECK(ndr_pull_align(ndr
, 4));
14038 uint32_t _flags_save_string
= ndr
->flags
;
14039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14040 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14041 ndr
->flags
= _flags_save_string
;
14044 if (ndr_flags
& NDR_BUFFERS
) {
14046 return NDR_ERR_SUCCESS
;
14049 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14051 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14053 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14057 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14059 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14062 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14064 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14065 if (ndr_flags
& NDR_SCALARS
) {
14066 int level
= ndr_push_get_switch_value(ndr
, r
);
14069 NDR_CHECK(ndr_push_align(ndr
, 4));
14070 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14071 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14075 NDR_CHECK(ndr_push_align(ndr
, 4));
14076 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14077 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14082 if (ndr_flags
& NDR_BUFFERS
) {
14083 int level
= ndr_push_get_switch_value(ndr
, r
);
14084 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14094 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14095 return NDR_ERR_SUCCESS
;
14098 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14100 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14102 level
= ndr_pull_get_switch_value(ndr
, r
);
14103 if (ndr_flags
& NDR_SCALARS
) {
14106 NDR_CHECK(ndr_pull_align(ndr
, 4));
14107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14108 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14112 NDR_CHECK(ndr_pull_align(ndr
, 4));
14113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14114 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14119 if (ndr_flags
& NDR_BUFFERS
) {
14120 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14130 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14131 return NDR_ERR_SUCCESS
;
14134 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14137 level
= ndr_print_get_switch_value(ndr
, r
);
14138 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14141 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14145 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14151 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14153 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14156 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14158 if (ndr_flags
& NDR_SCALARS
) {
14159 NDR_CHECK(ndr_push_align(ndr
, 4));
14160 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14162 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14164 if (ndr_flags
& NDR_BUFFERS
) {
14165 if (r
->document_name
) {
14166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14169 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14171 if (r
->output_file
) {
14172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14175 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14181 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14184 return NDR_ERR_SUCCESS
;
14187 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14189 uint32_t _ptr_document_name
;
14190 TALLOC_CTX
*_mem_save_document_name_0
;
14191 uint32_t _ptr_output_file
;
14192 TALLOC_CTX
*_mem_save_output_file_0
;
14193 uint32_t _ptr_datatype
;
14194 TALLOC_CTX
*_mem_save_datatype_0
;
14195 if (ndr_flags
& NDR_SCALARS
) {
14196 NDR_CHECK(ndr_pull_align(ndr
, 4));
14197 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14198 if (_ptr_document_name
) {
14199 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14201 r
->document_name
= NULL
;
14203 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14204 if (_ptr_output_file
) {
14205 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14207 r
->output_file
= NULL
;
14209 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14210 if (_ptr_datatype
) {
14211 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14213 r
->datatype
= NULL
;
14216 if (ndr_flags
& NDR_BUFFERS
) {
14217 if (r
->document_name
) {
14218 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14219 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14221 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14222 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14223 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
));
14225 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14226 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14229 if (r
->output_file
) {
14230 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14231 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14233 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14234 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14235 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
));
14237 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14242 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14243 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14244 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14245 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14246 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14247 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
));
14249 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14250 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14254 return NDR_ERR_SUCCESS
;
14257 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14259 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14261 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14263 if (r
->document_name
) {
14264 ndr_print_string(ndr
, "document_name", r
->document_name
);
14267 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14269 if (r
->output_file
) {
14270 ndr_print_string(ndr
, "output_file", r
->output_file
);
14273 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14276 ndr_print_string(ndr
, "datatype", r
->datatype
);
14282 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14284 if (ndr_flags
& NDR_SCALARS
) {
14285 int level
= ndr_push_get_switch_value(ndr
, r
);
14286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14303 if (ndr_flags
& NDR_BUFFERS
) {
14304 int level
= ndr_push_get_switch_value(ndr
, r
);
14308 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14323 return NDR_ERR_SUCCESS
;
14326 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14330 TALLOC_CTX
*_mem_save_info1_0
;
14331 level
= ndr_pull_get_switch_value(ndr
, r
);
14332 if (ndr_flags
& NDR_SCALARS
) {
14333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14334 if (_level
!= level
) {
14335 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14339 uint32_t _ptr_info1
;
14340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14342 NDR_PULL_ALLOC(ndr
, r
->info1
);
14359 if (ndr_flags
& NDR_BUFFERS
) {
14363 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14364 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14365 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14381 return NDR_ERR_SUCCESS
;
14384 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14387 level
= ndr_print_get_switch_value(ndr
, r
);
14388 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
14391 ndr_print_ptr(ndr
, "info1", r
->info1
);
14394 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
14411 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
14413 if (ndr_flags
& NDR_SCALARS
) {
14414 NDR_CHECK(ndr_push_align(ndr
, 4));
14415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14421 uint32_t _flags_save_string
= ndr
->flags
;
14422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14424 struct ndr_push
*_ndr_extra_string
;
14425 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14426 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14427 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14429 ndr
->flags
= _flags_save_string
;
14432 if (ndr_flags
& NDR_BUFFERS
) {
14434 return NDR_ERR_SUCCESS
;
14437 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
14439 if (ndr_flags
& NDR_SCALARS
) {
14440 NDR_CHECK(ndr_pull_align(ndr
, 4));
14441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
14447 uint32_t _flags_save_string
= ndr
->flags
;
14448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14450 struct ndr_pull
*_ndr_extra_string
;
14451 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14452 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14453 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14455 ndr
->flags
= _flags_save_string
;
14458 if (ndr_flags
& NDR_BUFFERS
) {
14460 return NDR_ERR_SUCCESS
;
14463 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
14465 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
14467 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
);
14468 ndr_print_uint32(ndr
, "major", r
->major
);
14469 ndr_print_uint32(ndr
, "minor", r
->minor
);
14470 ndr_print_uint32(ndr
, "build", r
->build
);
14471 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
14472 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14476 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14478 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
14481 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
14483 if (ndr_flags
& NDR_SCALARS
) {
14484 NDR_CHECK(ndr_push_align(ndr
, 4));
14485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14486 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14491 uint32_t _flags_save_string
= ndr
->flags
;
14492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14494 struct ndr_push
*_ndr_extra_string
;
14495 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14496 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14497 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14499 ndr
->flags
= _flags_save_string
;
14501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
14502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
14504 if (ndr_flags
& NDR_BUFFERS
) {
14506 return NDR_ERR_SUCCESS
;
14509 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
14511 if (ndr_flags
& NDR_SCALARS
) {
14512 NDR_CHECK(ndr_pull_align(ndr
, 4));
14513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14516 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14517 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
14519 uint32_t _flags_save_string
= ndr
->flags
;
14520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14522 struct ndr_pull
*_ndr_extra_string
;
14523 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14524 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14525 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14527 ndr
->flags
= _flags_save_string
;
14529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
14530 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
14532 if (ndr_flags
& NDR_BUFFERS
) {
14534 return NDR_ERR_SUCCESS
;
14537 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
14539 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
14541 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
);
14542 ndr_print_uint32(ndr
, "major", r
->major
);
14543 ndr_print_uint32(ndr
, "minor", r
->minor
);
14544 ndr_print_uint32(ndr
, "build", r
->build
);
14545 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
14546 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14547 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
14548 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
14552 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14554 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
14557 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
14559 if (ndr_flags
& NDR_SCALARS
) {
14560 int level
= ndr_push_get_switch_value(ndr
, r
);
14567 uint32_t _flags_save_string
= ndr
->flags
;
14568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14569 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
14570 ndr
->flags
= _flags_save_string
;
14576 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14577 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14578 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
14579 ndr
->flags
= _flags_save_DATA_BLOB
;
14584 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
14587 case REG_MULTI_SZ
: {
14589 uint32_t _flags_save_string_array
= ndr
->flags
;
14590 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14591 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
14592 ndr
->flags
= _flags_save_string_array
;
14598 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14600 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
14601 ndr
->flags
= _flags_save_DATA_BLOB
;
14607 if (ndr_flags
& NDR_BUFFERS
) {
14608 int level
= ndr_push_get_switch_value(ndr
, r
);
14630 return NDR_ERR_SUCCESS
;
14633 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
14636 level
= ndr_pull_get_switch_value(ndr
, r
);
14637 if (ndr_flags
& NDR_SCALARS
) {
14644 uint32_t _flags_save_string
= ndr
->flags
;
14645 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14646 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
14647 ndr
->flags
= _flags_save_string
;
14653 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14655 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
14656 ndr
->flags
= _flags_save_DATA_BLOB
;
14661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
14664 case REG_MULTI_SZ
: {
14666 uint32_t _flags_save_string_array
= ndr
->flags
;
14667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14668 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
14669 ndr
->flags
= _flags_save_string_array
;
14675 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14676 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
14678 ndr
->flags
= _flags_save_DATA_BLOB
;
14684 if (ndr_flags
& NDR_BUFFERS
) {
14706 return NDR_ERR_SUCCESS
;
14709 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
14712 level
= ndr_print_get_switch_value(ndr
, r
);
14713 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
14719 ndr_print_string(ndr
, "string", r
->string
);
14723 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
14727 ndr_print_uint32(ndr
, "value", r
->value
);
14731 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
14735 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
14741 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14743 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
14746 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
14748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14749 return NDR_ERR_SUCCESS
;
14752 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
14755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14757 return NDR_ERR_SUCCESS
;
14760 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
14762 const char *val
= NULL
;
14765 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
14766 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
14767 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
14769 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14772 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
14774 if (ndr_flags
& NDR_SCALARS
) {
14775 NDR_CHECK(ndr_push_align(ndr
, 4));
14776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
14777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
14779 if (ndr_flags
& NDR_BUFFERS
) {
14781 return NDR_ERR_SUCCESS
;
14784 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
14786 if (ndr_flags
& NDR_SCALARS
) {
14787 NDR_CHECK(ndr_pull_align(ndr
, 4));
14788 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
14789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
14791 if (ndr_flags
& NDR_BUFFERS
) {
14793 return NDR_ERR_SUCCESS
;
14796 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
14798 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
14800 ndr_print_uint32(ndr
, "width", r
->width
);
14801 ndr_print_uint32(ndr
, "height", r
->height
);
14805 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
14807 if (ndr_flags
& NDR_SCALARS
) {
14808 NDR_CHECK(ndr_push_align(ndr
, 4));
14809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
14810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
14811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
14812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
14814 if (ndr_flags
& NDR_BUFFERS
) {
14816 return NDR_ERR_SUCCESS
;
14819 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
14821 if (ndr_flags
& NDR_SCALARS
) {
14822 NDR_CHECK(ndr_pull_align(ndr
, 4));
14823 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
14824 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
14825 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
14826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
14828 if (ndr_flags
& NDR_BUFFERS
) {
14830 return NDR_ERR_SUCCESS
;
14833 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
14835 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
14837 ndr_print_uint32(ndr
, "left", r
->left
);
14838 ndr_print_uint32(ndr
, "top", r
->top
);
14839 ndr_print_uint32(ndr
, "right", r
->right
);
14840 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
14844 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
14846 if (ndr_flags
& NDR_SCALARS
) {
14847 NDR_CHECK(ndr_push_align(ndr
, 4));
14848 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14850 uint32_t _flags_save_string
= ndr
->flags
;
14851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14852 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14853 ndr
->flags
= _flags_save_string
;
14855 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14856 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14858 if (ndr_flags
& NDR_BUFFERS
) {
14860 uint32_t _flags_save_string
= ndr
->flags
;
14861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14862 if (r
->form_name
) {
14863 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
14864 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
14866 ndr
->flags
= _flags_save_string
;
14869 return NDR_ERR_SUCCESS
;
14872 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
14874 uint32_t _ptr_form_name
;
14875 TALLOC_CTX
*_mem_save_form_name_0
;
14876 if (ndr_flags
& NDR_SCALARS
) {
14877 NDR_CHECK(ndr_pull_align(ndr
, 4));
14878 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14880 uint32_t _flags_save_string
= ndr
->flags
;
14881 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14883 if (_ptr_form_name
) {
14884 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14885 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
14887 r
->form_name
= NULL
;
14889 ndr
->flags
= _flags_save_string
;
14891 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14892 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14894 if (ndr_flags
& NDR_BUFFERS
) {
14896 uint32_t _flags_save_string
= ndr
->flags
;
14897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14898 if (r
->form_name
) {
14899 uint32_t _relative_save_offset
;
14900 _relative_save_offset
= ndr
->offset
;
14901 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
14902 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14903 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14904 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
14905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14906 ndr
->offset
= _relative_save_offset
;
14908 ndr
->flags
= _flags_save_string
;
14911 return NDR_ERR_SUCCESS
;
14914 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
14916 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
14918 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14919 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14921 if (r
->form_name
) {
14922 ndr_print_string(ndr
, "form_name", r
->form_name
);
14925 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14926 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14930 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14932 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
14935 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
14937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14938 return NDR_ERR_SUCCESS
;
14941 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
14944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14946 return NDR_ERR_SUCCESS
;
14949 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
14951 ndr_print_uint32(ndr
, name
, r
);
14953 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
14954 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
14955 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
14959 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
14961 if (ndr_flags
& NDR_SCALARS
) {
14962 NDR_CHECK(ndr_push_align(ndr
, 4));
14963 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14965 uint32_t _flags_save_string
= ndr
->flags
;
14966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14967 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14968 ndr
->flags
= _flags_save_string
;
14970 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14971 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14973 uint32_t _flags_save_string
= ndr
->flags
;
14974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
14975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
14976 ndr
->flags
= _flags_save_string
;
14978 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
14980 uint32_t _flags_save_string
= ndr
->flags
;
14981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14982 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
14983 ndr
->flags
= _flags_save_string
;
14985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
14987 uint32_t _flags_save_string
= ndr
->flags
;
14988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14989 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
14990 ndr
->flags
= _flags_save_string
;
14992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
14994 if (ndr_flags
& NDR_BUFFERS
) {
14996 uint32_t _flags_save_string
= ndr
->flags
;
14997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14998 if (r
->form_name
) {
14999 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15000 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15002 ndr
->flags
= _flags_save_string
;
15005 uint32_t _flags_save_string
= ndr
->flags
;
15006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15008 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15009 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15011 ndr
->flags
= _flags_save_string
;
15014 uint32_t _flags_save_string
= ndr
->flags
;
15015 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15017 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15018 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15020 ndr
->flags
= _flags_save_string
;
15023 uint32_t _flags_save_string
= ndr
->flags
;
15024 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15025 if (r
->display_name
) {
15026 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15027 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15029 ndr
->flags
= _flags_save_string
;
15032 return NDR_ERR_SUCCESS
;
15035 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15037 uint32_t _ptr_form_name
;
15038 TALLOC_CTX
*_mem_save_form_name_0
;
15039 uint32_t _ptr_keyword
;
15040 TALLOC_CTX
*_mem_save_keyword_0
;
15041 uint32_t _ptr_mui_dll
;
15042 TALLOC_CTX
*_mem_save_mui_dll_0
;
15043 uint32_t _ptr_display_name
;
15044 TALLOC_CTX
*_mem_save_display_name_0
;
15045 if (ndr_flags
& NDR_SCALARS
) {
15046 NDR_CHECK(ndr_pull_align(ndr
, 4));
15047 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15049 uint32_t _flags_save_string
= ndr
->flags
;
15050 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15051 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15052 if (_ptr_form_name
) {
15053 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15054 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15056 r
->form_name
= NULL
;
15058 ndr
->flags
= _flags_save_string
;
15060 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15061 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15063 uint32_t _flags_save_string
= ndr
->flags
;
15064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15065 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15066 if (_ptr_keyword
) {
15067 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15068 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15072 ndr
->flags
= _flags_save_string
;
15074 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15076 uint32_t _flags_save_string
= ndr
->flags
;
15077 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15079 if (_ptr_mui_dll
) {
15080 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15081 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15085 ndr
->flags
= _flags_save_string
;
15087 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15089 uint32_t _flags_save_string
= ndr
->flags
;
15090 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15092 if (_ptr_display_name
) {
15093 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15094 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15096 r
->display_name
= NULL
;
15098 ndr
->flags
= _flags_save_string
;
15100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15102 if (ndr_flags
& NDR_BUFFERS
) {
15104 uint32_t _flags_save_string
= ndr
->flags
;
15105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15106 if (r
->form_name
) {
15107 uint32_t _relative_save_offset
;
15108 _relative_save_offset
= ndr
->offset
;
15109 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15110 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15111 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15112 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15114 ndr
->offset
= _relative_save_offset
;
15116 ndr
->flags
= _flags_save_string
;
15119 uint32_t _flags_save_string
= ndr
->flags
;
15120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15122 uint32_t _relative_save_offset
;
15123 _relative_save_offset
= ndr
->offset
;
15124 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15125 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15126 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15127 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15129 ndr
->offset
= _relative_save_offset
;
15131 ndr
->flags
= _flags_save_string
;
15134 uint32_t _flags_save_string
= ndr
->flags
;
15135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15137 uint32_t _relative_save_offset
;
15138 _relative_save_offset
= ndr
->offset
;
15139 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15140 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15141 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15142 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15144 ndr
->offset
= _relative_save_offset
;
15146 ndr
->flags
= _flags_save_string
;
15149 uint32_t _flags_save_string
= ndr
->flags
;
15150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15151 if (r
->display_name
) {
15152 uint32_t _relative_save_offset
;
15153 _relative_save_offset
= ndr
->offset
;
15154 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15155 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15156 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15157 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15159 ndr
->offset
= _relative_save_offset
;
15161 ndr
->flags
= _flags_save_string
;
15164 return NDR_ERR_SUCCESS
;
15167 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15169 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15171 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15172 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15174 if (r
->form_name
) {
15175 ndr_print_string(ndr
, "form_name", r
->form_name
);
15178 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15179 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15180 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15183 ndr_print_string(ndr
, "keyword", r
->keyword
);
15186 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15187 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15190 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15193 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15194 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15196 if (r
->display_name
) {
15197 ndr_print_string(ndr
, "display_name", r
->display_name
);
15200 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15204 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15206 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15209 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15211 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15212 if (ndr_flags
& NDR_SCALARS
) {
15213 int level
= ndr_push_get_switch_value(ndr
, r
);
15216 NDR_CHECK(ndr_push_align(ndr
, 4));
15217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15218 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15222 NDR_CHECK(ndr_push_align(ndr
, 4));
15223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15224 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15232 if (ndr_flags
& NDR_BUFFERS
) {
15233 int level
= ndr_push_get_switch_value(ndr
, r
);
15234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15237 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15241 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15249 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15250 return NDR_ERR_SUCCESS
;
15253 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15255 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15257 level
= ndr_pull_get_switch_value(ndr
, r
);
15258 if (ndr_flags
& NDR_SCALARS
) {
15261 NDR_CHECK(ndr_pull_align(ndr
, 4));
15262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15263 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15267 NDR_CHECK(ndr_pull_align(ndr
, 4));
15268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15269 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15277 if (ndr_flags
& NDR_BUFFERS
) {
15278 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15281 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15285 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15293 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15294 return NDR_ERR_SUCCESS
;
15297 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15300 level
= ndr_print_get_switch_value(ndr
, r
);
15301 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15304 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15308 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15317 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15319 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15322 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15324 if (ndr_flags
& NDR_SCALARS
) {
15325 NDR_CHECK(ndr_push_align(ndr
, 4));
15326 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15327 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15328 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15329 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15331 if (ndr_flags
& NDR_BUFFERS
) {
15332 if (r
->form_name
) {
15333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15336 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15339 return NDR_ERR_SUCCESS
;
15342 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15344 uint32_t _ptr_form_name
;
15345 TALLOC_CTX
*_mem_save_form_name_0
;
15346 if (ndr_flags
& NDR_SCALARS
) {
15347 NDR_CHECK(ndr_pull_align(ndr
, 4));
15348 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15349 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15350 if (_ptr_form_name
) {
15351 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15353 r
->form_name
= NULL
;
15355 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15356 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15358 if (ndr_flags
& NDR_BUFFERS
) {
15359 if (r
->form_name
) {
15360 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15361 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15364 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15365 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
));
15367 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15368 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15372 return NDR_ERR_SUCCESS
;
15375 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
15377 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
15379 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15380 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15382 if (r
->form_name
) {
15383 ndr_print_string(ndr
, "form_name", r
->form_name
);
15386 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15387 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15391 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
15393 if (ndr_flags
& NDR_SCALARS
) {
15394 NDR_CHECK(ndr_push_align(ndr
, 4));
15395 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15396 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15397 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15398 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15399 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
15400 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15401 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
15402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15403 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
15404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15406 if (ndr_flags
& NDR_BUFFERS
) {
15407 if (r
->form_name
) {
15408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15411 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15417 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
15420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15423 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15425 if (r
->display_name
) {
15426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15429 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15432 return NDR_ERR_SUCCESS
;
15435 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
15437 uint32_t _ptr_form_name
;
15438 TALLOC_CTX
*_mem_save_form_name_0
;
15439 uint32_t _ptr_keyword
;
15440 TALLOC_CTX
*_mem_save_keyword_0
;
15441 uint32_t _ptr_mui_dll
;
15442 TALLOC_CTX
*_mem_save_mui_dll_0
;
15443 uint32_t _ptr_display_name
;
15444 TALLOC_CTX
*_mem_save_display_name_0
;
15445 if (ndr_flags
& NDR_SCALARS
) {
15446 NDR_CHECK(ndr_pull_align(ndr
, 4));
15447 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15449 if (_ptr_form_name
) {
15450 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15452 r
->form_name
= NULL
;
15454 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15455 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15456 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15457 if (_ptr_keyword
) {
15458 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15462 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15464 if (_ptr_mui_dll
) {
15465 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15469 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15470 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15471 if (_ptr_display_name
) {
15472 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15474 r
->display_name
= NULL
;
15476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15478 if (ndr_flags
& NDR_BUFFERS
) {
15479 if (r
->form_name
) {
15480 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15481 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15484 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15485 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
));
15487 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15488 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15492 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15493 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15494 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
15495 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
15496 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
15497 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
));
15499 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
15500 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
15501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15504 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15505 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15506 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
15507 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
15508 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
15509 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
));
15511 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
15512 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
15513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15515 if (r
->display_name
) {
15516 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15517 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15518 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
15519 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
15520 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
15521 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
));
15523 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
15524 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
15525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15528 return NDR_ERR_SUCCESS
;
15531 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
15533 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
15535 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15536 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15538 if (r
->form_name
) {
15539 ndr_print_string(ndr
, "form_name", r
->form_name
);
15542 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15543 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15544 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15547 ndr_print_string(ndr
, "keyword", r
->keyword
);
15550 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15551 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15554 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15557 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15558 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15560 if (r
->display_name
) {
15561 ndr_print_string(ndr
, "display_name", r
->display_name
);
15564 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15568 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
15570 if (ndr_flags
& NDR_SCALARS
) {
15571 int level
= ndr_push_get_switch_value(ndr
, r
);
15572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
15583 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15586 if (ndr_flags
& NDR_BUFFERS
) {
15587 int level
= ndr_push_get_switch_value(ndr
, r
);
15591 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15597 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15602 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15605 return NDR_ERR_SUCCESS
;
15608 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
15612 TALLOC_CTX
*_mem_save_info1_0
;
15613 TALLOC_CTX
*_mem_save_info2_0
;
15614 level
= ndr_pull_get_switch_value(ndr
, r
);
15615 if (ndr_flags
& NDR_SCALARS
) {
15616 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15617 if (_level
!= level
) {
15618 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15622 uint32_t _ptr_info1
;
15623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15625 NDR_PULL_ALLOC(ndr
, r
->info1
);
15632 uint32_t _ptr_info2
;
15633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
15635 NDR_PULL_ALLOC(ndr
, r
->info2
);
15642 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15645 if (ndr_flags
& NDR_BUFFERS
) {
15649 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15650 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15651 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15658 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15659 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
15660 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
15666 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15669 return NDR_ERR_SUCCESS
;
15672 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
15675 level
= ndr_print_get_switch_value(ndr
, r
);
15676 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
15679 ndr_print_ptr(ndr
, "info1", r
->info1
);
15682 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
15688 ndr_print_ptr(ndr
, "info2", r
->info2
);
15691 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
15697 ndr_print_bad_level(ndr
, name
, level
);
15701 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
15703 if (ndr_flags
& NDR_SCALARS
) {
15704 NDR_CHECK(ndr_push_align(ndr
, 4));
15706 uint32_t _flags_save_string
= ndr
->flags
;
15707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15708 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15709 ndr
->flags
= _flags_save_string
;
15712 if (ndr_flags
& NDR_BUFFERS
) {
15714 uint32_t _flags_save_string
= ndr
->flags
;
15715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15716 if (r
->port_name
) {
15717 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15718 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15720 ndr
->flags
= _flags_save_string
;
15723 return NDR_ERR_SUCCESS
;
15726 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
15728 uint32_t _ptr_port_name
;
15729 TALLOC_CTX
*_mem_save_port_name_0
;
15730 if (ndr_flags
& NDR_SCALARS
) {
15731 NDR_CHECK(ndr_pull_align(ndr
, 4));
15733 uint32_t _flags_save_string
= ndr
->flags
;
15734 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15736 if (_ptr_port_name
) {
15737 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15738 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15740 r
->port_name
= NULL
;
15742 ndr
->flags
= _flags_save_string
;
15745 if (ndr_flags
& NDR_BUFFERS
) {
15747 uint32_t _flags_save_string
= ndr
->flags
;
15748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15749 if (r
->port_name
) {
15750 uint32_t _relative_save_offset
;
15751 _relative_save_offset
= ndr
->offset
;
15752 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15753 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15754 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15755 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15757 ndr
->offset
= _relative_save_offset
;
15759 ndr
->flags
= _flags_save_string
;
15762 return NDR_ERR_SUCCESS
;
15765 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
15767 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
15769 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15771 if (r
->port_name
) {
15772 ndr_print_string(ndr
, "port_name", r
->port_name
);
15778 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15780 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
15783 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15786 return NDR_ERR_SUCCESS
;
15789 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15794 return NDR_ERR_SUCCESS
;
15797 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15799 ndr_print_uint32(ndr
, name
, r
);
15801 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
15802 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
15803 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
15804 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
15808 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
15810 if (ndr_flags
& NDR_SCALARS
) {
15811 NDR_CHECK(ndr_push_align(ndr
, 4));
15813 uint32_t _flags_save_string
= ndr
->flags
;
15814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15815 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15816 ndr
->flags
= _flags_save_string
;
15819 uint32_t _flags_save_string
= ndr
->flags
;
15820 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15821 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
15822 ndr
->flags
= _flags_save_string
;
15825 uint32_t _flags_save_string
= ndr
->flags
;
15826 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15827 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
15828 ndr
->flags
= _flags_save_string
;
15830 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
15831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
15833 if (ndr_flags
& NDR_BUFFERS
) {
15835 uint32_t _flags_save_string
= ndr
->flags
;
15836 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15837 if (r
->port_name
) {
15838 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15839 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15841 ndr
->flags
= _flags_save_string
;
15844 uint32_t _flags_save_string
= ndr
->flags
;
15845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15846 if (r
->monitor_name
) {
15847 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
15848 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
15850 ndr
->flags
= _flags_save_string
;
15853 uint32_t _flags_save_string
= ndr
->flags
;
15854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15855 if (r
->description
) {
15856 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
15857 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
15859 ndr
->flags
= _flags_save_string
;
15862 return NDR_ERR_SUCCESS
;
15865 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
15867 uint32_t _ptr_port_name
;
15868 TALLOC_CTX
*_mem_save_port_name_0
;
15869 uint32_t _ptr_monitor_name
;
15870 TALLOC_CTX
*_mem_save_monitor_name_0
;
15871 uint32_t _ptr_description
;
15872 TALLOC_CTX
*_mem_save_description_0
;
15873 if (ndr_flags
& NDR_SCALARS
) {
15874 NDR_CHECK(ndr_pull_align(ndr
, 4));
15876 uint32_t _flags_save_string
= ndr
->flags
;
15877 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15878 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15879 if (_ptr_port_name
) {
15880 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15881 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15883 r
->port_name
= NULL
;
15885 ndr
->flags
= _flags_save_string
;
15888 uint32_t _flags_save_string
= ndr
->flags
;
15889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
15891 if (_ptr_monitor_name
) {
15892 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
15893 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
15895 r
->monitor_name
= NULL
;
15897 ndr
->flags
= _flags_save_string
;
15900 uint32_t _flags_save_string
= ndr
->flags
;
15901 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15902 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
15903 if (_ptr_description
) {
15904 NDR_PULL_ALLOC(ndr
, r
->description
);
15905 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
15907 r
->description
= NULL
;
15909 ndr
->flags
= _flags_save_string
;
15911 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
15912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
15914 if (ndr_flags
& NDR_BUFFERS
) {
15916 uint32_t _flags_save_string
= ndr
->flags
;
15917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15918 if (r
->port_name
) {
15919 uint32_t _relative_save_offset
;
15920 _relative_save_offset
= ndr
->offset
;
15921 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15922 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15923 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15924 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15926 ndr
->offset
= _relative_save_offset
;
15928 ndr
->flags
= _flags_save_string
;
15931 uint32_t _flags_save_string
= ndr
->flags
;
15932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15933 if (r
->monitor_name
) {
15934 uint32_t _relative_save_offset
;
15935 _relative_save_offset
= ndr
->offset
;
15936 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
15937 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15938 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
15939 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
15940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
15941 ndr
->offset
= _relative_save_offset
;
15943 ndr
->flags
= _flags_save_string
;
15946 uint32_t _flags_save_string
= ndr
->flags
;
15947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15948 if (r
->description
) {
15949 uint32_t _relative_save_offset
;
15950 _relative_save_offset
= ndr
->offset
;
15951 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
15952 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15953 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
15954 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
15955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
15956 ndr
->offset
= _relative_save_offset
;
15958 ndr
->flags
= _flags_save_string
;
15961 return NDR_ERR_SUCCESS
;
15964 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
15966 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
15968 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15970 if (r
->port_name
) {
15971 ndr_print_string(ndr
, "port_name", r
->port_name
);
15974 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
15976 if (r
->monitor_name
) {
15977 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
15980 ndr_print_ptr(ndr
, "description", r
->description
);
15982 if (r
->description
) {
15983 ndr_print_string(ndr
, "description", r
->description
);
15986 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
15987 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
15991 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15993 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
15996 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
15998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15999 return NDR_ERR_SUCCESS
;
16002 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16005 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16007 return NDR_ERR_SUCCESS
;
16010 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16012 const char *val
= NULL
;
16015 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16016 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16017 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16018 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16019 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16020 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16021 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16022 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16023 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16024 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16025 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16026 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16027 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16029 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16032 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16035 return NDR_ERR_SUCCESS
;
16038 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16043 return NDR_ERR_SUCCESS
;
16046 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16048 const char *val
= NULL
;
16051 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16052 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16053 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16055 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16058 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16060 if (ndr_flags
& NDR_SCALARS
) {
16061 NDR_CHECK(ndr_push_align(ndr
, 4));
16062 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16064 uint32_t _flags_save_string
= ndr
->flags
;
16065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16066 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16067 ndr
->flags
= _flags_save_string
;
16069 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16071 if (ndr_flags
& NDR_BUFFERS
) {
16073 uint32_t _flags_save_string
= ndr
->flags
;
16074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16075 if (r
->status_string
) {
16076 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16077 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16079 ndr
->flags
= _flags_save_string
;
16082 return NDR_ERR_SUCCESS
;
16085 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16087 uint32_t _ptr_status_string
;
16088 TALLOC_CTX
*_mem_save_status_string_0
;
16089 if (ndr_flags
& NDR_SCALARS
) {
16090 NDR_CHECK(ndr_pull_align(ndr
, 4));
16091 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16093 uint32_t _flags_save_string
= ndr
->flags
;
16094 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16096 if (_ptr_status_string
) {
16097 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16098 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16100 r
->status_string
= NULL
;
16102 ndr
->flags
= _flags_save_string
;
16104 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16106 if (ndr_flags
& NDR_BUFFERS
) {
16108 uint32_t _flags_save_string
= ndr
->flags
;
16109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16110 if (r
->status_string
) {
16111 uint32_t _relative_save_offset
;
16112 _relative_save_offset
= ndr
->offset
;
16113 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16114 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16115 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16116 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16118 ndr
->offset
= _relative_save_offset
;
16120 ndr
->flags
= _flags_save_string
;
16123 return NDR_ERR_SUCCESS
;
16126 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16128 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16130 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16131 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16133 if (r
->status_string
) {
16134 ndr_print_string(ndr
, "status_string", r
->status_string
);
16137 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16141 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16143 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16146 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16148 if (ndr_flags
& NDR_SCALARS
) {
16149 NDR_CHECK(ndr_push_align(ndr
, 4));
16151 uint32_t _flags_save_string
= ndr
->flags
;
16152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16153 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16154 ndr
->flags
= _flags_save_string
;
16156 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16158 if (ndr_flags
& NDR_BUFFERS
) {
16160 uint32_t _flags_save_string
= ndr
->flags
;
16161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16162 if (r
->port_name
) {
16163 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16164 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16166 ndr
->flags
= _flags_save_string
;
16169 return NDR_ERR_SUCCESS
;
16172 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16174 uint32_t _ptr_port_name
;
16175 TALLOC_CTX
*_mem_save_port_name_0
;
16176 if (ndr_flags
& NDR_SCALARS
) {
16177 NDR_CHECK(ndr_pull_align(ndr
, 4));
16179 uint32_t _flags_save_string
= ndr
->flags
;
16180 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16181 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16182 if (_ptr_port_name
) {
16183 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16184 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16186 r
->port_name
= NULL
;
16188 ndr
->flags
= _flags_save_string
;
16190 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16192 if (ndr_flags
& NDR_BUFFERS
) {
16194 uint32_t _flags_save_string
= ndr
->flags
;
16195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16196 if (r
->port_name
) {
16197 uint32_t _relative_save_offset
;
16198 _relative_save_offset
= ndr
->offset
;
16199 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16200 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16201 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16202 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16204 ndr
->offset
= _relative_save_offset
;
16206 ndr
->flags
= _flags_save_string
;
16209 return NDR_ERR_SUCCESS
;
16212 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16214 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16216 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16218 if (r
->port_name
) {
16219 ndr_print_string(ndr
, "port_name", r
->port_name
);
16222 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16226 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16228 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16231 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16233 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16234 if (ndr_flags
& NDR_SCALARS
) {
16235 int level
= ndr_push_get_switch_value(ndr
, r
);
16238 NDR_CHECK(ndr_push_align(ndr
, 4));
16239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16240 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16244 NDR_CHECK(ndr_push_align(ndr
, 4));
16245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16246 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16250 NDR_CHECK(ndr_push_align(ndr
, 4));
16251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16252 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16256 NDR_CHECK(ndr_push_align(ndr
, 4));
16257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16258 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16266 if (ndr_flags
& NDR_BUFFERS
) {
16267 int level
= ndr_push_get_switch_value(ndr
, r
);
16268 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16271 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16275 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16279 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16283 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16291 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16292 return NDR_ERR_SUCCESS
;
16295 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16297 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16299 level
= ndr_pull_get_switch_value(ndr
, r
);
16300 if (ndr_flags
& NDR_SCALARS
) {
16303 NDR_CHECK(ndr_pull_align(ndr
, 4));
16304 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16305 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16309 NDR_CHECK(ndr_pull_align(ndr
, 4));
16310 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16311 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16315 NDR_CHECK(ndr_pull_align(ndr
, 4));
16316 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16317 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16321 NDR_CHECK(ndr_pull_align(ndr
, 4));
16322 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16323 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16331 if (ndr_flags
& NDR_BUFFERS
) {
16332 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16335 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16339 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16343 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16347 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16355 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16356 return NDR_ERR_SUCCESS
;
16359 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
16362 level
= ndr_print_get_switch_value(ndr
, r
);
16363 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
16366 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
16370 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
16374 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
16378 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
16387 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
16389 if (ndr_flags
& NDR_SCALARS
) {
16390 NDR_CHECK(ndr_push_align(ndr
, 4));
16392 uint32_t _flags_save_string
= ndr
->flags
;
16393 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16394 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16395 ndr
->flags
= _flags_save_string
;
16398 if (ndr_flags
& NDR_BUFFERS
) {
16400 uint32_t _flags_save_string
= ndr
->flags
;
16401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16402 if (r
->monitor_name
) {
16403 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16404 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16406 ndr
->flags
= _flags_save_string
;
16409 return NDR_ERR_SUCCESS
;
16412 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
16414 uint32_t _ptr_monitor_name
;
16415 TALLOC_CTX
*_mem_save_monitor_name_0
;
16416 if (ndr_flags
& NDR_SCALARS
) {
16417 NDR_CHECK(ndr_pull_align(ndr
, 4));
16419 uint32_t _flags_save_string
= ndr
->flags
;
16420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16421 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16422 if (_ptr_monitor_name
) {
16423 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16424 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16426 r
->monitor_name
= NULL
;
16428 ndr
->flags
= _flags_save_string
;
16431 if (ndr_flags
& NDR_BUFFERS
) {
16433 uint32_t _flags_save_string
= ndr
->flags
;
16434 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16435 if (r
->monitor_name
) {
16436 uint32_t _relative_save_offset
;
16437 _relative_save_offset
= ndr
->offset
;
16438 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16439 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16440 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16441 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16443 ndr
->offset
= _relative_save_offset
;
16445 ndr
->flags
= _flags_save_string
;
16448 return NDR_ERR_SUCCESS
;
16451 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
16453 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
16455 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16457 if (r
->monitor_name
) {
16458 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16464 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16466 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
16469 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
16471 if (ndr_flags
& NDR_SCALARS
) {
16472 NDR_CHECK(ndr_push_align(ndr
, 4));
16474 uint32_t _flags_save_string
= ndr
->flags
;
16475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16476 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16477 ndr
->flags
= _flags_save_string
;
16480 uint32_t _flags_save_string
= ndr
->flags
;
16481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16482 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
16483 ndr
->flags
= _flags_save_string
;
16486 uint32_t _flags_save_string
= ndr
->flags
;
16487 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16488 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
16489 ndr
->flags
= _flags_save_string
;
16492 if (ndr_flags
& NDR_BUFFERS
) {
16494 uint32_t _flags_save_string
= ndr
->flags
;
16495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16496 if (r
->monitor_name
) {
16497 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16498 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16500 ndr
->flags
= _flags_save_string
;
16503 uint32_t _flags_save_string
= ndr
->flags
;
16504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16505 if (r
->environment
) {
16506 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
16507 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
16509 ndr
->flags
= _flags_save_string
;
16512 uint32_t _flags_save_string
= ndr
->flags
;
16513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16515 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
16516 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
16518 ndr
->flags
= _flags_save_string
;
16521 return NDR_ERR_SUCCESS
;
16524 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
16526 uint32_t _ptr_monitor_name
;
16527 TALLOC_CTX
*_mem_save_monitor_name_0
;
16528 uint32_t _ptr_environment
;
16529 TALLOC_CTX
*_mem_save_environment_0
;
16530 uint32_t _ptr_dll_name
;
16531 TALLOC_CTX
*_mem_save_dll_name_0
;
16532 if (ndr_flags
& NDR_SCALARS
) {
16533 NDR_CHECK(ndr_pull_align(ndr
, 4));
16535 uint32_t _flags_save_string
= ndr
->flags
;
16536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16538 if (_ptr_monitor_name
) {
16539 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16540 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16542 r
->monitor_name
= NULL
;
16544 ndr
->flags
= _flags_save_string
;
16547 uint32_t _flags_save_string
= ndr
->flags
;
16548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
16550 if (_ptr_environment
) {
16551 NDR_PULL_ALLOC(ndr
, r
->environment
);
16552 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
16554 r
->environment
= NULL
;
16556 ndr
->flags
= _flags_save_string
;
16559 uint32_t _flags_save_string
= ndr
->flags
;
16560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
16562 if (_ptr_dll_name
) {
16563 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
16564 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
16566 r
->dll_name
= NULL
;
16568 ndr
->flags
= _flags_save_string
;
16571 if (ndr_flags
& NDR_BUFFERS
) {
16573 uint32_t _flags_save_string
= ndr
->flags
;
16574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16575 if (r
->monitor_name
) {
16576 uint32_t _relative_save_offset
;
16577 _relative_save_offset
= ndr
->offset
;
16578 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16579 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16580 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16581 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16583 ndr
->offset
= _relative_save_offset
;
16585 ndr
->flags
= _flags_save_string
;
16588 uint32_t _flags_save_string
= ndr
->flags
;
16589 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16590 if (r
->environment
) {
16591 uint32_t _relative_save_offset
;
16592 _relative_save_offset
= ndr
->offset
;
16593 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
16594 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16595 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
16596 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
16597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
16598 ndr
->offset
= _relative_save_offset
;
16600 ndr
->flags
= _flags_save_string
;
16603 uint32_t _flags_save_string
= ndr
->flags
;
16604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16606 uint32_t _relative_save_offset
;
16607 _relative_save_offset
= ndr
->offset
;
16608 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
16609 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16610 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
16611 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
16612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
16613 ndr
->offset
= _relative_save_offset
;
16615 ndr
->flags
= _flags_save_string
;
16618 return NDR_ERR_SUCCESS
;
16621 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
16623 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
16625 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16627 if (r
->monitor_name
) {
16628 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16631 ndr_print_ptr(ndr
, "environment", r
->environment
);
16633 if (r
->environment
) {
16634 ndr_print_string(ndr
, "environment", r
->environment
);
16637 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
16640 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
16646 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16648 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
16651 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
16653 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16654 if (ndr_flags
& NDR_SCALARS
) {
16655 int level
= ndr_push_get_switch_value(ndr
, r
);
16658 NDR_CHECK(ndr_push_align(ndr
, 4));
16659 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16660 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16664 NDR_CHECK(ndr_push_align(ndr
, 4));
16665 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16666 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16674 if (ndr_flags
& NDR_BUFFERS
) {
16675 int level
= ndr_push_get_switch_value(ndr
, r
);
16676 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16679 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16683 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16691 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16692 return NDR_ERR_SUCCESS
;
16695 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
16697 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16699 level
= ndr_pull_get_switch_value(ndr
, r
);
16700 if (ndr_flags
& NDR_SCALARS
) {
16703 NDR_CHECK(ndr_pull_align(ndr
, 4));
16704 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16705 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16709 NDR_CHECK(ndr_pull_align(ndr
, 4));
16710 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16711 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16719 if (ndr_flags
& NDR_BUFFERS
) {
16720 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16723 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16727 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16735 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16736 return NDR_ERR_SUCCESS
;
16739 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
16742 level
= ndr_print_get_switch_value(ndr
, r
);
16743 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
16746 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
16750 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
16759 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16761 if (ndr_flags
& NDR_SCALARS
) {
16762 NDR_CHECK(ndr_push_align(ndr
, 4));
16764 uint32_t _flags_save_string
= ndr
->flags
;
16765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16766 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
16767 ndr
->flags
= _flags_save_string
;
16770 if (ndr_flags
& NDR_BUFFERS
) {
16772 uint32_t _flags_save_string
= ndr
->flags
;
16773 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16774 if (r
->name_array
) {
16775 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
16776 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
16778 ndr
->flags
= _flags_save_string
;
16781 return NDR_ERR_SUCCESS
;
16784 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
16786 uint32_t _ptr_name_array
;
16787 TALLOC_CTX
*_mem_save_name_array_0
;
16788 if (ndr_flags
& NDR_SCALARS
) {
16789 NDR_CHECK(ndr_pull_align(ndr
, 4));
16791 uint32_t _flags_save_string
= ndr
->flags
;
16792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
16794 if (_ptr_name_array
) {
16795 NDR_PULL_ALLOC(ndr
, r
->name_array
);
16796 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
16798 r
->name_array
= NULL
;
16800 ndr
->flags
= _flags_save_string
;
16803 if (ndr_flags
& NDR_BUFFERS
) {
16805 uint32_t _flags_save_string
= ndr
->flags
;
16806 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16807 if (r
->name_array
) {
16808 uint32_t _relative_save_offset
;
16809 _relative_save_offset
= ndr
->offset
;
16810 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
16811 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16812 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
16813 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
16814 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
16815 ndr
->offset
= _relative_save_offset
;
16817 ndr
->flags
= _flags_save_string
;
16820 return NDR_ERR_SUCCESS
;
16823 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16825 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
16827 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
16829 if (r
->name_array
) {
16830 ndr_print_string(ndr
, "name_array", r
->name_array
);
16836 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16838 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
16841 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
16843 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16844 if (ndr_flags
& NDR_SCALARS
) {
16845 int level
= ndr_push_get_switch_value(ndr
, r
);
16848 NDR_CHECK(ndr_push_align(ndr
, 4));
16849 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16850 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16858 if (ndr_flags
& NDR_BUFFERS
) {
16859 int level
= ndr_push_get_switch_value(ndr
, r
);
16860 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16863 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16871 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16872 return NDR_ERR_SUCCESS
;
16875 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
16877 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16879 level
= ndr_pull_get_switch_value(ndr
, r
);
16880 if (ndr_flags
& NDR_SCALARS
) {
16883 NDR_CHECK(ndr_pull_align(ndr
, 4));
16884 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16885 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16893 if (ndr_flags
& NDR_BUFFERS
) {
16894 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16897 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16905 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16906 return NDR_ERR_SUCCESS
;
16909 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
16912 level
= ndr_print_get_switch_value(ndr
, r
);
16913 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
16916 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
16925 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16928 return NDR_ERR_SUCCESS
;
16931 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16936 return NDR_ERR_SUCCESS
;
16939 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16941 ndr_print_uint32(ndr
, name
, r
);
16943 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
16944 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
16945 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
16946 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
16947 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
16948 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
16949 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
16950 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
16951 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
16952 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
16953 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
16954 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
16955 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
16956 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
16957 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
16958 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
16959 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
16960 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
16961 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
16962 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
16963 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
16967 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_Field r
)
16969 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16970 return NDR_ERR_SUCCESS
;
16973 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_Field
*r
)
16976 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
16978 return NDR_ERR_SUCCESS
;
16981 _PUBLIC_
void ndr_print_spoolss_Field(struct ndr_print
*ndr
, const char *name
, enum spoolss_Field r
)
16983 const char *val
= NULL
;
16986 case SPOOLSS_FIELD_SERVER_NAME
: val
= "SPOOLSS_FIELD_SERVER_NAME"; break;
16987 case SPOOLSS_FIELD_PRINTER_NAME
: val
= "SPOOLSS_FIELD_PRINTER_NAME"; break;
16988 case SPOOLSS_FIELD_SHARE_NAME
: val
= "SPOOLSS_FIELD_SHARE_NAME"; break;
16989 case SPOOLSS_FIELD_PORT_NAME
: val
= "SPOOLSS_FIELD_PORT_NAME"; break;
16990 case SPOOLSS_FIELD_DRIVER_NAME
: val
= "SPOOLSS_FIELD_DRIVER_NAME"; break;
16991 case SPOOLSS_FIELD_COMMENT
: val
= "SPOOLSS_FIELD_COMMENT"; break;
16992 case SPOOLSS_FIELD_LOCATION
: val
= "SPOOLSS_FIELD_LOCATION"; break;
16993 case SPOOLSS_FIELD_DEVMODE
: val
= "SPOOLSS_FIELD_DEVMODE"; break;
16994 case SPOOLSS_FIELD_SEPFILE
: val
= "SPOOLSS_FIELD_SEPFILE"; break;
16995 case SPOOLSS_FIELD_PRINT_PROCESSOR
: val
= "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16996 case SPOOLSS_FIELD_PARAMETERS
: val
= "SPOOLSS_FIELD_PARAMETERS"; break;
16997 case SPOOLSS_FIELD_DATATYPE
: val
= "SPOOLSS_FIELD_DATATYPE"; break;
16998 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR
: val
= "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16999 case SPOOLSS_FIELD_ATTRIBUTES
: val
= "SPOOLSS_FIELD_ATTRIBUTES"; break;
17000 case SPOOLSS_FIELD_PRIORITY
: val
= "SPOOLSS_FIELD_PRIORITY"; break;
17001 case SPOOLSS_FIELD_DEFAULT_PRIORITY
: val
= "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
17002 case SPOOLSS_FIELD_START_TIME
: val
= "SPOOLSS_FIELD_START_TIME"; break;
17003 case SPOOLSS_FIELD_UNTIL_TIME
: val
= "SPOOLSS_FIELD_UNTIL_TIME"; break;
17004 case SPOOLSS_FIELD_STATUS
: val
= "SPOOLSS_FIELD_STATUS"; break;
17005 case SPOOLSS_FIELD_STATUS_STRING
: val
= "SPOOLSS_FIELD_STATUS_STRING"; break;
17006 case SPOOLSS_FIELD_CJOBS
: val
= "SPOOLSS_FIELD_CJOBS"; break;
17007 case SPOOLSS_FIELD_AVERAGE_PPM
: val
= "SPOOLSS_FIELD_AVERAGE_PPM"; break;
17008 case SPOOLSS_FIELD_TOTAL_PAGES
: val
= "SPOOLSS_FIELD_TOTAL_PAGES"; break;
17009 case SPOOLSS_FIELD_PAGES_PRINTED
: val
= "SPOOLSS_FIELD_PAGES_PRINTED"; break;
17010 case SPOOLSS_FIELD_TOTAL_BYTES
: val
= "SPOOLSS_FIELD_TOTAL_BYTES"; break;
17011 case SPOOLSS_FIELD_BYTES_PRINTED
: val
= "SPOOLSS_FIELD_BYTES_PRINTED"; break;
17013 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17016 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17018 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17019 return NDR_ERR_SUCCESS
;
17022 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17025 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17027 return NDR_ERR_SUCCESS
;
17030 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17032 const char *val
= NULL
;
17035 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17036 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17038 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17041 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
17043 uint32_t cntr_fields_1
;
17044 if (ndr_flags
& NDR_SCALARS
) {
17045 NDR_CHECK(ndr_push_align(ndr
, 4));
17046 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17047 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17051 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17053 if (ndr_flags
& NDR_BUFFERS
) {
17055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17056 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17057 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->fields
[cntr_fields_1
]));
17061 return NDR_ERR_SUCCESS
;
17064 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17066 uint32_t _ptr_fields
;
17067 uint32_t cntr_fields_1
;
17068 TALLOC_CTX
*_mem_save_fields_0
;
17069 TALLOC_CTX
*_mem_save_fields_1
;
17070 if (ndr_flags
& NDR_SCALARS
) {
17071 NDR_CHECK(ndr_pull_align(ndr
, 4));
17072 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17073 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17075 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17077 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17079 NDR_PULL_ALLOC(ndr
, r
->fields
);
17084 if (ndr_flags
& NDR_BUFFERS
) {
17086 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17087 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17088 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17089 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
17090 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17091 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17092 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17093 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17099 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17102 return NDR_ERR_SUCCESS
;
17105 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17107 uint32_t cntr_fields_1
;
17108 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17110 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17111 ndr_print_uint16(ndr
, "u1", r
->u1
);
17112 ndr_print_uint32(ndr
, "u2", r
->u2
);
17113 ndr_print_uint32(ndr
, "u3", r
->u3
);
17114 ndr_print_uint32(ndr
, "count", r
->count
);
17115 ndr_print_ptr(ndr
, "fields", r
->fields
);
17118 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17120 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17122 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17123 ndr_print_spoolss_Field(ndr
, "fields", r
->fields
[cntr_fields_1
]);
17133 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17136 return NDR_ERR_SUCCESS
;
17139 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17144 return NDR_ERR_SUCCESS
;
17147 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17149 ndr_print_uint32(ndr
, name
, r
);
17151 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17155 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17157 uint32_t cntr_types_1
;
17158 if (ndr_flags
& NDR_SCALARS
) {
17159 NDR_CHECK(ndr_push_align(ndr
, 4));
17160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17161 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17163 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17165 if (ndr_flags
& NDR_BUFFERS
) {
17167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17168 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17169 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17171 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17172 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17176 return NDR_ERR_SUCCESS
;
17179 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
17181 uint32_t _ptr_types
;
17182 uint32_t cntr_types_1
;
17183 TALLOC_CTX
*_mem_save_types_0
;
17184 TALLOC_CTX
*_mem_save_types_1
;
17185 if (ndr_flags
& NDR_SCALARS
) {
17186 NDR_CHECK(ndr_pull_align(ndr
, 4));
17187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17188 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
17192 NDR_PULL_ALLOC(ndr
, r
->types
);
17197 if (ndr_flags
& NDR_BUFFERS
) {
17199 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17200 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17201 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17202 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17203 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17204 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17205 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17206 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17208 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17209 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
17212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
17215 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
17218 return NDR_ERR_SUCCESS
;
17221 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
17223 uint32_t cntr_types_1
;
17224 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
17226 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17227 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
17228 ndr_print_uint32(ndr
, "count", r
->count
);
17229 ndr_print_ptr(ndr
, "types", r
->types
);
17232 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
17234 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
17236 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
17237 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
17247 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
17249 if (ndr_flags
& NDR_SCALARS
) {
17250 NDR_CHECK(ndr_push_align(ndr
, 4));
17251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17252 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
17254 if (ndr_flags
& NDR_BUFFERS
) {
17256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
17257 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
17260 return NDR_ERR_SUCCESS
;
17263 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
17265 uint32_t _ptr_string
;
17266 TALLOC_CTX
*_mem_save_string_0
;
17267 if (ndr_flags
& NDR_SCALARS
) {
17268 NDR_CHECK(ndr_pull_align(ndr
, 4));
17269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
17272 NDR_PULL_ALLOC(ndr
, r
->string
);
17277 if (ndr_flags
& NDR_BUFFERS
) {
17279 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17280 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
17281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
17282 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
17283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
17286 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
17289 return NDR_ERR_SUCCESS
;
17292 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
17294 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
17296 ndr_print_uint32(ndr
, "size", r
->size
);
17297 ndr_print_ptr(ndr
, "string", r
->string
);
17300 ndr_print_string(ndr
, "string", r
->string
);
17306 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
17308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17309 return NDR_ERR_SUCCESS
;
17312 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
17315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17317 return NDR_ERR_SUCCESS
;
17320 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
17322 const char *val
= NULL
;
17325 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
17326 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
17327 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
17328 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
17329 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17331 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17334 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
17336 if (ndr_flags
& NDR_SCALARS
) {
17337 int level
= ndr_push_get_switch_value(ndr
, r
);
17338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17341 uint32_t cntr_integer_0
;
17342 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
17348 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17352 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17356 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17360 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17364 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17367 if (ndr_flags
& NDR_BUFFERS
) {
17368 int level
= ndr_push_get_switch_value(ndr
, r
);
17374 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17378 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17382 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17386 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17390 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17393 return NDR_ERR_SUCCESS
;
17396 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
17400 level
= ndr_pull_get_switch_value(ndr
, r
);
17401 if (ndr_flags
& NDR_SCALARS
) {
17402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17403 if (_level
!= level
) {
17404 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17408 uint32_t cntr_integer_0
;
17409 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
17415 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17419 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17423 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17427 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17431 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17434 if (ndr_flags
& NDR_BUFFERS
) {
17440 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17444 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17448 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17452 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17456 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17459 return NDR_ERR_SUCCESS
;
17462 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
17465 uint32_t cntr_integer_0
;
17466 level
= ndr_print_get_switch_value(ndr
, r
);
17467 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
17470 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
17472 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
17474 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
17475 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
17483 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
17487 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
17491 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
17495 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
17499 ndr_print_bad_level(ndr
, name
, level
);
17503 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
17505 if (ndr_flags
& NDR_SCALARS
) {
17506 NDR_CHECK(ndr_push_align(ndr
, 4));
17507 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17508 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->field
));
17509 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
17510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
17511 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17512 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17514 if (ndr_flags
& NDR_BUFFERS
) {
17515 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17517 return NDR_ERR_SUCCESS
;
17520 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
17522 if (ndr_flags
& NDR_SCALARS
) {
17523 NDR_CHECK(ndr_pull_align(ndr
, 4));
17524 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17525 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
17526 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
17527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
17528 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17529 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17531 if (ndr_flags
& NDR_BUFFERS
) {
17532 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17534 return NDR_ERR_SUCCESS
;
17537 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
17539 ndr_print_struct(ndr
, name
, "spoolss_Notify");
17541 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17542 ndr_print_spoolss_Field(ndr
, "field", r
->field
);
17543 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
17544 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
17545 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
17546 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
17550 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
17552 uint32_t cntr_notifies_0
;
17553 if (ndr_flags
& NDR_SCALARS
) {
17554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17555 NDR_CHECK(ndr_push_align(ndr
, 4));
17556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17559 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17560 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17563 if (ndr_flags
& NDR_BUFFERS
) {
17564 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17565 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17568 return NDR_ERR_SUCCESS
;
17571 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
17573 uint32_t cntr_notifies_0
;
17574 TALLOC_CTX
*_mem_save_notifies_0
;
17575 if (ndr_flags
& NDR_SCALARS
) {
17576 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
17577 NDR_CHECK(ndr_pull_align(ndr
, 4));
17578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17579 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17580 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17581 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
17582 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17583 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17584 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17585 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17589 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
17592 if (ndr_flags
& NDR_BUFFERS
) {
17593 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17594 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17595 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17596 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17598 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17600 return NDR_ERR_SUCCESS
;
17603 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
17605 uint32_t cntr_notifies_0
;
17606 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
17608 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17609 ndr_print_uint32(ndr
, "flags", r
->flags
);
17610 ndr_print_uint32(ndr
, "count", r
->count
);
17611 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
17613 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
17615 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
17616 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
17624 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
17626 if (ndr_flags
& NDR_SCALARS
) {
17627 int level
= ndr_push_get_switch_value(ndr
, r
);
17628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
17635 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17638 if (ndr_flags
& NDR_BUFFERS
) {
17639 int level
= ndr_push_get_switch_value(ndr
, r
);
17643 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17648 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17651 return NDR_ERR_SUCCESS
;
17654 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
17658 TALLOC_CTX
*_mem_save_info0_0
;
17659 level
= ndr_pull_get_switch_value(ndr
, r
);
17660 if (ndr_flags
& NDR_SCALARS
) {
17661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17662 if (_level
!= level
) {
17663 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17667 uint32_t _ptr_info0
;
17668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
17670 NDR_PULL_ALLOC(ndr
, r
->info0
);
17677 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17680 if (ndr_flags
& NDR_BUFFERS
) {
17684 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17685 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
17686 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
17692 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17695 return NDR_ERR_SUCCESS
;
17698 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
17701 level
= ndr_print_get_switch_value(ndr
, r
);
17702 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
17705 ndr_print_ptr(ndr
, "info0", r
->info0
);
17708 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
17714 ndr_print_bad_level(ndr
, name
, level
);
17718 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17721 return NDR_ERR_SUCCESS
;
17724 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17727 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17729 return NDR_ERR_SUCCESS
;
17732 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17734 ndr_print_uint32(ndr
, name
, r
);
17736 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
17737 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
17738 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
17742 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
17744 if (ndr_flags
& NDR_SCALARS
) {
17745 NDR_CHECK(ndr_push_align(ndr
, 4));
17746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17747 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17750 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17751 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17752 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17754 if (ndr_flags
& NDR_BUFFERS
) {
17756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17759 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17765 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17768 return NDR_ERR_SUCCESS
;
17771 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
17773 uint32_t _ptr_client
;
17774 TALLOC_CTX
*_mem_save_client_0
;
17775 uint32_t _ptr_user
;
17776 TALLOC_CTX
*_mem_save_user_0
;
17777 if (ndr_flags
& NDR_SCALARS
) {
17778 NDR_CHECK(ndr_pull_align(ndr
, 4));
17779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17780 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17782 NDR_PULL_ALLOC(ndr
, r
->client
);
17786 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17788 NDR_PULL_ALLOC(ndr
, r
->user
);
17792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17793 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17794 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17795 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17797 if (ndr_flags
& NDR_BUFFERS
) {
17799 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17800 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17801 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17802 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17803 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17804 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
));
17806 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17807 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17811 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17812 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17813 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17814 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17815 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17816 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
));
17818 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17819 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17820 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17823 return NDR_ERR_SUCCESS
;
17826 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
17828 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
17830 ndr_print_uint32(ndr
, "size", r
->size
);
17831 ndr_print_ptr(ndr
, "client", r
->client
);
17834 ndr_print_string(ndr
, "client", r
->client
);
17837 ndr_print_ptr(ndr
, "user", r
->user
);
17840 ndr_print_string(ndr
, "user", r
->user
);
17843 ndr_print_uint32(ndr
, "build", r
->build
);
17844 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17845 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17846 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17850 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
17852 if (ndr_flags
& NDR_SCALARS
) {
17853 NDR_CHECK(ndr_push_align(ndr
, 4));
17854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
17856 if (ndr_flags
& NDR_BUFFERS
) {
17858 return NDR_ERR_SUCCESS
;
17861 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
17863 if (ndr_flags
& NDR_SCALARS
) {
17864 NDR_CHECK(ndr_pull_align(ndr
, 4));
17865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
17867 if (ndr_flags
& NDR_BUFFERS
) {
17869 return NDR_ERR_SUCCESS
;
17872 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
17874 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
17876 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
17880 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
17882 if (ndr_flags
& NDR_SCALARS
) {
17883 NDR_CHECK(ndr_push_align(ndr
, 4));
17884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
17887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17888 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17890 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17891 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17892 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17893 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
17895 if (ndr_flags
& NDR_BUFFERS
) {
17897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17900 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17909 return NDR_ERR_SUCCESS
;
17912 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
17914 uint32_t _ptr_client
;
17915 TALLOC_CTX
*_mem_save_client_0
;
17916 uint32_t _ptr_user
;
17917 TALLOC_CTX
*_mem_save_user_0
;
17918 if (ndr_flags
& NDR_SCALARS
) {
17919 NDR_CHECK(ndr_pull_align(ndr
, 4));
17920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17922 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
17923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17925 NDR_PULL_ALLOC(ndr
, r
->client
);
17929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17931 NDR_PULL_ALLOC(ndr
, r
->user
);
17935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17936 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17937 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17938 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17939 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
17941 if (ndr_flags
& NDR_BUFFERS
) {
17943 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17944 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17945 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17946 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17947 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17948 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
));
17950 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17951 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17955 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17956 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17957 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17958 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17959 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17960 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
));
17962 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17963 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17967 return NDR_ERR_SUCCESS
;
17970 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
17972 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
17974 ndr_print_uint32(ndr
, "size", r
->size
);
17975 ndr_print_uint32(ndr
, "flags", r
->flags
);
17976 ndr_print_uint32(ndr
, "size2", r
->size2
);
17977 ndr_print_ptr(ndr
, "client", r
->client
);
17980 ndr_print_string(ndr
, "client", r
->client
);
17983 ndr_print_ptr(ndr
, "user", r
->user
);
17986 ndr_print_string(ndr
, "user", r
->user
);
17989 ndr_print_uint32(ndr
, "build", r
->build
);
17990 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17991 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17992 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17993 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
17997 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
17999 if (ndr_flags
& NDR_SCALARS
) {
18000 int level
= ndr_push_get_switch_value(ndr
, r
);
18001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
18008 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
18012 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
18016 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18019 if (ndr_flags
& NDR_BUFFERS
) {
18020 int level
= ndr_push_get_switch_value(ndr
, r
);
18024 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18030 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18036 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18041 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18044 return NDR_ERR_SUCCESS
;
18047 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18051 TALLOC_CTX
*_mem_save_level1_0
;
18052 TALLOC_CTX
*_mem_save_level2_0
;
18053 TALLOC_CTX
*_mem_save_level3_0
;
18054 level
= ndr_pull_get_switch_value(ndr
, r
);
18055 if (ndr_flags
& NDR_SCALARS
) {
18056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18057 if (_level
!= level
) {
18058 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18062 uint32_t _ptr_level1
;
18063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18065 NDR_PULL_ALLOC(ndr
, r
->level1
);
18072 uint32_t _ptr_level2
;
18073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18075 NDR_PULL_ALLOC(ndr
, r
->level2
);
18082 uint32_t _ptr_level3
;
18083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18085 NDR_PULL_ALLOC(ndr
, r
->level3
);
18092 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18095 if (ndr_flags
& NDR_BUFFERS
) {
18099 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18100 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18101 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18108 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18109 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18110 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18117 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18118 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18119 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18125 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18128 return NDR_ERR_SUCCESS
;
18131 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18134 level
= ndr_print_get_switch_value(ndr
, r
);
18135 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18138 ndr_print_ptr(ndr
, "level1", r
->level1
);
18141 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18147 ndr_print_ptr(ndr
, "level2", r
->level2
);
18150 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
18156 ndr_print_ptr(ndr
, "level3", r
->level3
);
18159 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
18165 ndr_print_bad_level(ndr
, name
, level
);
18169 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
18171 if (ndr_flags
& NDR_SCALARS
) {
18172 NDR_CHECK(ndr_push_align(ndr
, 4));
18173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
18174 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18175 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18177 if (ndr_flags
& NDR_BUFFERS
) {
18178 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18180 return NDR_ERR_SUCCESS
;
18183 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
18185 if (ndr_flags
& NDR_SCALARS
) {
18186 NDR_CHECK(ndr_pull_align(ndr
, 4));
18187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
18188 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18189 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18191 if (ndr_flags
& NDR_BUFFERS
) {
18192 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18194 return NDR_ERR_SUCCESS
;
18197 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
18199 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
18201 ndr_print_uint32(ndr
, "level", r
->level
);
18202 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
18203 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
18207 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18210 return NDR_ERR_SUCCESS
;
18213 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18216 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18218 return NDR_ERR_SUCCESS
;
18221 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18223 ndr_print_uint32(ndr
, name
, r
);
18225 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
18226 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
18227 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
18228 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
18229 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
18230 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
18234 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18237 return NDR_ERR_SUCCESS
;
18240 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18245 return NDR_ERR_SUCCESS
;
18248 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18250 ndr_print_uint32(ndr
, name
, r
);
18252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
18253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
18254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
18258 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
18260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18261 return NDR_ERR_SUCCESS
;
18264 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
18267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18269 return NDR_ERR_SUCCESS
;
18272 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
18274 const char *val
= NULL
;
18277 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
18278 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
18280 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18283 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
18285 if (ndr_flags
& NDR_SCALARS
) {
18286 NDR_CHECK(ndr_push_align(ndr
, 4));
18287 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
18289 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18292 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18293 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18295 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18296 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18298 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18303 if (ndr_flags
& NDR_BUFFERS
) {
18305 return NDR_ERR_SUCCESS
;
18308 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
18310 if (ndr_flags
& NDR_SCALARS
) {
18311 NDR_CHECK(ndr_pull_align(ndr
, 4));
18312 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18314 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18318 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18319 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18322 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18324 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18328 if (ndr_flags
& NDR_BUFFERS
) {
18330 return NDR_ERR_SUCCESS
;
18333 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
18335 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
18337 ndr_print_string(ndr
, "portname", r
->portname
);
18338 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
18339 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18340 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18341 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18342 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18343 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18344 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18345 ndr_print_string(ndr
, "queue", r
->queue
);
18346 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
18347 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
18348 ndr_print_string(ndr
, "device_type", r
->device_type
);
18349 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18350 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18351 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18355 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
18357 if (ndr_flags
& NDR_SCALARS
) {
18358 NDR_CHECK(ndr_push_align(ndr
, 4));
18359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
18361 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18364 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18367 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18368 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
18374 if (ndr_flags
& NDR_BUFFERS
) {
18376 return NDR_ERR_SUCCESS
;
18379 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
18381 if (ndr_flags
& NDR_SCALARS
) {
18382 NDR_CHECK(ndr_pull_align(ndr
, 4));
18383 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18385 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18388 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18389 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18391 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18392 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18394 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
18398 if (ndr_flags
& NDR_BUFFERS
) {
18400 return NDR_ERR_SUCCESS
;
18403 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
18405 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
18407 ndr_print_string(ndr
, "portname", r
->portname
);
18408 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
18409 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18410 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18411 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18412 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18413 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18414 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18415 ndr_print_string(ndr
, "queue", r
->queue
);
18416 ndr_print_string(ndr
, "device_type", r
->device_type
);
18417 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18418 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18419 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18420 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
18424 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
18426 if (ndr_flags
& NDR_SCALARS
) {
18427 NDR_CHECK(ndr_push_align(ndr
, 4));
18429 uint32_t _flags_save_string
= ndr
->flags
;
18430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18431 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18432 ndr
->flags
= _flags_save_string
;
18435 if (ndr_flags
& NDR_BUFFERS
) {
18437 return NDR_ERR_SUCCESS
;
18440 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
18442 if (ndr_flags
& NDR_SCALARS
) {
18443 NDR_CHECK(ndr_pull_align(ndr
, 4));
18445 uint32_t _flags_save_string
= ndr
->flags
;
18446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18447 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18448 ndr
->flags
= _flags_save_string
;
18451 if (ndr_flags
& NDR_BUFFERS
) {
18453 return NDR_ERR_SUCCESS
;
18456 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
18458 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
18460 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18464 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18467 return NDR_ERR_SUCCESS
;
18470 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18473 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18475 return NDR_ERR_SUCCESS
;
18478 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18480 ndr_print_uint32(ndr
, name
, r
);
18482 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
18483 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
18484 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
18485 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
18486 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
18487 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
18488 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
18489 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
18493 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
18495 if (flags
& NDR_IN
) {
18496 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
18497 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18498 if (r
->in
.server
) {
18499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18502 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18505 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18506 if (r
->in
.buffer
) {
18507 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18511 if (flags
& NDR_OUT
) {
18512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18514 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18516 if (r
->out
.needed
== NULL
) {
18517 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18520 if (r
->out
.count
== NULL
) {
18521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18524 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18526 return NDR_ERR_SUCCESS
;
18529 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
18531 uint32_t _ptr_server
;
18532 uint32_t _ptr_buffer
;
18533 uint32_t _ptr_info
;
18534 TALLOC_CTX
*_mem_save_server_0
;
18535 TALLOC_CTX
*_mem_save_buffer_0
;
18536 TALLOC_CTX
*_mem_save_info_0
;
18537 TALLOC_CTX
*_mem_save_needed_0
;
18538 TALLOC_CTX
*_mem_save_count_0
;
18539 if (flags
& NDR_IN
) {
18540 ZERO_STRUCT(r
->out
);
18542 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
18543 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18545 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18547 r
->in
.server
= NULL
;
18549 if (r
->in
.server
) {
18550 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18551 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18552 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18553 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18554 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18555 return 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
));
18557 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18558 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18561 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18564 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18566 r
->in
.buffer
= NULL
;
18568 if (r
->in
.buffer
) {
18569 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18570 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18571 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18575 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18576 ZERO_STRUCTP(r
->out
.needed
);
18577 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18578 ZERO_STRUCTP(r
->out
.count
);
18580 if (flags
& NDR_OUT
) {
18581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18583 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18585 r
->out
.info
= NULL
;
18588 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18589 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18590 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18593 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18594 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18596 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18597 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18600 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18601 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18603 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18604 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18607 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18609 return NDR_ERR_SUCCESS
;
18612 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
18614 uint32_t cntr_info_0
;
18615 if (flags
& NDR_IN
) {
18616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
18619 if (flags
& NDR_OUT
) {
18620 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18621 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18622 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18624 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18625 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18628 return NDR_ERR_SUCCESS
;
18631 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
18633 uint32_t cntr_info_0
;
18634 TALLOC_CTX
*_mem_save_info_0
;
18635 if (flags
& NDR_IN
) {
18636 ZERO_STRUCT(r
->out
);
18638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
18641 if (flags
& NDR_OUT
) {
18642 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
18643 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18644 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18645 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18646 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18647 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18649 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18650 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18654 return NDR_ERR_SUCCESS
;
18657 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
18659 uint32_t cntr_info_2
;
18660 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
18662 if (flags
& NDR_SET_VALUES
) {
18663 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18665 if (flags
& NDR_IN
) {
18666 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
18668 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
18669 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18671 if (r
->in
.server
) {
18672 ndr_print_string(ndr
, "server", r
->in
.server
);
18675 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18676 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18678 if (r
->in
.buffer
) {
18679 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18682 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18685 if (flags
& NDR_OUT
) {
18686 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
18688 ndr_print_ptr(ndr
, "count", r
->out
.count
);
18690 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
18692 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18694 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
18696 if (*r
->out
.info
) {
18697 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
18699 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
18701 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
18702 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
18703 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
18711 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18713 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18715 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18721 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
18723 if (flags
& NDR_IN
) {
18724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
18725 if (r
->in
.printername
) {
18726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18729 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18731 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
18732 if (r
->in
.datatype
) {
18733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18736 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18738 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18739 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
18741 if (flags
& NDR_OUT
) {
18742 if (r
->out
.handle
== NULL
) {
18743 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18745 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18746 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18748 return NDR_ERR_SUCCESS
;
18751 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
18753 uint32_t _ptr_printername
;
18754 uint32_t _ptr_datatype
;
18755 TALLOC_CTX
*_mem_save_printername_0
;
18756 TALLOC_CTX
*_mem_save_datatype_0
;
18757 TALLOC_CTX
*_mem_save_handle_0
;
18758 if (flags
& NDR_IN
) {
18759 ZERO_STRUCT(r
->out
);
18761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
18762 if (_ptr_printername
) {
18763 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
18765 r
->in
.printername
= NULL
;
18767 if (r
->in
.printername
) {
18768 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18769 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
18770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
18771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
18772 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
18773 return 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
));
18775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
18776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
18777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
18779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
18780 if (_ptr_datatype
) {
18781 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
18783 r
->in
.datatype
= NULL
;
18785 if (r
->in
.datatype
) {
18786 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18787 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
18788 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
18789 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
18790 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
18791 return 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
));
18793 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
18794 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
18795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
18797 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18798 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
18799 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18800 ZERO_STRUCTP(r
->out
.handle
);
18802 if (flags
& NDR_OUT
) {
18803 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18804 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18806 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18807 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18808 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18809 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18810 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18812 return NDR_ERR_SUCCESS
;
18815 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
18817 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
18819 if (flags
& NDR_SET_VALUES
) {
18820 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18822 if (flags
& NDR_IN
) {
18823 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
18825 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
18827 if (r
->in
.printername
) {
18828 ndr_print_string(ndr
, "printername", r
->in
.printername
);
18831 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
18833 if (r
->in
.datatype
) {
18834 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
18837 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
18838 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
18841 if (flags
& NDR_OUT
) {
18842 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
18844 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
18846 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
18848 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18854 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
18856 if (flags
& NDR_IN
) {
18857 if (r
->in
.handle
== NULL
) {
18858 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18860 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18861 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
18864 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18866 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
18868 if (flags
& NDR_OUT
) {
18869 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18871 return NDR_ERR_SUCCESS
;
18874 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
18877 TALLOC_CTX
*_mem_save_handle_0
;
18878 TALLOC_CTX
*_mem_save_ctr_0
;
18879 if (flags
& NDR_IN
) {
18880 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18881 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18883 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18884 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18885 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
18888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
18890 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
18895 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18896 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
18897 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
18900 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
18902 if (flags
& NDR_OUT
) {
18903 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18905 return NDR_ERR_SUCCESS
;
18908 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
18910 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
18912 if (flags
& NDR_SET_VALUES
) {
18913 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18915 if (flags
& NDR_IN
) {
18916 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
18918 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
18920 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
18922 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
18923 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
18926 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
18929 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
18932 if (flags
& NDR_OUT
) {
18933 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
18935 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18941 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
18943 if (flags
& NDR_IN
) {
18944 if (r
->in
.handle
== NULL
) {
18945 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18947 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18951 if (r
->in
.buffer
) {
18952 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18956 if (flags
& NDR_OUT
) {
18957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18960 struct ndr_push
*_ndr_info
;
18961 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18962 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18963 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
18964 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18967 if (r
->out
.needed
== NULL
) {
18968 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18971 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18973 return NDR_ERR_SUCCESS
;
18976 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
18978 uint32_t _ptr_buffer
;
18979 uint32_t _ptr_info
;
18980 TALLOC_CTX
*_mem_save_handle_0
;
18981 TALLOC_CTX
*_mem_save_buffer_0
;
18982 TALLOC_CTX
*_mem_save_info_0
;
18983 TALLOC_CTX
*_mem_save_needed_0
;
18984 if (flags
& NDR_IN
) {
18985 ZERO_STRUCT(r
->out
);
18987 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18988 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18990 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18991 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18992 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
18995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18998 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19000 r
->in
.buffer
= NULL
;
19002 if (r
->in
.buffer
) {
19003 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19005 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19009 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19010 ZERO_STRUCTP(r
->out
.needed
);
19012 if (flags
& NDR_OUT
) {
19013 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19015 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19017 r
->out
.info
= NULL
;
19020 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19021 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19023 struct ndr_pull
*_ndr_info
;
19024 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19025 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19026 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19027 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19031 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19032 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19034 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19035 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19036 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19038 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19040 return NDR_ERR_SUCCESS
;
19043 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
19045 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
19047 if (flags
& NDR_SET_VALUES
) {
19048 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19050 if (flags
& NDR_IN
) {
19051 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
19053 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19055 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19057 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
19058 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19059 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19061 if (r
->in
.buffer
) {
19062 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19065 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19068 if (flags
& NDR_OUT
) {
19069 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
19071 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19074 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19075 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
19078 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19080 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19082 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19088 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
19090 if (flags
& NDR_IN
) {
19091 if (r
->in
.handle
== NULL
) {
19092 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19094 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
19096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
19097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19099 if (r
->in
.buffer
) {
19100 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19104 if (flags
& NDR_OUT
) {
19105 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19107 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19109 if (r
->out
.needed
== NULL
) {
19110 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19113 if (r
->out
.count
== NULL
) {
19114 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19117 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19119 return NDR_ERR_SUCCESS
;
19122 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
19124 uint32_t _ptr_buffer
;
19125 uint32_t _ptr_info
;
19126 TALLOC_CTX
*_mem_save_handle_0
;
19127 TALLOC_CTX
*_mem_save_buffer_0
;
19128 TALLOC_CTX
*_mem_save_info_0
;
19129 TALLOC_CTX
*_mem_save_needed_0
;
19130 TALLOC_CTX
*_mem_save_count_0
;
19131 if (flags
& NDR_IN
) {
19132 ZERO_STRUCT(r
->out
);
19134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19135 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19137 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19138 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19139 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
19142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
19143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19144 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19146 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19148 r
->in
.buffer
= NULL
;
19150 if (r
->in
.buffer
) {
19151 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19152 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19153 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19157 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19158 ZERO_STRUCTP(r
->out
.needed
);
19159 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19160 ZERO_STRUCTP(r
->out
.count
);
19162 if (flags
& NDR_OUT
) {
19163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19165 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19167 r
->out
.info
= NULL
;
19170 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19171 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19172 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19175 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19176 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19178 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19179 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19180 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19182 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19183 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19185 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19186 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19189 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19191 return NDR_ERR_SUCCESS
;
19194 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
19196 uint32_t cntr_info_0
;
19197 if (flags
& NDR_IN
) {
19198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19201 if (flags
& NDR_OUT
) {
19202 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19203 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19204 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19206 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19207 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19210 return NDR_ERR_SUCCESS
;
19213 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
19215 uint32_t cntr_info_0
;
19216 TALLOC_CTX
*_mem_save_info_0
;
19217 if (flags
& NDR_IN
) {
19218 ZERO_STRUCT(r
->out
);
19220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19221 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19223 if (flags
& NDR_OUT
) {
19224 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19225 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19226 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19227 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19228 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19229 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19231 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19232 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19236 return NDR_ERR_SUCCESS
;
19239 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
19241 uint32_t cntr_info_2
;
19242 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
19244 if (flags
& NDR_SET_VALUES
) {
19245 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19247 if (flags
& NDR_IN
) {
19248 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
19250 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19252 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19254 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
19255 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
19256 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19257 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19259 if (r
->in
.buffer
) {
19260 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19263 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19266 if (flags
& NDR_OUT
) {
19267 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
19269 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19271 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19273 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19275 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19277 if (*r
->out
.info
) {
19278 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19280 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19282 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19283 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19284 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19292 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19294 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19296 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19302 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
19304 if (flags
& NDR_IN
) {
19306 if (flags
& NDR_OUT
) {
19307 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19309 return NDR_ERR_SUCCESS
;
19312 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
19314 if (flags
& NDR_IN
) {
19316 if (flags
& NDR_OUT
) {
19317 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19319 return NDR_ERR_SUCCESS
;
19322 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
19324 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
19326 if (flags
& NDR_SET_VALUES
) {
19327 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19329 if (flags
& NDR_IN
) {
19330 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
19334 if (flags
& NDR_OUT
) {
19335 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
19337 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19343 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
19345 if (flags
& NDR_IN
) {
19346 if (r
->in
.handle
== NULL
) {
19347 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19349 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19351 if (flags
& NDR_OUT
) {
19352 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19354 return NDR_ERR_SUCCESS
;
19357 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
19359 TALLOC_CTX
*_mem_save_handle_0
;
19360 if (flags
& NDR_IN
) {
19361 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19362 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19364 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19365 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19366 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19369 if (flags
& NDR_OUT
) {
19370 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19372 return NDR_ERR_SUCCESS
;
19375 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
19377 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
19379 if (flags
& NDR_SET_VALUES
) {
19380 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19382 if (flags
& NDR_IN
) {
19383 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
19385 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19387 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19391 if (flags
& NDR_OUT
) {
19392 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
19394 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19400 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
19402 if (flags
& NDR_IN
) {
19403 if (r
->in
.handle
== NULL
) {
19404 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19406 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19407 if (r
->in
.info_ctr
== NULL
) {
19408 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19410 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19411 if (r
->in
.devmode_ctr
== NULL
) {
19412 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19414 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19415 if (r
->in
.secdesc_ctr
== NULL
) {
19416 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19418 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19419 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19421 if (flags
& NDR_OUT
) {
19422 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19424 return NDR_ERR_SUCCESS
;
19427 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
19429 TALLOC_CTX
*_mem_save_handle_0
;
19430 TALLOC_CTX
*_mem_save_info_ctr_0
;
19431 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
19432 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
19433 if (flags
& NDR_IN
) {
19434 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19435 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19437 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19438 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19439 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19441 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19442 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19444 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19445 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19446 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19448 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19449 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
19451 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19452 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19453 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19455 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19456 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
19458 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19459 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19460 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19462 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19464 if (flags
& NDR_OUT
) {
19465 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19467 return NDR_ERR_SUCCESS
;
19470 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
19472 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
19474 if (flags
& NDR_SET_VALUES
) {
19475 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19477 if (flags
& NDR_IN
) {
19478 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
19480 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19482 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19484 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19486 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19488 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19490 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19492 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19494 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19496 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
19499 if (flags
& NDR_OUT
) {
19500 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
19502 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19508 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
19510 if (flags
& NDR_IN
) {
19511 if (r
->in
.handle
== NULL
) {
19512 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19514 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19517 if (r
->in
.buffer
) {
19518 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19522 if (flags
& NDR_OUT
) {
19523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19526 struct ndr_push
*_ndr_info
;
19527 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19528 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19529 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19530 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19533 if (r
->out
.needed
== NULL
) {
19534 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19537 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19539 return NDR_ERR_SUCCESS
;
19542 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
19544 uint32_t _ptr_buffer
;
19545 uint32_t _ptr_info
;
19546 TALLOC_CTX
*_mem_save_handle_0
;
19547 TALLOC_CTX
*_mem_save_buffer_0
;
19548 TALLOC_CTX
*_mem_save_info_0
;
19549 TALLOC_CTX
*_mem_save_needed_0
;
19550 if (flags
& NDR_IN
) {
19551 ZERO_STRUCT(r
->out
);
19553 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19554 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19556 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19557 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19558 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19563 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19565 r
->in
.buffer
= NULL
;
19567 if (r
->in
.buffer
) {
19568 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19569 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19570 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19574 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19575 ZERO_STRUCTP(r
->out
.needed
);
19577 if (flags
& NDR_OUT
) {
19578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19580 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19582 r
->out
.info
= NULL
;
19585 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19586 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19588 struct ndr_pull
*_ndr_info
;
19589 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19590 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19591 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19592 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19596 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19597 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19599 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19600 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19601 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19603 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19605 return NDR_ERR_SUCCESS
;
19608 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
19610 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
19612 if (flags
& NDR_SET_VALUES
) {
19613 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19615 if (flags
& NDR_IN
) {
19616 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
19618 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19620 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19622 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19623 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19625 if (r
->in
.buffer
) {
19626 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19629 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19632 if (flags
& NDR_OUT
) {
19633 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
19635 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19638 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19639 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
19642 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19644 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19646 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19652 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19654 if (flags
& NDR_IN
) {
19655 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
19656 if (r
->in
.servername
) {
19657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19660 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19662 if (r
->in
.info_ctr
== NULL
) {
19663 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19665 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19667 if (flags
& NDR_OUT
) {
19668 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19670 return NDR_ERR_SUCCESS
;
19673 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
19675 uint32_t _ptr_servername
;
19676 TALLOC_CTX
*_mem_save_servername_0
;
19677 TALLOC_CTX
*_mem_save_info_ctr_0
;
19678 if (flags
& NDR_IN
) {
19679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
19680 if (_ptr_servername
) {
19681 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
19683 r
->in
.servername
= NULL
;
19685 if (r
->in
.servername
) {
19686 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19687 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
19688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
19689 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
19690 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
19691 return 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
));
19693 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
19694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
19695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
19697 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19698 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19700 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19701 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19702 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19705 if (flags
& NDR_OUT
) {
19706 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19708 return NDR_ERR_SUCCESS
;
19711 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19713 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
19715 if (flags
& NDR_SET_VALUES
) {
19716 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19718 if (flags
& NDR_IN
) {
19719 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
19721 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
19723 if (r
->in
.servername
) {
19724 ndr_print_string(ndr
, "servername", r
->in
.servername
);
19727 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19729 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19733 if (flags
& NDR_OUT
) {
19734 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
19736 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19742 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
19744 if (flags
& NDR_IN
) {
19745 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19746 if (r
->in
.server
) {
19747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19750 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
19753 if (r
->in
.environment
) {
19754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19757 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19760 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19761 if (r
->in
.buffer
) {
19762 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19766 if (flags
& NDR_OUT
) {
19767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19769 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19771 if (r
->out
.needed
== NULL
) {
19772 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19775 if (r
->out
.count
== NULL
) {
19776 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19779 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19781 return NDR_ERR_SUCCESS
;
19784 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
19786 uint32_t _ptr_server
;
19787 uint32_t _ptr_environment
;
19788 uint32_t _ptr_buffer
;
19789 uint32_t _ptr_info
;
19790 TALLOC_CTX
*_mem_save_server_0
;
19791 TALLOC_CTX
*_mem_save_environment_0
;
19792 TALLOC_CTX
*_mem_save_buffer_0
;
19793 TALLOC_CTX
*_mem_save_info_0
;
19794 TALLOC_CTX
*_mem_save_needed_0
;
19795 TALLOC_CTX
*_mem_save_count_0
;
19796 if (flags
& NDR_IN
) {
19797 ZERO_STRUCT(r
->out
);
19799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19801 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19803 r
->in
.server
= NULL
;
19805 if (r
->in
.server
) {
19806 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19807 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19808 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19809 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19810 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19811 return 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
));
19813 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19814 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
19818 if (_ptr_environment
) {
19819 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
19821 r
->in
.environment
= NULL
;
19823 if (r
->in
.environment
) {
19824 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19825 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
19826 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
19827 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
19828 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
19829 return 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
));
19831 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
19832 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
19833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
19835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19838 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19840 r
->in
.buffer
= NULL
;
19842 if (r
->in
.buffer
) {
19843 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19844 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19845 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19849 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19850 ZERO_STRUCTP(r
->out
.needed
);
19851 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19852 ZERO_STRUCTP(r
->out
.count
);
19854 if (flags
& NDR_OUT
) {
19855 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19857 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19859 r
->out
.info
= NULL
;
19862 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19863 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19864 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19867 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19868 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19870 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19871 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19874 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19875 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19877 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19878 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19881 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19883 return NDR_ERR_SUCCESS
;
19886 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
19888 uint32_t cntr_info_0
;
19889 if (flags
& NDR_IN
) {
19890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19893 if (flags
& NDR_OUT
) {
19894 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19895 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19896 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19898 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19899 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19902 return NDR_ERR_SUCCESS
;
19905 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
19907 uint32_t cntr_info_0
;
19908 TALLOC_CTX
*_mem_save_info_0
;
19909 if (flags
& NDR_IN
) {
19910 ZERO_STRUCT(r
->out
);
19912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19915 if (flags
& NDR_OUT
) {
19916 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19917 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19918 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19919 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19920 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19921 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19923 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19924 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19928 return NDR_ERR_SUCCESS
;
19931 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
19933 uint32_t cntr_info_2
;
19934 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
19936 if (flags
& NDR_SET_VALUES
) {
19937 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19939 if (flags
& NDR_IN
) {
19940 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
19942 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19944 if (r
->in
.server
) {
19945 ndr_print_string(ndr
, "server", r
->in
.server
);
19948 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
19950 if (r
->in
.environment
) {
19951 ndr_print_string(ndr
, "environment", r
->in
.environment
);
19954 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19955 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19957 if (r
->in
.buffer
) {
19958 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19961 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19964 if (flags
& NDR_OUT
) {
19965 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
19967 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19969 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19971 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19973 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19975 if (*r
->out
.info
) {
19976 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19978 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19980 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19981 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19982 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19990 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19992 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19994 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20000 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
20002 if (flags
& NDR_IN
) {
20004 if (flags
& NDR_OUT
) {
20005 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20007 return NDR_ERR_SUCCESS
;
20010 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
20012 if (flags
& NDR_IN
) {
20014 if (flags
& NDR_OUT
) {
20015 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20017 return NDR_ERR_SUCCESS
;
20020 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
20022 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
20024 if (flags
& NDR_SET_VALUES
) {
20025 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20027 if (flags
& NDR_IN
) {
20028 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
20032 if (flags
& NDR_OUT
) {
20033 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
20035 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20041 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
20043 if (flags
& NDR_IN
) {
20044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20045 if (r
->in
.server
) {
20046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20049 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20051 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20052 if (r
->in
.environment
) {
20053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20060 if (r
->in
.buffer
) {
20061 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20065 if (flags
& NDR_OUT
) {
20066 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20069 struct ndr_push
*_ndr_info
;
20070 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20071 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20072 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20073 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20076 if (r
->out
.needed
== NULL
) {
20077 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20080 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20082 return NDR_ERR_SUCCESS
;
20085 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
20087 uint32_t _ptr_server
;
20088 uint32_t _ptr_environment
;
20089 uint32_t _ptr_buffer
;
20090 uint32_t _ptr_info
;
20091 TALLOC_CTX
*_mem_save_server_0
;
20092 TALLOC_CTX
*_mem_save_environment_0
;
20093 TALLOC_CTX
*_mem_save_buffer_0
;
20094 TALLOC_CTX
*_mem_save_info_0
;
20095 TALLOC_CTX
*_mem_save_needed_0
;
20096 if (flags
& NDR_IN
) {
20097 ZERO_STRUCT(r
->out
);
20099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20101 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20103 r
->in
.server
= NULL
;
20105 if (r
->in
.server
) {
20106 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20107 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20108 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20109 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20110 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20111 return 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
));
20113 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20118 if (_ptr_environment
) {
20119 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20121 r
->in
.environment
= NULL
;
20123 if (r
->in
.environment
) {
20124 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20125 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20126 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20127 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20128 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20129 return 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
));
20131 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20132 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20138 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20140 r
->in
.buffer
= NULL
;
20142 if (r
->in
.buffer
) {
20143 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20144 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20145 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20149 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20150 ZERO_STRUCTP(r
->out
.needed
);
20152 if (flags
& NDR_OUT
) {
20153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20155 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20157 r
->out
.info
= NULL
;
20160 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20161 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20163 struct ndr_pull
*_ndr_info
;
20164 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20165 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20166 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20167 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20171 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20172 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20174 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20175 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20176 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20177 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20178 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20180 return NDR_ERR_SUCCESS
;
20183 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
20185 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
20187 if (flags
& NDR_SET_VALUES
) {
20188 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20190 if (flags
& NDR_IN
) {
20191 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
20193 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20195 if (r
->in
.server
) {
20196 ndr_print_string(ndr
, "server", r
->in
.server
);
20199 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20201 if (r
->in
.environment
) {
20202 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20205 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20206 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20208 if (r
->in
.buffer
) {
20209 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20212 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20215 if (flags
& NDR_OUT
) {
20216 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
20218 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20221 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20222 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
20225 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20227 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20235 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20237 if (flags
& NDR_IN
) {
20238 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20239 if (r
->in
.server
) {
20240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20243 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20248 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20252 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20254 if (flags
& NDR_OUT
) {
20255 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20257 return NDR_ERR_SUCCESS
;
20260 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
20262 uint32_t _ptr_server
;
20263 TALLOC_CTX
*_mem_save_server_0
;
20264 if (flags
& NDR_IN
) {
20265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20267 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20269 r
->in
.server
= NULL
;
20271 if (r
->in
.server
) {
20272 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20273 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20276 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20277 return 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
));
20279 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20283 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20284 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20285 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20286 return 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
));
20288 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20289 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20290 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
20291 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
20292 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
20293 return 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
));
20295 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
20296 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
20298 if (flags
& NDR_OUT
) {
20299 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20301 return NDR_ERR_SUCCESS
;
20304 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20306 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
20308 if (flags
& NDR_SET_VALUES
) {
20309 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20311 if (flags
& NDR_IN
) {
20312 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
20314 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20316 if (r
->in
.server
) {
20317 ndr_print_string(ndr
, "server", r
->in
.server
);
20320 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20321 ndr_print_string(ndr
, "driver", r
->in
.driver
);
20324 if (flags
& NDR_OUT
) {
20325 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
20327 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20333 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20335 if (flags
& NDR_IN
) {
20336 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20337 if (r
->in
.server
) {
20338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20341 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20346 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20350 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
));
20351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20354 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
));
20356 if (flags
& NDR_OUT
) {
20357 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20359 return NDR_ERR_SUCCESS
;
20362 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
20364 uint32_t _ptr_server
;
20365 TALLOC_CTX
*_mem_save_server_0
;
20366 if (flags
& NDR_IN
) {
20367 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20369 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20371 r
->in
.server
= NULL
;
20373 if (r
->in
.server
) {
20374 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20375 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20377 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20378 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20379 return 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
));
20381 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20382 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20385 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20386 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20387 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20388 return 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
));
20390 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20391 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20392 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
20393 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
20394 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
20395 return 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
));
20397 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
20398 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
));
20399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
20400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
20401 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
20402 return 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
));
20404 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
20405 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
));
20407 if (flags
& NDR_OUT
) {
20408 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20410 return NDR_ERR_SUCCESS
;
20413 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20415 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
20417 if (flags
& NDR_SET_VALUES
) {
20418 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20420 if (flags
& NDR_IN
) {
20421 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
20423 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20425 if (r
->in
.server
) {
20426 ndr_print_string(ndr
, "server", r
->in
.server
);
20429 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20430 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
20431 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
20434 if (flags
& NDR_OUT
) {
20435 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
20437 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20443 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
20445 if (flags
& NDR_IN
) {
20446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20447 if (r
->in
.servername
) {
20448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20451 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20454 if (r
->in
.environment
) {
20455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20458 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20461 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20462 if (r
->in
.buffer
) {
20463 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20467 if (flags
& NDR_OUT
) {
20468 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20470 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20472 if (r
->out
.needed
== NULL
) {
20473 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20476 if (r
->out
.count
== NULL
) {
20477 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20480 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20482 return NDR_ERR_SUCCESS
;
20485 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
20487 uint32_t _ptr_servername
;
20488 uint32_t _ptr_environment
;
20489 uint32_t _ptr_buffer
;
20490 uint32_t _ptr_info
;
20491 TALLOC_CTX
*_mem_save_servername_0
;
20492 TALLOC_CTX
*_mem_save_environment_0
;
20493 TALLOC_CTX
*_mem_save_buffer_0
;
20494 TALLOC_CTX
*_mem_save_info_0
;
20495 TALLOC_CTX
*_mem_save_needed_0
;
20496 TALLOC_CTX
*_mem_save_count_0
;
20497 if (flags
& NDR_IN
) {
20498 ZERO_STRUCT(r
->out
);
20500 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20501 if (_ptr_servername
) {
20502 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20504 r
->in
.servername
= NULL
;
20506 if (r
->in
.servername
) {
20507 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20508 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20510 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20511 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20512 return 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
));
20514 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20515 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20518 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20519 if (_ptr_environment
) {
20520 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20522 r
->in
.environment
= NULL
;
20524 if (r
->in
.environment
) {
20525 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20526 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20527 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20528 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20529 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20530 return 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
));
20532 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20533 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20539 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20541 r
->in
.buffer
= NULL
;
20543 if (r
->in
.buffer
) {
20544 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20546 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20550 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20551 ZERO_STRUCTP(r
->out
.needed
);
20552 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20553 ZERO_STRUCTP(r
->out
.count
);
20555 if (flags
& NDR_OUT
) {
20556 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20558 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20560 r
->out
.info
= NULL
;
20563 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20564 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20565 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20568 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20569 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20571 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20572 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20576 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20578 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20579 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20580 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20582 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20584 return NDR_ERR_SUCCESS
;
20587 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
20589 uint32_t cntr_info_0
;
20590 if (flags
& NDR_IN
) {
20591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20594 if (flags
& NDR_OUT
) {
20595 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20596 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20597 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20599 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20600 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20603 return NDR_ERR_SUCCESS
;
20606 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
20608 uint32_t cntr_info_0
;
20609 TALLOC_CTX
*_mem_save_info_0
;
20610 if (flags
& NDR_IN
) {
20611 ZERO_STRUCT(r
->out
);
20613 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20616 if (flags
& NDR_OUT
) {
20617 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20618 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20619 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20620 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20621 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20622 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20624 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20625 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20629 return NDR_ERR_SUCCESS
;
20632 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
20634 uint32_t cntr_info_2
;
20635 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
20637 if (flags
& NDR_SET_VALUES
) {
20638 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20640 if (flags
& NDR_IN
) {
20641 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
20643 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20645 if (r
->in
.servername
) {
20646 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20649 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20651 if (r
->in
.environment
) {
20652 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20655 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20656 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20658 if (r
->in
.buffer
) {
20659 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20662 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20665 if (flags
& NDR_OUT
) {
20666 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
20668 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20670 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20672 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20674 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20676 if (*r
->out
.info
) {
20677 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20679 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20681 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20682 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20683 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20691 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20693 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20695 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20701 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20703 if (flags
& NDR_IN
) {
20704 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20705 if (r
->in
.server
) {
20706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20709 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20712 if (r
->in
.environment
) {
20713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20714 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20716 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20719 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20720 if (r
->in
.buffer
) {
20721 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20725 if (flags
& NDR_OUT
) {
20726 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20729 struct ndr_push
*_ndr_info
;
20730 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20731 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20732 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20733 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20736 if (r
->out
.needed
== NULL
) {
20737 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20740 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20742 return NDR_ERR_SUCCESS
;
20745 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
20747 uint32_t _ptr_server
;
20748 uint32_t _ptr_environment
;
20749 uint32_t _ptr_buffer
;
20750 uint32_t _ptr_info
;
20751 TALLOC_CTX
*_mem_save_server_0
;
20752 TALLOC_CTX
*_mem_save_environment_0
;
20753 TALLOC_CTX
*_mem_save_buffer_0
;
20754 TALLOC_CTX
*_mem_save_info_0
;
20755 TALLOC_CTX
*_mem_save_needed_0
;
20756 if (flags
& NDR_IN
) {
20757 ZERO_STRUCT(r
->out
);
20759 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20761 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20763 r
->in
.server
= NULL
;
20765 if (r
->in
.server
) {
20766 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20767 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20768 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20769 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20770 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20771 return 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
));
20773 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20774 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20777 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20778 if (_ptr_environment
) {
20779 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20781 r
->in
.environment
= NULL
;
20783 if (r
->in
.environment
) {
20784 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20785 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20786 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20787 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20788 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20789 return 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
));
20791 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20792 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20796 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20798 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20800 r
->in
.buffer
= NULL
;
20802 if (r
->in
.buffer
) {
20803 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20804 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20805 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20809 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20810 ZERO_STRUCTP(r
->out
.needed
);
20812 if (flags
& NDR_OUT
) {
20813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20815 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20817 r
->out
.info
= NULL
;
20820 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20821 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20823 struct ndr_pull
*_ndr_info
;
20824 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20825 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20826 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20827 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20829 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20831 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20832 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20834 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20835 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20838 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20840 return NDR_ERR_SUCCESS
;
20843 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20845 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
20847 if (flags
& NDR_SET_VALUES
) {
20848 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20850 if (flags
& NDR_IN
) {
20851 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
20853 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20855 if (r
->in
.server
) {
20856 ndr_print_string(ndr
, "server", r
->in
.server
);
20859 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20861 if (r
->in
.environment
) {
20862 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20865 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20866 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20868 if (r
->in
.buffer
) {
20869 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20872 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20875 if (flags
& NDR_OUT
) {
20876 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
20878 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20881 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20882 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
20885 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20887 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20889 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20895 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20897 if (flags
& NDR_IN
) {
20898 if (r
->in
.handle
== NULL
) {
20899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20901 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20903 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20904 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20906 if (flags
& NDR_OUT
) {
20907 if (r
->out
.job_id
== NULL
) {
20908 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20910 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
20911 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20913 return NDR_ERR_SUCCESS
;
20916 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
20918 TALLOC_CTX
*_mem_save_handle_0
;
20919 TALLOC_CTX
*_mem_save_job_id_0
;
20920 if (flags
& NDR_IN
) {
20921 ZERO_STRUCT(r
->out
);
20923 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20924 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20926 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20927 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20928 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20930 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20931 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20932 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20933 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20934 ZERO_STRUCTP(r
->out
.job_id
);
20936 if (flags
& NDR_OUT
) {
20937 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20938 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20940 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20941 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
20942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
20943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
20944 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20946 return NDR_ERR_SUCCESS
;
20949 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20951 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
20953 if (flags
& NDR_SET_VALUES
) {
20954 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20956 if (flags
& NDR_IN
) {
20957 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
20959 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20961 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20963 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20964 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
20965 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
20968 if (flags
& NDR_OUT
) {
20969 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
20971 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
20973 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
20975 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20981 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
20983 if (flags
& NDR_IN
) {
20984 if (r
->in
.handle
== NULL
) {
20985 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20987 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20989 if (flags
& NDR_OUT
) {
20990 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20992 return NDR_ERR_SUCCESS
;
20995 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
20997 TALLOC_CTX
*_mem_save_handle_0
;
20998 if (flags
& NDR_IN
) {
20999 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21000 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21002 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21003 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21004 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21007 if (flags
& NDR_OUT
) {
21008 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21010 return NDR_ERR_SUCCESS
;
21013 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
21015 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
21017 if (flags
& NDR_SET_VALUES
) {
21018 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21020 if (flags
& NDR_IN
) {
21021 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
21023 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21025 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21029 if (flags
& NDR_OUT
) {
21030 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
21032 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21038 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
21040 if (flags
& NDR_IN
) {
21041 if (r
->in
.handle
== NULL
) {
21042 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21044 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21045 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
21048 if (flags
& NDR_OUT
) {
21049 if (r
->out
.num_written
== NULL
) {
21050 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
21053 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21055 return NDR_ERR_SUCCESS
;
21058 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
21060 TALLOC_CTX
*_mem_save_handle_0
;
21061 TALLOC_CTX
*_mem_save_num_written_0
;
21062 if (flags
& NDR_IN
) {
21063 ZERO_STRUCT(r
->out
);
21065 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21066 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21068 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21069 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21070 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21072 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
21073 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
21074 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21075 ZERO_STRUCTP(r
->out
.num_written
);
21077 if (flags
& NDR_OUT
) {
21078 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21079 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21081 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21082 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
21083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
21084 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
21085 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21087 return NDR_ERR_SUCCESS
;
21090 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
21092 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
21094 if (flags
& NDR_SET_VALUES
) {
21095 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21097 if (flags
& NDR_IN
) {
21098 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
21100 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21102 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21104 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
21105 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
21108 if (flags
& NDR_OUT
) {
21109 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
21111 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
21113 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
21115 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21121 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21123 if (flags
& NDR_IN
) {
21124 if (r
->in
.handle
== NULL
) {
21125 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21127 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21129 if (flags
& NDR_OUT
) {
21130 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21132 return NDR_ERR_SUCCESS
;
21135 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
21137 TALLOC_CTX
*_mem_save_handle_0
;
21138 if (flags
& NDR_IN
) {
21139 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21140 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21142 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21143 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21144 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21147 if (flags
& NDR_OUT
) {
21148 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21150 return NDR_ERR_SUCCESS
;
21153 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21155 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
21157 if (flags
& NDR_SET_VALUES
) {
21158 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21160 if (flags
& NDR_IN
) {
21161 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
21163 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21165 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21169 if (flags
& NDR_OUT
) {
21170 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
21172 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21178 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
21180 if (flags
& NDR_IN
) {
21181 if (r
->in
.handle
== NULL
) {
21182 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21184 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21186 if (flags
& NDR_OUT
) {
21187 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21189 return NDR_ERR_SUCCESS
;
21192 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
21194 TALLOC_CTX
*_mem_save_handle_0
;
21195 if (flags
& NDR_IN
) {
21196 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21197 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21199 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21200 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21201 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21204 if (flags
& NDR_OUT
) {
21205 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21207 return NDR_ERR_SUCCESS
;
21210 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
21212 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
21214 if (flags
& NDR_SET_VALUES
) {
21215 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21217 if (flags
& NDR_IN
) {
21218 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
21220 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21222 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21226 if (flags
& NDR_OUT
) {
21227 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
21229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21235 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
21237 if (flags
& NDR_IN
) {
21238 if (r
->in
.handle
== NULL
) {
21239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21241 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21244 if (flags
& NDR_OUT
) {
21245 if (r
->out
.data
== NULL
) {
21246 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21249 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
21250 if (r
->out
._data_size
== NULL
) {
21251 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
21254 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21256 return NDR_ERR_SUCCESS
;
21259 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
21261 TALLOC_CTX
*_mem_save_handle_0
;
21262 TALLOC_CTX
*_mem_save__data_size_0
;
21263 if (flags
& NDR_IN
) {
21264 ZERO_STRUCT(r
->out
);
21266 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21267 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21269 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21270 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21271 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
21274 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
21275 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
21276 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21277 ZERO_STRUCTP(r
->out
._data_size
);
21279 if (flags
& NDR_OUT
) {
21280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
21281 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21282 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
21284 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
21285 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21286 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21288 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21289 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
21290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
21291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
21292 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21294 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
21297 return NDR_ERR_SUCCESS
;
21300 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
21302 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
21304 if (flags
& NDR_SET_VALUES
) {
21305 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21307 if (flags
& NDR_IN
) {
21308 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
21310 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21312 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21314 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
21317 if (flags
& NDR_OUT
) {
21318 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
21320 ndr_print_ptr(ndr
, "data", r
->out
.data
);
21322 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
21324 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
21326 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
21328 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21334 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21336 if (flags
& NDR_IN
) {
21337 if (r
->in
.handle
== NULL
) {
21338 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21340 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21342 if (flags
& NDR_OUT
) {
21343 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21345 return NDR_ERR_SUCCESS
;
21348 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
21350 TALLOC_CTX
*_mem_save_handle_0
;
21351 if (flags
& NDR_IN
) {
21352 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21353 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21355 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21356 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21357 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21360 if (flags
& NDR_OUT
) {
21361 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21363 return NDR_ERR_SUCCESS
;
21366 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21368 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
21370 if (flags
& NDR_SET_VALUES
) {
21371 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21373 if (flags
& NDR_IN
) {
21374 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
21376 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21378 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21382 if (flags
& NDR_OUT
) {
21383 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
21385 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21391 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
21393 if (flags
& NDR_IN
) {
21394 if (r
->in
.handle
== NULL
) {
21395 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21397 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21399 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21400 if (r
->in
.buffer
) {
21401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21402 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
21404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21406 if (flags
& NDR_OUT
) {
21407 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
21408 if (r
->out
.buffer
) {
21409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21410 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
21412 if (r
->out
.needed
== NULL
) {
21413 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21416 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21418 return NDR_ERR_SUCCESS
;
21421 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
21423 uint32_t _ptr_buffer
;
21424 TALLOC_CTX
*_mem_save_handle_0
;
21425 TALLOC_CTX
*_mem_save_buffer_0
;
21426 TALLOC_CTX
*_mem_save_needed_0
;
21427 if (flags
& NDR_IN
) {
21428 ZERO_STRUCT(r
->out
);
21430 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21431 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21433 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21434 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21435 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21436 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21438 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21440 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21442 r
->in
.buffer
= NULL
;
21444 if (r
->in
.buffer
) {
21445 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21446 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21447 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
21448 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
21449 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
21450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21453 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21454 ZERO_STRUCTP(r
->out
.needed
);
21455 if (r
->in
.buffer
) {
21456 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
21459 if (flags
& NDR_OUT
) {
21460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21462 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
21464 r
->out
.buffer
= NULL
;
21466 if (r
->out
.buffer
) {
21467 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21468 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
21469 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
21470 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
21471 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
21472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21474 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21475 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21477 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21478 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21481 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21482 if (r
->out
.buffer
) {
21483 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
21486 return NDR_ERR_SUCCESS
;
21489 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
21491 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
21493 if (flags
& NDR_SET_VALUES
) {
21494 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21496 if (flags
& NDR_IN
) {
21497 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
21499 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21501 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21503 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21504 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21506 if (r
->in
.buffer
) {
21507 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
21510 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21513 if (flags
& NDR_OUT
) {
21514 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
21516 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
21518 if (r
->out
.buffer
) {
21519 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
21522 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21524 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21526 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21532 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
21534 if (flags
& NDR_IN
) {
21535 if (r
->in
.handle
== NULL
) {
21536 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21538 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
21541 if (flags
& NDR_OUT
) {
21542 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21544 return NDR_ERR_SUCCESS
;
21547 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
21549 TALLOC_CTX
*_mem_save_handle_0
;
21550 if (flags
& NDR_IN
) {
21551 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21552 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21554 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21555 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21556 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
21560 if (flags
& NDR_OUT
) {
21561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21563 return NDR_ERR_SUCCESS
;
21566 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
21568 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
21570 if (flags
& NDR_SET_VALUES
) {
21571 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21573 if (flags
& NDR_IN
) {
21574 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
21576 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21578 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21580 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
21583 if (flags
& NDR_OUT
) {
21584 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
21586 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21592 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
21594 if (flags
& NDR_IN
) {
21595 if (r
->in
.handle
== NULL
) {
21596 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21598 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21602 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
));
21603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21605 if (flags
& NDR_OUT
) {
21606 if (r
->out
.type
== NULL
) {
21607 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21609 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
21610 if (r
->out
.data
== NULL
) {
21611 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21613 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
21614 if (r
->out
.needed
== NULL
) {
21615 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21618 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21620 return NDR_ERR_SUCCESS
;
21623 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
21625 TALLOC_CTX
*_mem_save_handle_0
;
21626 TALLOC_CTX
*_mem_save_type_0
;
21627 TALLOC_CTX
*_mem_save_data_0
;
21628 TALLOC_CTX
*_mem_save_needed_0
;
21629 if (flags
& NDR_IN
) {
21630 ZERO_STRUCT(r
->out
);
21632 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21633 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21635 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21636 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21637 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21640 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21641 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21642 return 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
));
21644 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21645 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
));
21646 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21647 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21648 ZERO_STRUCTP(r
->out
.type
);
21649 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
21650 ZERO_STRUCTP(r
->out
.data
);
21651 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21652 ZERO_STRUCTP(r
->out
.needed
);
21654 if (flags
& NDR_OUT
) {
21655 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21656 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21658 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21659 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
21660 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
21661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
21662 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21663 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
21665 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21666 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
21667 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
21668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
21669 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21670 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21672 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21673 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21674 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21676 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21678 return NDR_ERR_SUCCESS
;
21681 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
21683 if (flags
& NDR_IN
) {
21684 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
21686 if (flags
& NDR_OUT
) {
21687 if (r
->out
.data
== NULL
) {
21688 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21690 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
21691 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
21693 return NDR_ERR_SUCCESS
;
21696 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
21698 TALLOC_CTX
*_mem_save_data_0
;
21699 if (flags
& NDR_IN
) {
21700 ZERO_STRUCT(r
->out
);
21702 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
21703 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
21704 ZERO_STRUCTP(r
->out
.data
);
21706 if (flags
& NDR_OUT
) {
21707 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21708 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
21710 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
21712 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
21713 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
21714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
21716 return NDR_ERR_SUCCESS
;
21719 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
21721 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
21723 if (flags
& NDR_SET_VALUES
) {
21724 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21726 if (flags
& NDR_IN
) {
21727 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
21729 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21731 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21733 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21734 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21737 if (flags
& NDR_OUT
) {
21738 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
21740 ndr_print_ptr(ndr
, "type", r
->out
.type
);
21742 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
21744 ndr_print_ptr(ndr
, "data", r
->out
.data
);
21746 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
21747 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
21749 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21751 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21753 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21759 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
21761 if (flags
& NDR_IN
) {
21762 if (r
->in
.handle
== NULL
) {
21763 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21765 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21769 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
));
21770 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
21771 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
21774 if (flags
& NDR_OUT
) {
21775 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21777 return NDR_ERR_SUCCESS
;
21780 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
21782 if (flags
& NDR_IN
) {
21783 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
21785 if (flags
& NDR_OUT
) {
21786 if (r
->out
.data
== NULL
) {
21787 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21789 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
21790 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
21792 return NDR_ERR_SUCCESS
;
21795 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
21797 TALLOC_CTX
*_mem_save_handle_0
;
21798 if (flags
& NDR_IN
) {
21799 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21800 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21802 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21803 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21804 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21806 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21807 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21808 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21809 return 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
));
21811 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21812 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
));
21813 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
21815 struct ndr_pull
*_ndr_data
;
21816 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
21817 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
21818 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
21819 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
21821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
21823 if (flags
& NDR_OUT
) {
21824 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21826 return NDR_ERR_SUCCESS
;
21829 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
21831 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
21833 if (flags
& NDR_SET_VALUES
) {
21834 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21836 if (flags
& NDR_IN
) {
21837 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
21839 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21841 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21843 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21844 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
21845 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
21846 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
21847 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
);
21850 if (flags
& NDR_OUT
) {
21851 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
21853 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21859 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21861 if (flags
& NDR_IN
) {
21863 if (flags
& NDR_OUT
) {
21864 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21866 return NDR_ERR_SUCCESS
;
21869 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
21871 if (flags
& NDR_IN
) {
21873 if (flags
& NDR_OUT
) {
21874 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21876 return NDR_ERR_SUCCESS
;
21879 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21881 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
21883 if (flags
& NDR_SET_VALUES
) {
21884 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21886 if (flags
& NDR_IN
) {
21887 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
21891 if (flags
& NDR_OUT
) {
21892 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
21894 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21900 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
21902 if (flags
& NDR_IN
) {
21903 if (r
->in
.handle
== NULL
) {
21904 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21906 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21908 if (flags
& NDR_OUT
) {
21909 if (r
->out
.handle
== NULL
) {
21910 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21912 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21913 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21915 return NDR_ERR_SUCCESS
;
21918 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
21920 TALLOC_CTX
*_mem_save_handle_0
;
21921 if (flags
& NDR_IN
) {
21922 ZERO_STRUCT(r
->out
);
21924 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21925 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21927 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21928 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21929 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21931 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21932 *r
->out
.handle
= *r
->in
.handle
;
21934 if (flags
& NDR_OUT
) {
21935 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21936 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21938 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21939 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21940 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21942 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21944 return NDR_ERR_SUCCESS
;
21947 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
21949 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
21951 if (flags
& NDR_SET_VALUES
) {
21952 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21954 if (flags
& NDR_IN
) {
21955 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
21957 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21959 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21963 if (flags
& NDR_OUT
) {
21964 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
21966 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21968 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21970 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21976 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
21978 if (flags
& NDR_IN
) {
21979 if (r
->in
.handle
== NULL
) {
21980 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21982 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21984 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21985 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21987 if (flags
& NDR_OUT
) {
21988 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21990 return NDR_ERR_SUCCESS
;
21993 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
21995 TALLOC_CTX
*_mem_save_handle_0
;
21996 if (flags
& NDR_IN
) {
21997 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21998 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22000 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22001 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22002 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22004 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22005 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22006 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22008 if (flags
& NDR_OUT
) {
22009 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22011 return NDR_ERR_SUCCESS
;
22014 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
22016 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
22018 if (flags
& NDR_SET_VALUES
) {
22019 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22021 if (flags
& NDR_IN
) {
22022 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
22024 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22026 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22028 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22029 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22030 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22033 if (flags
& NDR_OUT
) {
22034 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
22036 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22042 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
22044 if (flags
& NDR_IN
) {
22045 if (r
->in
.handle
== NULL
) {
22046 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22048 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22052 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
));
22054 if (flags
& NDR_OUT
) {
22055 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22057 return NDR_ERR_SUCCESS
;
22060 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
22062 TALLOC_CTX
*_mem_save_handle_0
;
22063 if (flags
& NDR_IN
) {
22064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22065 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22067 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22069 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22071 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22072 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22073 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22074 return 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
));
22076 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22077 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
));
22079 if (flags
& NDR_OUT
) {
22080 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22082 return NDR_ERR_SUCCESS
;
22085 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
22087 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
22089 if (flags
& NDR_SET_VALUES
) {
22090 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22092 if (flags
& NDR_IN
) {
22093 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
22095 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22097 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22099 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22102 if (flags
& NDR_OUT
) {
22103 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
22105 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22111 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
22113 if (flags
& NDR_IN
) {
22114 if (r
->in
.handle
== NULL
) {
22115 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22117 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22121 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
));
22122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22123 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22124 if (r
->in
.buffer
) {
22125 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22129 if (flags
& NDR_OUT
) {
22130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22133 struct ndr_push
*_ndr_info
;
22134 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22135 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22136 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22137 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22140 if (r
->out
.needed
== NULL
) {
22141 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22144 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22146 return NDR_ERR_SUCCESS
;
22149 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
22151 uint32_t _ptr_buffer
;
22152 uint32_t _ptr_info
;
22153 TALLOC_CTX
*_mem_save_handle_0
;
22154 TALLOC_CTX
*_mem_save_buffer_0
;
22155 TALLOC_CTX
*_mem_save_info_0
;
22156 TALLOC_CTX
*_mem_save_needed_0
;
22157 if (flags
& NDR_IN
) {
22158 ZERO_STRUCT(r
->out
);
22160 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22161 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22163 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22164 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22165 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22167 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22168 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22169 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22170 return 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
));
22172 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22173 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
));
22174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22177 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22179 r
->in
.buffer
= NULL
;
22181 if (r
->in
.buffer
) {
22182 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22183 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22184 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22188 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22189 ZERO_STRUCTP(r
->out
.needed
);
22191 if (flags
& NDR_OUT
) {
22192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22194 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22196 r
->out
.info
= NULL
;
22199 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22200 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22202 struct ndr_pull
*_ndr_info
;
22203 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22204 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22205 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22206 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22210 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22211 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22213 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22214 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22215 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22217 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22219 return NDR_ERR_SUCCESS
;
22222 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
22224 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
22226 if (flags
& NDR_SET_VALUES
) {
22227 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22229 if (flags
& NDR_IN
) {
22230 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
22232 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22234 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22236 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22237 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22238 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22240 if (r
->in
.buffer
) {
22241 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22244 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22247 if (flags
& NDR_OUT
) {
22248 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
22250 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22253 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22254 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
22257 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22259 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22261 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22267 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
22269 if (flags
& NDR_IN
) {
22270 if (r
->in
.handle
== NULL
) {
22271 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22273 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22277 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
));
22278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22279 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22280 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22282 if (flags
& NDR_OUT
) {
22283 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22285 return NDR_ERR_SUCCESS
;
22288 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
22290 TALLOC_CTX
*_mem_save_handle_0
;
22291 if (flags
& NDR_IN
) {
22292 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22293 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22295 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22296 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22297 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22299 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22300 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22301 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22302 return 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
));
22304 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22305 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
));
22306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22307 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22308 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22310 if (flags
& NDR_OUT
) {
22311 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22313 return NDR_ERR_SUCCESS
;
22316 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
22318 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
22320 if (flags
& NDR_SET_VALUES
) {
22321 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22323 if (flags
& NDR_IN
) {
22324 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
22326 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22328 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22330 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22331 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22332 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22333 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22336 if (flags
& NDR_OUT
) {
22337 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
22339 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22345 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
22347 if (flags
& NDR_IN
) {
22348 if (r
->in
.handle
== NULL
) {
22349 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22351 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22354 if (r
->in
.buffer
) {
22355 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22359 if (flags
& NDR_OUT
) {
22360 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22362 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22364 if (r
->out
.needed
== NULL
) {
22365 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22368 if (r
->out
.count
== NULL
) {
22369 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22372 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22374 return NDR_ERR_SUCCESS
;
22377 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
22379 uint32_t _ptr_buffer
;
22380 uint32_t _ptr_info
;
22381 TALLOC_CTX
*_mem_save_handle_0
;
22382 TALLOC_CTX
*_mem_save_buffer_0
;
22383 TALLOC_CTX
*_mem_save_info_0
;
22384 TALLOC_CTX
*_mem_save_needed_0
;
22385 TALLOC_CTX
*_mem_save_count_0
;
22386 if (flags
& NDR_IN
) {
22387 ZERO_STRUCT(r
->out
);
22389 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22390 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22392 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22393 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22394 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22395 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22399 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22401 r
->in
.buffer
= NULL
;
22403 if (r
->in
.buffer
) {
22404 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22405 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22406 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22409 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22410 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22411 ZERO_STRUCTP(r
->out
.needed
);
22412 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22413 ZERO_STRUCTP(r
->out
.count
);
22415 if (flags
& NDR_OUT
) {
22416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22418 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22420 r
->out
.info
= NULL
;
22423 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22424 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22425 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22428 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22429 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22431 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22432 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22435 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22436 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22438 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22439 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22441 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22442 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22444 return NDR_ERR_SUCCESS
;
22447 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
22449 uint32_t cntr_info_0
;
22450 if (flags
& NDR_IN
) {
22451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22454 if (flags
& NDR_OUT
) {
22455 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22456 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22457 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22459 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22460 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22463 return NDR_ERR_SUCCESS
;
22466 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
22468 uint32_t cntr_info_0
;
22469 TALLOC_CTX
*_mem_save_info_0
;
22470 if (flags
& NDR_IN
) {
22471 ZERO_STRUCT(r
->out
);
22473 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22476 if (flags
& NDR_OUT
) {
22477 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22478 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22479 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22480 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22481 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22482 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22484 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22485 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22489 return NDR_ERR_SUCCESS
;
22492 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
22494 uint32_t cntr_info_2
;
22495 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
22497 if (flags
& NDR_SET_VALUES
) {
22498 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22500 if (flags
& NDR_IN
) {
22501 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
22503 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22505 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22507 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22508 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22510 if (r
->in
.buffer
) {
22511 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22514 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22517 if (flags
& NDR_OUT
) {
22518 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
22520 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22522 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22524 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22526 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22528 if (*r
->out
.info
) {
22529 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22531 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22533 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22534 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22535 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22543 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22545 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22547 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22553 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
22555 if (flags
& NDR_IN
) {
22556 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22557 if (r
->in
.servername
) {
22558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22561 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22564 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22565 if (r
->in
.buffer
) {
22566 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22570 if (flags
& NDR_OUT
) {
22571 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22573 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22575 if (r
->out
.needed
== NULL
) {
22576 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22579 if (r
->out
.count
== NULL
) {
22580 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22582 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22583 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22585 return NDR_ERR_SUCCESS
;
22588 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
22590 uint32_t _ptr_servername
;
22591 uint32_t _ptr_buffer
;
22592 uint32_t _ptr_info
;
22593 TALLOC_CTX
*_mem_save_servername_0
;
22594 TALLOC_CTX
*_mem_save_buffer_0
;
22595 TALLOC_CTX
*_mem_save_info_0
;
22596 TALLOC_CTX
*_mem_save_needed_0
;
22597 TALLOC_CTX
*_mem_save_count_0
;
22598 if (flags
& NDR_IN
) {
22599 ZERO_STRUCT(r
->out
);
22601 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22602 if (_ptr_servername
) {
22603 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22605 r
->in
.servername
= NULL
;
22607 if (r
->in
.servername
) {
22608 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22609 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22610 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22611 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22612 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22613 return 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
));
22615 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22616 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22622 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22624 r
->in
.buffer
= NULL
;
22626 if (r
->in
.buffer
) {
22627 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22628 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22629 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22633 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22634 ZERO_STRUCTP(r
->out
.needed
);
22635 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22636 ZERO_STRUCTP(r
->out
.count
);
22638 if (flags
& NDR_OUT
) {
22639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22641 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22643 r
->out
.info
= NULL
;
22646 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22647 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22648 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22652 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22654 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22655 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22658 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22659 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22661 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22662 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22665 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22667 return NDR_ERR_SUCCESS
;
22670 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
22672 uint32_t cntr_info_0
;
22673 if (flags
& NDR_IN
) {
22674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22677 if (flags
& NDR_OUT
) {
22678 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22679 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22680 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22682 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22683 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22686 return NDR_ERR_SUCCESS
;
22689 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
22691 uint32_t cntr_info_0
;
22692 TALLOC_CTX
*_mem_save_info_0
;
22693 if (flags
& NDR_IN
) {
22694 ZERO_STRUCT(r
->out
);
22696 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22699 if (flags
& NDR_OUT
) {
22700 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22701 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22702 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22703 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22704 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22705 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22707 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22708 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22712 return NDR_ERR_SUCCESS
;
22715 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
22717 uint32_t cntr_info_2
;
22718 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
22720 if (flags
& NDR_SET_VALUES
) {
22721 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22723 if (flags
& NDR_IN
) {
22724 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
22726 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22728 if (r
->in
.servername
) {
22729 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22732 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22733 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22735 if (r
->in
.buffer
) {
22736 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22739 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22742 if (flags
& NDR_OUT
) {
22743 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
22745 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22747 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22749 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22751 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22753 if (*r
->out
.info
) {
22754 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22756 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22758 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22759 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22760 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22768 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22770 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22772 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22778 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
22780 if (flags
& NDR_IN
) {
22781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22782 if (r
->in
.servername
) {
22783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22786 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22790 if (r
->in
.buffer
) {
22791 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22795 if (flags
& NDR_OUT
) {
22796 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22798 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22800 if (r
->out
.needed
== NULL
) {
22801 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22804 if (r
->out
.count
== NULL
) {
22805 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22808 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22810 return NDR_ERR_SUCCESS
;
22813 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
22815 uint32_t _ptr_servername
;
22816 uint32_t _ptr_buffer
;
22817 uint32_t _ptr_info
;
22818 TALLOC_CTX
*_mem_save_servername_0
;
22819 TALLOC_CTX
*_mem_save_buffer_0
;
22820 TALLOC_CTX
*_mem_save_info_0
;
22821 TALLOC_CTX
*_mem_save_needed_0
;
22822 TALLOC_CTX
*_mem_save_count_0
;
22823 if (flags
& NDR_IN
) {
22824 ZERO_STRUCT(r
->out
);
22826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22827 if (_ptr_servername
) {
22828 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22830 r
->in
.servername
= NULL
;
22832 if (r
->in
.servername
) {
22833 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22836 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22837 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22838 return 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
));
22840 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22841 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22844 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22847 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22849 r
->in
.buffer
= NULL
;
22851 if (r
->in
.buffer
) {
22852 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22854 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22858 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22859 ZERO_STRUCTP(r
->out
.needed
);
22860 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22861 ZERO_STRUCTP(r
->out
.count
);
22863 if (flags
& NDR_OUT
) {
22864 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22866 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22868 r
->out
.info
= NULL
;
22871 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22872 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22873 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22877 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22879 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22880 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22883 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22884 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22886 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22887 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22888 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22890 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22892 return NDR_ERR_SUCCESS
;
22895 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
22897 uint32_t cntr_info_0
;
22898 if (flags
& NDR_IN
) {
22899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22902 if (flags
& NDR_OUT
) {
22903 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22904 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22905 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22907 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22908 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22911 return NDR_ERR_SUCCESS
;
22914 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
22916 uint32_t cntr_info_0
;
22917 TALLOC_CTX
*_mem_save_info_0
;
22918 if (flags
& NDR_IN
) {
22919 ZERO_STRUCT(r
->out
);
22921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22922 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22924 if (flags
& NDR_OUT
) {
22925 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22926 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22927 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22928 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22929 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22930 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22932 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22933 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22937 return NDR_ERR_SUCCESS
;
22940 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
22942 uint32_t cntr_info_2
;
22943 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
22945 if (flags
& NDR_SET_VALUES
) {
22946 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22948 if (flags
& NDR_IN
) {
22949 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
22951 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22953 if (r
->in
.servername
) {
22954 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22957 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22958 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22960 if (r
->in
.buffer
) {
22961 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22964 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22967 if (flags
& NDR_OUT
) {
22968 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
22970 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22972 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22974 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22976 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22978 if (*r
->out
.info
) {
22979 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22981 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22983 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22984 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22985 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22993 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22995 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22997 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23003 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
23005 if (flags
& NDR_IN
) {
23006 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
23007 if (r
->in
.server_name
) {
23008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23011 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
));
23013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
23014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
23015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
23017 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
));
23019 if (flags
& NDR_OUT
) {
23020 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23022 return NDR_ERR_SUCCESS
;
23025 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
23027 uint32_t _ptr_server_name
;
23028 TALLOC_CTX
*_mem_save_server_name_0
;
23029 if (flags
& NDR_IN
) {
23030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
23031 if (_ptr_server_name
) {
23032 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
23034 r
->in
.server_name
= NULL
;
23036 if (r
->in
.server_name
) {
23037 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23038 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
23039 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
23040 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
23041 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
23042 return 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
));
23044 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
23045 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
));
23046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
23048 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
23049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
23050 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
23051 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
23052 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.monitor_name
), ndr_get_array_length(ndr
, &r
->in
.monitor_name
));
23054 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
23055 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
));
23057 if (flags
& NDR_OUT
) {
23058 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23060 return NDR_ERR_SUCCESS
;
23063 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
23065 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
23067 if (flags
& NDR_SET_VALUES
) {
23068 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23070 if (flags
& NDR_IN
) {
23071 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
23073 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
23075 if (r
->in
.server_name
) {
23076 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
23079 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
23080 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
23083 if (flags
& NDR_OUT
) {
23084 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
23086 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23092 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
23094 if (flags
& NDR_IN
) {
23096 if (flags
& NDR_OUT
) {
23097 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23099 return NDR_ERR_SUCCESS
;
23102 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
23104 if (flags
& NDR_IN
) {
23106 if (flags
& NDR_OUT
) {
23107 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23109 return NDR_ERR_SUCCESS
;
23112 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
23114 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
23116 if (flags
& NDR_SET_VALUES
) {
23117 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23119 if (flags
& NDR_IN
) {
23120 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
23124 if (flags
& NDR_OUT
) {
23125 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
23127 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23133 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
23135 if (flags
& NDR_IN
) {
23137 if (flags
& NDR_OUT
) {
23138 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23140 return NDR_ERR_SUCCESS
;
23143 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
23145 if (flags
& NDR_IN
) {
23147 if (flags
& NDR_OUT
) {
23148 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23150 return NDR_ERR_SUCCESS
;
23153 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
23155 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
23157 if (flags
& NDR_SET_VALUES
) {
23158 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23160 if (flags
& NDR_IN
) {
23161 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
23165 if (flags
& NDR_OUT
) {
23166 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
23168 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23174 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23176 if (flags
& NDR_IN
) {
23178 if (flags
& NDR_OUT
) {
23179 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23181 return NDR_ERR_SUCCESS
;
23184 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
23186 if (flags
& NDR_IN
) {
23188 if (flags
& NDR_OUT
) {
23189 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23191 return NDR_ERR_SUCCESS
;
23194 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23196 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
23198 if (flags
& NDR_SET_VALUES
) {
23199 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23201 if (flags
& NDR_IN
) {
23202 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
23206 if (flags
& NDR_OUT
) {
23207 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
23209 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23215 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23217 if (flags
& NDR_IN
) {
23219 if (flags
& NDR_OUT
) {
23220 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23222 return NDR_ERR_SUCCESS
;
23225 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23227 if (flags
& NDR_IN
) {
23229 if (flags
& NDR_OUT
) {
23230 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23232 return NDR_ERR_SUCCESS
;
23235 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23237 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
23239 if (flags
& NDR_SET_VALUES
) {
23240 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23242 if (flags
& NDR_IN
) {
23243 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23247 if (flags
& NDR_OUT
) {
23248 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23250 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23256 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23258 if (flags
& NDR_IN
) {
23260 if (flags
& NDR_OUT
) {
23261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23263 return NDR_ERR_SUCCESS
;
23266 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
23268 if (flags
& NDR_IN
) {
23270 if (flags
& NDR_OUT
) {
23271 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23273 return NDR_ERR_SUCCESS
;
23276 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23278 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
23280 if (flags
& NDR_SET_VALUES
) {
23281 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23283 if (flags
& NDR_IN
) {
23284 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
23288 if (flags
& NDR_OUT
) {
23289 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
23291 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23297 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23299 if (flags
& NDR_IN
) {
23301 if (flags
& NDR_OUT
) {
23302 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23304 return NDR_ERR_SUCCESS
;
23307 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
23309 if (flags
& NDR_IN
) {
23311 if (flags
& NDR_OUT
) {
23312 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23314 return NDR_ERR_SUCCESS
;
23317 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23319 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
23321 if (flags
& NDR_SET_VALUES
) {
23322 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23324 if (flags
& NDR_IN
) {
23325 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
23329 if (flags
& NDR_OUT
) {
23330 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
23332 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23338 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23340 if (flags
& NDR_IN
) {
23342 if (flags
& NDR_OUT
) {
23343 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23345 return NDR_ERR_SUCCESS
;
23348 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
23350 if (flags
& NDR_IN
) {
23352 if (flags
& NDR_OUT
) {
23353 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23355 return NDR_ERR_SUCCESS
;
23358 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23360 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
23362 if (flags
& NDR_SET_VALUES
) {
23363 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23365 if (flags
& NDR_IN
) {
23366 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
23370 if (flags
& NDR_OUT
) {
23371 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
23373 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23379 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23381 if (flags
& NDR_IN
) {
23383 if (flags
& NDR_OUT
) {
23384 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23386 return NDR_ERR_SUCCESS
;
23389 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
23391 if (flags
& NDR_IN
) {
23393 if (flags
& NDR_OUT
) {
23394 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23396 return NDR_ERR_SUCCESS
;
23399 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23401 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
23403 if (flags
& NDR_SET_VALUES
) {
23404 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23406 if (flags
& NDR_IN
) {
23407 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
23411 if (flags
& NDR_OUT
) {
23412 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
23414 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23420 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
23422 if (flags
& NDR_IN
) {
23424 if (flags
& NDR_OUT
) {
23425 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23427 return NDR_ERR_SUCCESS
;
23430 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
23432 if (flags
& NDR_IN
) {
23434 if (flags
& NDR_OUT
) {
23435 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23437 return NDR_ERR_SUCCESS
;
23440 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
23442 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
23444 if (flags
& NDR_SET_VALUES
) {
23445 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23447 if (flags
& NDR_IN
) {
23448 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
23452 if (flags
& NDR_OUT
) {
23453 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
23455 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23461 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23463 if (flags
& NDR_IN
) {
23465 if (flags
& NDR_OUT
) {
23466 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23468 return NDR_ERR_SUCCESS
;
23471 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
23473 if (flags
& NDR_IN
) {
23475 if (flags
& NDR_OUT
) {
23476 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23478 return NDR_ERR_SUCCESS
;
23481 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23483 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
23485 if (flags
& NDR_SET_VALUES
) {
23486 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23488 if (flags
& NDR_IN
) {
23489 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
23493 if (flags
& NDR_OUT
) {
23494 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
23496 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23502 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23504 if (flags
& NDR_IN
) {
23506 if (flags
& NDR_OUT
) {
23507 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23509 return NDR_ERR_SUCCESS
;
23512 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
23514 if (flags
& NDR_IN
) {
23516 if (flags
& NDR_OUT
) {
23517 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23519 return NDR_ERR_SUCCESS
;
23522 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23524 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
23526 if (flags
& NDR_SET_VALUES
) {
23527 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23529 if (flags
& NDR_IN
) {
23530 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
23534 if (flags
& NDR_OUT
) {
23535 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
23537 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23543 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23545 if (flags
& NDR_IN
) {
23547 if (flags
& NDR_OUT
) {
23548 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23550 return NDR_ERR_SUCCESS
;
23553 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
23555 if (flags
& NDR_IN
) {
23557 if (flags
& NDR_OUT
) {
23558 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23560 return NDR_ERR_SUCCESS
;
23563 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23565 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
23567 if (flags
& NDR_SET_VALUES
) {
23568 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23570 if (flags
& NDR_IN
) {
23571 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
23575 if (flags
& NDR_OUT
) {
23576 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
23578 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23584 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23586 if (flags
& NDR_IN
) {
23588 if (flags
& NDR_OUT
) {
23589 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23591 return NDR_ERR_SUCCESS
;
23594 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
23596 if (flags
& NDR_IN
) {
23598 if (flags
& NDR_OUT
) {
23599 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23601 return NDR_ERR_SUCCESS
;
23604 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23606 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
23608 if (flags
& NDR_SET_VALUES
) {
23609 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23611 if (flags
& NDR_IN
) {
23612 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
23616 if (flags
& NDR_OUT
) {
23617 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
23619 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23625 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
23627 if (flags
& NDR_IN
) {
23628 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23629 if (r
->in
.servername
) {
23630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23633 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23635 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
23636 if (r
->in
.print_processor_name
) {
23637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
23638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
23640 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
));
23642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23643 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23644 if (r
->in
.buffer
) {
23645 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23649 if (flags
& NDR_OUT
) {
23650 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23652 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23654 if (r
->out
.needed
== NULL
) {
23655 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23658 if (r
->out
.count
== NULL
) {
23659 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23662 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23664 return NDR_ERR_SUCCESS
;
23667 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
23669 uint32_t _ptr_servername
;
23670 uint32_t _ptr_print_processor_name
;
23671 uint32_t _ptr_buffer
;
23672 uint32_t _ptr_info
;
23673 TALLOC_CTX
*_mem_save_servername_0
;
23674 TALLOC_CTX
*_mem_save_print_processor_name_0
;
23675 TALLOC_CTX
*_mem_save_buffer_0
;
23676 TALLOC_CTX
*_mem_save_info_0
;
23677 TALLOC_CTX
*_mem_save_needed_0
;
23678 TALLOC_CTX
*_mem_save_count_0
;
23679 if (flags
& NDR_IN
) {
23680 ZERO_STRUCT(r
->out
);
23682 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23683 if (_ptr_servername
) {
23684 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23686 r
->in
.servername
= NULL
;
23688 if (r
->in
.servername
) {
23689 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23690 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23691 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23692 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23693 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23694 return 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
));
23696 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23697 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23700 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
23701 if (_ptr_print_processor_name
) {
23702 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
23704 r
->in
.print_processor_name
= NULL
;
23706 if (r
->in
.print_processor_name
) {
23707 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23708 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
23709 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
23710 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
23711 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
23712 return 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
));
23714 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
23715 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
));
23716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
23718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23721 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23723 r
->in
.buffer
= NULL
;
23725 if (r
->in
.buffer
) {
23726 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23727 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23728 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23732 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23733 ZERO_STRUCTP(r
->out
.needed
);
23734 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23735 ZERO_STRUCTP(r
->out
.count
);
23737 if (flags
& NDR_OUT
) {
23738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23740 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23742 r
->out
.info
= NULL
;
23745 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23746 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23747 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23751 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23753 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23754 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23757 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23758 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23760 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23761 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23764 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23766 return NDR_ERR_SUCCESS
;
23769 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
23771 uint32_t cntr_info_0
;
23772 if (flags
& NDR_IN
) {
23773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23776 if (flags
& NDR_OUT
) {
23777 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23778 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23779 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23781 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23782 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23785 return NDR_ERR_SUCCESS
;
23788 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
23790 uint32_t cntr_info_0
;
23791 TALLOC_CTX
*_mem_save_info_0
;
23792 if (flags
& NDR_IN
) {
23793 ZERO_STRUCT(r
->out
);
23795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23796 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23798 if (flags
& NDR_OUT
) {
23799 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23800 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23801 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23802 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23803 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23804 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23806 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23807 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23809 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23811 return NDR_ERR_SUCCESS
;
23814 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
23816 uint32_t cntr_info_2
;
23817 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
23819 if (flags
& NDR_SET_VALUES
) {
23820 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23822 if (flags
& NDR_IN
) {
23823 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
23825 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23827 if (r
->in
.servername
) {
23828 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23831 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
23833 if (r
->in
.print_processor_name
) {
23834 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
23837 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23838 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23840 if (r
->in
.buffer
) {
23841 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23844 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23847 if (flags
& NDR_OUT
) {
23848 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
23850 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23852 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23854 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23856 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23858 if (*r
->out
.info
) {
23859 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23861 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23863 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23864 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23865 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23873 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23875 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23877 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23883 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
23885 if (flags
& NDR_IN
) {
23886 if (r
->in
.handle
== NULL
) {
23887 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23889 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23890 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
23891 if (r
->in
.data_type
) {
23892 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23895 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
));
23897 if (r
->in
.devmode_ctr
== NULL
) {
23898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23900 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23902 if (flags
& NDR_OUT
) {
23903 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23905 return NDR_ERR_SUCCESS
;
23908 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
23910 uint32_t _ptr_data_type
;
23911 TALLOC_CTX
*_mem_save_handle_0
;
23912 TALLOC_CTX
*_mem_save_data_type_0
;
23913 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
23914 if (flags
& NDR_IN
) {
23915 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23916 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23918 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23919 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23920 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
23923 if (_ptr_data_type
) {
23924 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
23926 r
->in
.data_type
= NULL
;
23928 if (r
->in
.data_type
) {
23929 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23930 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
23931 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
23932 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
23933 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
23934 return 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
));
23936 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
23937 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
));
23938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
23940 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23941 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
23943 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23944 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23945 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23948 if (flags
& NDR_OUT
) {
23949 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23951 return NDR_ERR_SUCCESS
;
23954 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
23956 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
23958 if (flags
& NDR_SET_VALUES
) {
23959 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23961 if (flags
& NDR_IN
) {
23962 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
23964 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23966 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23968 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
23970 if (r
->in
.data_type
) {
23971 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
23974 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23976 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23980 if (flags
& NDR_OUT
) {
23981 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
23983 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23989 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
23991 if (flags
& NDR_IN
) {
23992 if (r
->in
.handle
== NULL
) {
23993 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23995 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23996 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
23997 if (r
->in
.architecture
) {
23998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
23999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
24001 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24005 if (r
->in
.buffer
) {
24006 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
24010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
24012 if (flags
& NDR_OUT
) {
24013 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24016 struct ndr_push
*_ndr_info
;
24017 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24018 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24019 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24020 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24023 if (r
->out
.needed
== NULL
) {
24024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24027 if (r
->out
.server_major_version
== NULL
) {
24028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
24031 if (r
->out
.server_minor_version
== NULL
) {
24032 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
24035 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24037 return NDR_ERR_SUCCESS
;
24040 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
24042 uint32_t _ptr_architecture
;
24043 uint32_t _ptr_buffer
;
24044 uint32_t _ptr_info
;
24045 TALLOC_CTX
*_mem_save_handle_0
;
24046 TALLOC_CTX
*_mem_save_architecture_0
;
24047 TALLOC_CTX
*_mem_save_buffer_0
;
24048 TALLOC_CTX
*_mem_save_info_0
;
24049 TALLOC_CTX
*_mem_save_needed_0
;
24050 TALLOC_CTX
*_mem_save_server_major_version_0
;
24051 TALLOC_CTX
*_mem_save_server_minor_version_0
;
24052 if (flags
& NDR_IN
) {
24053 ZERO_STRUCT(r
->out
);
24055 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24056 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24058 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24060 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24062 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
24063 if (_ptr_architecture
) {
24064 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
24066 r
->in
.architecture
= NULL
;
24068 if (r
->in
.architecture
) {
24069 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24070 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
24071 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
24072 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
24073 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
24074 return 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
));
24076 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
24077 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
24078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
24080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24083 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24085 r
->in
.buffer
= NULL
;
24087 if (r
->in
.buffer
) {
24088 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24090 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
24095 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
24096 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24097 ZERO_STRUCTP(r
->out
.needed
);
24098 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24099 ZERO_STRUCTP(r
->out
.server_major_version
);
24100 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24101 ZERO_STRUCTP(r
->out
.server_minor_version
);
24103 if (flags
& NDR_OUT
) {
24104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24106 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24108 r
->out
.info
= NULL
;
24111 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24112 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24114 struct ndr_pull
*_ndr_info
;
24115 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24116 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24117 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24118 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24123 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24125 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24126 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24129 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24130 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24132 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24133 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
24134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
24135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24136 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24137 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24139 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24140 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
24141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
24142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24145 return NDR_ERR_SUCCESS
;
24148 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
24150 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
24152 if (flags
& NDR_SET_VALUES
) {
24153 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24155 if (flags
& NDR_IN
) {
24156 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
24158 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24160 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24162 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
24164 if (r
->in
.architecture
) {
24165 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
24168 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24169 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24171 if (r
->in
.buffer
) {
24172 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24175 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24176 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
24177 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
24180 if (flags
& NDR_OUT
) {
24181 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
24183 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24186 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24187 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
24190 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24192 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24194 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
24196 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
24198 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
24200 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
24202 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24208 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24210 if (flags
& NDR_IN
) {
24212 if (flags
& NDR_OUT
) {
24213 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24215 return NDR_ERR_SUCCESS
;
24218 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
24220 if (flags
& NDR_IN
) {
24222 if (flags
& NDR_OUT
) {
24223 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24225 return NDR_ERR_SUCCESS
;
24228 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24230 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
24232 if (flags
& NDR_SET_VALUES
) {
24233 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24235 if (flags
& NDR_IN
) {
24236 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
24240 if (flags
& NDR_OUT
) {
24241 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
24243 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24249 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24251 if (flags
& NDR_IN
) {
24253 if (flags
& NDR_OUT
) {
24254 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24256 return NDR_ERR_SUCCESS
;
24259 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
24261 if (flags
& NDR_IN
) {
24263 if (flags
& NDR_OUT
) {
24264 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24266 return NDR_ERR_SUCCESS
;
24269 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24271 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
24273 if (flags
& NDR_SET_VALUES
) {
24274 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24276 if (flags
& NDR_IN
) {
24277 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
24281 if (flags
& NDR_OUT
) {
24282 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
24284 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24290 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24292 if (flags
& NDR_IN
) {
24293 if (r
->in
.handle
== NULL
) {
24294 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24296 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24298 if (flags
& NDR_OUT
) {
24299 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24301 return NDR_ERR_SUCCESS
;
24304 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
24306 TALLOC_CTX
*_mem_save_handle_0
;
24307 if (flags
& NDR_IN
) {
24308 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24309 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24311 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24312 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24313 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24316 if (flags
& NDR_OUT
) {
24317 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24319 return NDR_ERR_SUCCESS
;
24322 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24324 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
24326 if (flags
& NDR_SET_VALUES
) {
24327 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24329 if (flags
& NDR_IN
) {
24330 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
24332 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24334 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24338 if (flags
& NDR_OUT
) {
24339 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
24341 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24347 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24349 if (flags
& NDR_IN
) {
24351 if (flags
& NDR_OUT
) {
24352 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24354 return NDR_ERR_SUCCESS
;
24357 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24359 if (flags
& NDR_IN
) {
24361 if (flags
& NDR_OUT
) {
24362 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24364 return NDR_ERR_SUCCESS
;
24367 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24369 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24371 if (flags
& NDR_SET_VALUES
) {
24372 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24374 if (flags
& NDR_IN
) {
24375 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24379 if (flags
& NDR_OUT
) {
24380 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24382 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24388 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24390 if (flags
& NDR_IN
) {
24391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24394 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
));
24395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24396 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24398 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24399 if (r
->in
.buffer
) {
24400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24401 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24404 if (flags
& NDR_OUT
) {
24405 if (r
->out
.handle
== NULL
) {
24406 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24408 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24409 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24411 return NDR_ERR_SUCCESS
;
24414 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
24416 uint32_t _ptr_buffer
;
24417 TALLOC_CTX
*_mem_save_buffer_0
;
24418 TALLOC_CTX
*_mem_save_handle_0
;
24419 if (flags
& NDR_IN
) {
24420 ZERO_STRUCT(r
->out
);
24422 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24423 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24424 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24425 return 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
));
24427 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24428 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
));
24429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24430 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24432 if (r
->in
.bufsize
> 512) {
24433 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24437 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24439 r
->in
.buffer
= NULL
;
24441 if (r
->in
.buffer
) {
24442 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24443 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24444 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24445 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24446 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24449 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24450 ZERO_STRUCTP(r
->out
.handle
);
24451 if (r
->in
.buffer
) {
24452 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24455 if (flags
& NDR_OUT
) {
24456 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24457 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24459 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24460 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24461 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24463 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24465 return NDR_ERR_SUCCESS
;
24468 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24470 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
24472 if (flags
& NDR_SET_VALUES
) {
24473 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24475 if (flags
& NDR_IN
) {
24476 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
24478 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24479 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24480 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24481 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24482 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24484 if (r
->in
.buffer
) {
24485 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24490 if (flags
& NDR_OUT
) {
24491 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
24493 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24495 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24497 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24503 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24505 if (flags
& NDR_IN
) {
24506 if (r
->in
.handle
== NULL
) {
24507 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24509 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24510 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24513 if (r
->in
.buffer
) {
24514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24515 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24518 if (flags
& NDR_OUT
) {
24519 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24521 return NDR_ERR_SUCCESS
;
24524 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
24526 uint32_t _ptr_buffer
;
24527 TALLOC_CTX
*_mem_save_handle_0
;
24528 TALLOC_CTX
*_mem_save_buffer_0
;
24529 if (flags
& NDR_IN
) {
24530 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24531 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24533 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24534 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24535 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24537 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24539 if (r
->in
.bufsize
> 512) {
24540 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24542 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24544 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24546 r
->in
.buffer
= NULL
;
24548 if (r
->in
.buffer
) {
24549 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24550 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24552 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24553 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24556 if (r
->in
.buffer
) {
24557 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24560 if (flags
& NDR_OUT
) {
24561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24563 return NDR_ERR_SUCCESS
;
24566 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24568 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
24570 if (flags
& NDR_SET_VALUES
) {
24571 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24573 if (flags
& NDR_IN
) {
24574 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
24576 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24578 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24580 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24581 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24582 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24584 if (r
->in
.buffer
) {
24585 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24590 if (flags
& NDR_OUT
) {
24591 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
24593 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24599 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24601 if (flags
& NDR_IN
) {
24602 if (r
->in
.handle
== NULL
) {
24603 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24605 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24607 if (flags
& NDR_OUT
) {
24608 if (r
->out
.handle
== NULL
) {
24609 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24611 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24612 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24614 return NDR_ERR_SUCCESS
;
24617 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
24619 TALLOC_CTX
*_mem_save_handle_0
;
24620 if (flags
& NDR_IN
) {
24621 ZERO_STRUCT(r
->out
);
24623 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24624 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24626 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24627 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24628 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24630 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24631 *r
->out
.handle
= *r
->in
.handle
;
24633 if (flags
& NDR_OUT
) {
24634 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24635 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24637 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24639 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24641 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24643 return NDR_ERR_SUCCESS
;
24646 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24648 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
24650 if (flags
& NDR_SET_VALUES
) {
24651 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24653 if (flags
& NDR_IN
) {
24654 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
24656 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24658 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24662 if (flags
& NDR_OUT
) {
24663 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
24665 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24667 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24669 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24675 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
24677 if (flags
& NDR_IN
) {
24679 if (flags
& NDR_OUT
) {
24680 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24682 return NDR_ERR_SUCCESS
;
24685 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
24687 if (flags
& NDR_IN
) {
24689 if (flags
& NDR_OUT
) {
24690 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24692 return NDR_ERR_SUCCESS
;
24695 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
24697 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
24699 if (flags
& NDR_SET_VALUES
) {
24700 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24702 if (flags
& NDR_IN
) {
24703 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
24707 if (flags
& NDR_OUT
) {
24708 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
24710 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24716 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24718 if (flags
& NDR_IN
) {
24720 if (flags
& NDR_OUT
) {
24721 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24723 return NDR_ERR_SUCCESS
;
24726 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24728 if (flags
& NDR_IN
) {
24730 if (flags
& NDR_OUT
) {
24731 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24733 return NDR_ERR_SUCCESS
;
24736 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24738 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
24740 if (flags
& NDR_SET_VALUES
) {
24741 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24743 if (flags
& NDR_IN
) {
24744 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24748 if (flags
& NDR_OUT
) {
24749 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24751 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24757 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
24759 if (flags
& NDR_IN
) {
24761 if (flags
& NDR_OUT
) {
24762 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24764 return NDR_ERR_SUCCESS
;
24767 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
24769 if (flags
& NDR_IN
) {
24771 if (flags
& NDR_OUT
) {
24772 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24774 return NDR_ERR_SUCCESS
;
24777 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
24779 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
24781 if (flags
& NDR_SET_VALUES
) {
24782 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24784 if (flags
& NDR_IN
) {
24785 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
24789 if (flags
& NDR_OUT
) {
24790 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
24792 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24798 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24800 if (flags
& NDR_IN
) {
24802 if (flags
& NDR_OUT
) {
24803 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24805 return NDR_ERR_SUCCESS
;
24808 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
24810 if (flags
& NDR_IN
) {
24812 if (flags
& NDR_OUT
) {
24813 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24815 return NDR_ERR_SUCCESS
;
24818 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24820 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
24822 if (flags
& NDR_SET_VALUES
) {
24823 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24825 if (flags
& NDR_IN
) {
24826 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
24830 if (flags
& NDR_OUT
) {
24831 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
24833 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24839 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24841 if (flags
& NDR_IN
) {
24842 if (r
->in
.handle
== NULL
) {
24843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24845 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24846 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
24848 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
24849 if (r
->in
.local_machine
) {
24850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24853 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
));
24855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
24857 if (r
->in
.notify_options
) {
24858 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24861 if (flags
& NDR_OUT
) {
24862 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24864 return NDR_ERR_SUCCESS
;
24867 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24869 uint32_t _ptr_local_machine
;
24870 uint32_t _ptr_notify_options
;
24871 TALLOC_CTX
*_mem_save_handle_0
;
24872 TALLOC_CTX
*_mem_save_local_machine_0
;
24873 TALLOC_CTX
*_mem_save_notify_options_0
;
24874 if (flags
& NDR_IN
) {
24875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24876 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24878 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24880 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24882 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
24884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
24885 if (_ptr_local_machine
) {
24886 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
24888 r
->in
.local_machine
= NULL
;
24890 if (r
->in
.local_machine
) {
24891 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
24893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
24894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
24895 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
24896 return 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
));
24898 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
24899 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
));
24900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
24902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24903 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
24904 if (_ptr_notify_options
) {
24905 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
24907 r
->in
.notify_options
= NULL
;
24909 if (r
->in
.notify_options
) {
24910 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24911 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
24912 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
24916 if (flags
& NDR_OUT
) {
24917 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24919 return NDR_ERR_SUCCESS
;
24922 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24924 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24926 if (flags
& NDR_SET_VALUES
) {
24927 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24929 if (flags
& NDR_IN
) {
24930 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24932 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24934 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24936 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24937 ndr_print_uint32(ndr
, "options", r
->in
.options
);
24938 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
24940 if (r
->in
.local_machine
) {
24941 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
24944 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24945 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
24947 if (r
->in
.notify_options
) {
24948 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
24953 if (flags
& NDR_OUT
) {
24954 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24956 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24962 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
24964 if (flags
& NDR_IN
) {
24965 if (r
->in
.handle
== NULL
) {
24966 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24968 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
24970 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
24972 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
24973 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24975 if (flags
& NDR_OUT
) {
24976 if (r
->out
.reply_result
== NULL
) {
24977 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24979 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
24980 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24982 return NDR_ERR_SUCCESS
;
24985 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
24987 TALLOC_CTX
*_mem_save_handle_0
;
24988 TALLOC_CTX
*_mem_save_reply_result_0
;
24989 if (flags
& NDR_IN
) {
24990 ZERO_STRUCT(r
->out
);
24992 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24993 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24995 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24996 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24997 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
25000 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
25002 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
25003 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
25004 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
25005 ZERO_STRUCTP(r
->out
.reply_result
);
25007 if (flags
& NDR_OUT
) {
25008 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25009 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
25011 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25012 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
25013 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
25014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
25015 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25017 return NDR_ERR_SUCCESS
;
25020 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
25022 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
25024 if (flags
& NDR_SET_VALUES
) {
25025 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25027 if (flags
& NDR_IN
) {
25028 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
25030 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25032 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25034 ndr_print_uint32(ndr
, "color", r
->in
.color
);
25035 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
25036 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
25037 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
25038 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
25041 if (flags
& NDR_OUT
) {
25042 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
25044 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
25046 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
25048 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25054 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25056 if (flags
& NDR_IN
) {
25057 if (r
->in
.handle
== NULL
) {
25058 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25060 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
25062 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
25063 if (r
->in
.options
) {
25064 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
25067 if (flags
& NDR_OUT
) {
25068 if (r
->out
.info
== NULL
) {
25069 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25071 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
25072 if (*r
->out
.info
) {
25073 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
25075 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25077 return NDR_ERR_SUCCESS
;
25080 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25082 uint32_t _ptr_options
;
25083 uint32_t _ptr_info
;
25084 TALLOC_CTX
*_mem_save_handle_0
;
25085 TALLOC_CTX
*_mem_save_options_0
;
25086 TALLOC_CTX
*_mem_save_info_0
;
25087 TALLOC_CTX
*_mem_save_info_1
;
25088 if (flags
& NDR_IN
) {
25089 ZERO_STRUCT(r
->out
);
25091 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25092 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25094 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25096 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25098 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
25099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
25100 if (_ptr_options
) {
25101 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
25103 r
->in
.options
= NULL
;
25105 if (r
->in
.options
) {
25106 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25107 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
25108 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
25109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
25111 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25112 ZERO_STRUCTP(r
->out
.info
);
25114 if (flags
& NDR_OUT
) {
25115 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25116 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25118 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25119 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
25120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25122 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
25124 *r
->out
.info
= NULL
;
25126 if (*r
->out
.info
) {
25127 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
25128 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
25129 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
25130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
25132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
25133 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25135 return NDR_ERR_SUCCESS
;
25138 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25140 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
25142 if (flags
& NDR_SET_VALUES
) {
25143 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25145 if (flags
& NDR_IN
) {
25146 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25148 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25150 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25152 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
25153 ndr_print_ptr(ndr
, "options", r
->in
.options
);
25155 if (r
->in
.options
) {
25156 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
25161 if (flags
& NDR_OUT
) {
25162 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25164 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25166 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25168 if (*r
->out
.info
) {
25169 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
25173 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25179 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
25181 if (flags
& NDR_IN
) {
25183 if (flags
& NDR_OUT
) {
25184 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25186 return NDR_ERR_SUCCESS
;
25189 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
25191 if (flags
& NDR_IN
) {
25193 if (flags
& NDR_OUT
) {
25194 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25196 return NDR_ERR_SUCCESS
;
25199 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
25201 ndr_print_struct(ndr
, name
, "spoolss_44");
25203 if (flags
& NDR_SET_VALUES
) {
25204 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25206 if (flags
& NDR_IN
) {
25207 ndr_print_struct(ndr
, "in", "spoolss_44");
25211 if (flags
& NDR_OUT
) {
25212 ndr_print_struct(ndr
, "out", "spoolss_44");
25214 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25220 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25222 if (flags
& NDR_IN
) {
25223 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
25224 if (r
->in
.printername
) {
25225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25228 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
25231 if (r
->in
.datatype
) {
25232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25235 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25237 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25238 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
25239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25240 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25241 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25243 if (flags
& NDR_OUT
) {
25244 if (r
->out
.handle
== NULL
) {
25245 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25247 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25248 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25250 return NDR_ERR_SUCCESS
;
25253 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
25255 uint32_t _ptr_printername
;
25256 uint32_t _ptr_datatype
;
25257 TALLOC_CTX
*_mem_save_printername_0
;
25258 TALLOC_CTX
*_mem_save_datatype_0
;
25259 TALLOC_CTX
*_mem_save_handle_0
;
25260 if (flags
& NDR_IN
) {
25261 ZERO_STRUCT(r
->out
);
25263 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
25264 if (_ptr_printername
) {
25265 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
25267 r
->in
.printername
= NULL
;
25269 if (r
->in
.printername
) {
25270 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25271 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
25272 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
25273 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
25274 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
25275 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.printername
), ndr_get_array_length(ndr
, &r
->in
.printername
));
25277 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
25278 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
25279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
25281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
25282 if (_ptr_datatype
) {
25283 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
25285 r
->in
.datatype
= NULL
;
25287 if (r
->in
.datatype
) {
25288 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25289 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
25290 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
25291 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
25292 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
25293 return 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
));
25295 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
25296 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
25297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
25299 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25300 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
25301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25302 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25303 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25304 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25305 ZERO_STRUCTP(r
->out
.handle
);
25307 if (flags
& NDR_OUT
) {
25308 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25309 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25311 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25312 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25313 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25315 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25317 return NDR_ERR_SUCCESS
;
25320 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25322 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
25324 if (flags
& NDR_SET_VALUES
) {
25325 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25327 if (flags
& NDR_IN
) {
25328 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
25330 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
25332 if (r
->in
.printername
) {
25333 ndr_print_string(ndr
, "printername", r
->in
.printername
);
25336 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
25338 if (r
->in
.datatype
) {
25339 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
25342 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
25343 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
25344 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25345 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
25346 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
25349 if (flags
& NDR_OUT
) {
25350 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
25352 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25354 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25356 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25362 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25364 if (flags
& NDR_IN
) {
25365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
25366 if (r
->in
.server
) {
25367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25370 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25372 if (r
->in
.info_ctr
== NULL
) {
25373 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25375 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25376 if (r
->in
.devmode_ctr
== NULL
) {
25377 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25379 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25380 if (r
->in
.secdesc_ctr
== NULL
) {
25381 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25383 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25384 if (r
->in
.userlevel_ctr
== NULL
) {
25385 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25387 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25389 if (flags
& NDR_OUT
) {
25390 if (r
->out
.handle
== NULL
) {
25391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25393 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25394 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25396 return NDR_ERR_SUCCESS
;
25399 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
25401 uint32_t _ptr_server
;
25402 TALLOC_CTX
*_mem_save_server_0
;
25403 TALLOC_CTX
*_mem_save_info_ctr_0
;
25404 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25405 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
25406 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
25407 TALLOC_CTX
*_mem_save_handle_0
;
25408 if (flags
& NDR_IN
) {
25409 ZERO_STRUCT(r
->out
);
25411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
25413 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
25415 r
->in
.server
= NULL
;
25417 if (r
->in
.server
) {
25418 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25419 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
25420 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
25421 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
25422 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
25423 return 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
));
25425 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
25426 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
25427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
25429 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25430 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
25432 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25433 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25434 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25436 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25437 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25439 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25440 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25441 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25443 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25444 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
25446 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25447 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25448 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25450 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25451 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
25453 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25454 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25455 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25456 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25457 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25458 ZERO_STRUCTP(r
->out
.handle
);
25460 if (flags
& NDR_OUT
) {
25461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25462 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25464 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25465 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25466 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25468 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25470 return NDR_ERR_SUCCESS
;
25473 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25475 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
25477 if (flags
& NDR_SET_VALUES
) {
25478 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25480 if (flags
& NDR_IN
) {
25481 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
25483 ndr_print_ptr(ndr
, "server", r
->in
.server
);
25485 if (r
->in
.server
) {
25486 ndr_print_string(ndr
, "server", r
->in
.server
);
25489 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
25491 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
25493 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25495 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25497 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25499 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25501 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25503 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25507 if (flags
& NDR_OUT
) {
25508 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
25510 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25512 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25514 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25520 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
25522 if (flags
& NDR_IN
) {
25524 if (flags
& NDR_OUT
) {
25525 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25527 return NDR_ERR_SUCCESS
;
25530 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
25532 if (flags
& NDR_IN
) {
25534 if (flags
& NDR_OUT
) {
25535 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25537 return NDR_ERR_SUCCESS
;
25540 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
25542 ndr_print_struct(ndr
, name
, "spoolss_47");
25544 if (flags
& NDR_SET_VALUES
) {
25545 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25547 if (flags
& NDR_IN
) {
25548 ndr_print_struct(ndr
, "in", "spoolss_47");
25552 if (flags
& NDR_OUT
) {
25553 ndr_print_struct(ndr
, "out", "spoolss_47");
25555 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25561 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25563 if (flags
& NDR_IN
) {
25564 if (r
->in
.handle
== NULL
) {
25565 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25567 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
25569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
25570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25572 if (flags
& NDR_OUT
) {
25573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
25574 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
25575 if (r
->out
.value_needed
== NULL
) {
25576 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
25579 if (r
->out
.type
== NULL
) {
25580 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25582 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
25584 uint32_t _flags_save_uint8
= ndr
->flags
;
25585 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
25586 if (r
->out
.data
== NULL
) {
25587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25590 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
25591 ndr
->flags
= _flags_save_uint8
;
25593 if (r
->out
.data_needed
== NULL
) {
25594 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
25597 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25599 return NDR_ERR_SUCCESS
;
25602 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
25604 TALLOC_CTX
*_mem_save_handle_0
;
25605 TALLOC_CTX
*_mem_save_value_needed_0
;
25606 TALLOC_CTX
*_mem_save_type_0
;
25607 TALLOC_CTX
*_mem_save_data_needed_0
;
25608 if (flags
& NDR_IN
) {
25609 ZERO_STRUCT(r
->out
);
25611 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25612 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25614 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25615 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25616 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
25619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
25620 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
25621 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25622 ZERO_STRUCTP(r
->out
.value_needed
);
25623 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
25624 ZERO_STRUCTP(r
->out
.type
);
25625 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
25626 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
25627 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25628 ZERO_STRUCTP(r
->out
.data_needed
);
25630 if (flags
& NDR_OUT
) {
25631 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
25632 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
));
25633 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25634 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25636 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25637 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
25638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
25639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25640 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25641 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
25643 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25644 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
25645 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
25646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
25648 uint32_t _flags_save_uint8
= ndr
->flags
;
25649 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
25650 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
25651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25652 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
25654 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
25655 ndr
->flags
= _flags_save_uint8
;
25657 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25658 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25660 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25661 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
25662 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
25663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25664 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25665 if (r
->out
.value_name
) {
25666 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
25669 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
25672 return NDR_ERR_SUCCESS
;
25675 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25677 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
25679 if (flags
& NDR_SET_VALUES
) {
25680 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25682 if (flags
& NDR_IN
) {
25683 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
25685 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25687 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25689 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
25690 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
25691 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
25694 if (flags
& NDR_OUT
) {
25695 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
25697 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
25698 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
25700 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
25702 ndr_print_ptr(ndr
, "type", r
->out
.type
);
25704 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
25706 ndr_print_ptr(ndr
, "data", r
->out
.data
);
25708 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
25710 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
25712 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
25714 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25720 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25722 if (flags
& NDR_IN
) {
25723 if (r
->in
.handle
== NULL
) {
25724 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25726 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25730 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
));
25732 if (flags
& NDR_OUT
) {
25733 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25735 return NDR_ERR_SUCCESS
;
25738 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
25740 TALLOC_CTX
*_mem_save_handle_0
;
25741 if (flags
& NDR_IN
) {
25742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25743 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25745 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25746 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25747 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25749 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25750 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25751 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25752 return 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
));
25754 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25755 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
));
25757 if (flags
& NDR_OUT
) {
25758 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25760 return NDR_ERR_SUCCESS
;
25763 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25765 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
25767 if (flags
& NDR_SET_VALUES
) {
25768 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25770 if (flags
& NDR_IN
) {
25771 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
25773 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25775 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25777 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25780 if (flags
& NDR_OUT
) {
25781 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
25783 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25789 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
25791 if (flags
& NDR_IN
) {
25793 if (flags
& NDR_OUT
) {
25794 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25796 return NDR_ERR_SUCCESS
;
25799 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
25801 if (flags
& NDR_IN
) {
25803 if (flags
& NDR_OUT
) {
25804 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25806 return NDR_ERR_SUCCESS
;
25809 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
25811 ndr_print_struct(ndr
, name
, "spoolss_4a");
25813 if (flags
& NDR_SET_VALUES
) {
25814 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25816 if (flags
& NDR_IN
) {
25817 ndr_print_struct(ndr
, "in", "spoolss_4a");
25821 if (flags
& NDR_OUT
) {
25822 ndr_print_struct(ndr
, "out", "spoolss_4a");
25824 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25830 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
25832 if (flags
& NDR_IN
) {
25834 if (flags
& NDR_OUT
) {
25835 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25837 return NDR_ERR_SUCCESS
;
25840 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
25842 if (flags
& NDR_IN
) {
25844 if (flags
& NDR_OUT
) {
25845 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25847 return NDR_ERR_SUCCESS
;
25850 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
25852 ndr_print_struct(ndr
, name
, "spoolss_4b");
25854 if (flags
& NDR_SET_VALUES
) {
25855 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25857 if (flags
& NDR_IN
) {
25858 ndr_print_struct(ndr
, "in", "spoolss_4b");
25862 if (flags
& NDR_OUT
) {
25863 ndr_print_struct(ndr
, "out", "spoolss_4b");
25865 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25871 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
25873 if (flags
& NDR_IN
) {
25875 if (flags
& NDR_OUT
) {
25876 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25878 return NDR_ERR_SUCCESS
;
25881 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
25883 if (flags
& NDR_IN
) {
25885 if (flags
& NDR_OUT
) {
25886 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25888 return NDR_ERR_SUCCESS
;
25891 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
25893 ndr_print_struct(ndr
, name
, "spoolss_4c");
25895 if (flags
& NDR_SET_VALUES
) {
25896 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25898 if (flags
& NDR_IN
) {
25899 ndr_print_struct(ndr
, "in", "spoolss_4c");
25903 if (flags
& NDR_OUT
) {
25904 ndr_print_struct(ndr
, "out", "spoolss_4c");
25906 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25912 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25914 if (flags
& NDR_IN
) {
25915 if (r
->in
.handle
== NULL
) {
25916 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25918 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25922 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
));
25923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25926 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
));
25927 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
25928 if (r
->in
.buffer
== NULL
) {
25929 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25932 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
25933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25935 if (flags
& NDR_OUT
) {
25936 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25938 return NDR_ERR_SUCCESS
;
25941 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
25943 TALLOC_CTX
*_mem_save_handle_0
;
25944 if (flags
& NDR_IN
) {
25945 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25946 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25948 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25949 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25950 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25952 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25953 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25954 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25955 return 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
));
25957 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25958 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
));
25959 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25960 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25961 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25962 return 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
));
25964 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25965 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
));
25966 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
25967 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25968 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25969 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25971 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25972 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25973 if (r
->in
.buffer
) {
25974 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
25977 if (flags
& NDR_OUT
) {
25978 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25980 return NDR_ERR_SUCCESS
;
25983 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25985 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
25987 if (flags
& NDR_SET_VALUES
) {
25988 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25990 if (flags
& NDR_IN
) {
25991 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
25993 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25995 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25997 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25998 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25999 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
26000 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26002 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
26004 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26007 if (flags
& NDR_OUT
) {
26008 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
26010 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26016 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
26018 if (flags
& NDR_IN
) {
26019 if (r
->in
.handle
== NULL
) {
26020 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26022 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26026 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
));
26027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26030 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
));
26031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26033 if (flags
& NDR_OUT
) {
26034 if (r
->out
.type
== NULL
) {
26035 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26037 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
26038 if (r
->out
.buffer
== NULL
) {
26039 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26042 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
26043 if (r
->out
.needed
== NULL
) {
26044 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26047 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26049 return NDR_ERR_SUCCESS
;
26052 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
26054 TALLOC_CTX
*_mem_save_handle_0
;
26055 TALLOC_CTX
*_mem_save_type_0
;
26056 TALLOC_CTX
*_mem_save_needed_0
;
26057 if (flags
& NDR_IN
) {
26058 ZERO_STRUCT(r
->out
);
26060 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26061 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26063 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26064 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26065 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26069 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26070 return 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
));
26072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26073 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
));
26074 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26075 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26076 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26077 return 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
));
26079 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26080 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
));
26081 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26082 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26083 ZERO_STRUCTP(r
->out
.type
);
26084 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
26085 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
26086 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26087 ZERO_STRUCTP(r
->out
.needed
);
26089 if (flags
& NDR_OUT
) {
26090 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26091 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26093 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26094 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26095 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
26096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26097 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
26098 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26099 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
26101 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
26102 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26103 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26105 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26106 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26107 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26108 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26109 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26110 if (r
->out
.buffer
) {
26111 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
26114 return NDR_ERR_SUCCESS
;
26117 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
26119 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
26121 if (flags
& NDR_SET_VALUES
) {
26122 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26124 if (flags
& NDR_IN
) {
26125 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
26127 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26129 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26131 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26132 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26133 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26136 if (flags
& NDR_OUT
) {
26137 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
26139 ndr_print_ptr(ndr
, "type", r
->out
.type
);
26141 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
26143 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
26145 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
26147 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26149 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26151 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26157 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
26159 if (flags
& NDR_IN
) {
26160 if (r
->in
.handle
== NULL
) {
26161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26163 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26167 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
));
26168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26170 if (flags
& NDR_OUT
) {
26171 if (r
->out
.buffer
== NULL
) {
26172 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26175 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
26176 if (r
->out
.needed
== NULL
) {
26177 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26180 if (r
->out
.count
== NULL
) {
26181 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26184 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26186 return NDR_ERR_SUCCESS
;
26189 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterDataEx
*r
)
26191 TALLOC_CTX
*_mem_save_handle_0
;
26192 TALLOC_CTX
*_mem_save_needed_0
;
26193 TALLOC_CTX
*_mem_save_count_0
;
26194 if (flags
& NDR_IN
) {
26195 ZERO_STRUCT(r
->out
);
26197 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26198 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26200 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26201 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26202 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26204 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26205 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26206 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26207 return 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
));
26209 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26210 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
));
26211 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26212 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
26213 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
26214 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26215 ZERO_STRUCTP(r
->out
.needed
);
26216 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26217 ZERO_STRUCTP(r
->out
.count
);
26219 if (flags
& NDR_OUT
) {
26220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
26221 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26222 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
26224 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
26225 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26226 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26228 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26229 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26230 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26232 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26233 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26235 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26236 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26237 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26239 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26240 if (r
->out
.buffer
) {
26241 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
26244 return NDR_ERR_SUCCESS
;
26247 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
26249 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
26251 if (flags
& NDR_SET_VALUES
) {
26252 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26254 if (flags
& NDR_IN
) {
26255 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
26257 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26259 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26261 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26262 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26265 if (flags
& NDR_OUT
) {
26266 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
26268 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
26270 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
26272 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26274 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26276 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26278 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26280 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26286 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26288 if (flags
& NDR_IN
) {
26289 if (r
->in
.handle
== NULL
) {
26290 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26292 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26296 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
));
26297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26299 if (flags
& NDR_OUT
) {
26301 uint32_t _flags_save_string_array
= ndr
->flags
;
26302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
26303 if (r
->out
.key_buffer
== NULL
) {
26304 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26306 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.key_buffer
));
26307 if (*r
->out
.key_buffer
) {
26309 struct ndr_push
*_ndr_key_buffer
;
26310 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, r
->in
.offered
));
26311 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer
, NDR_SCALARS
, *r
->out
.key_buffer
));
26312 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, r
->in
.offered
));
26315 ndr
->flags
= _flags_save_string_array
;
26317 if (r
->out
.needed
== NULL
) {
26318 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26321 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26323 return NDR_ERR_SUCCESS
;
26326 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
26328 uint32_t _ptr_key_buffer
;
26329 TALLOC_CTX
*_mem_save_handle_0
;
26330 TALLOC_CTX
*_mem_save_key_buffer_0
;
26331 TALLOC_CTX
*_mem_save_key_buffer_1
;
26332 TALLOC_CTX
*_mem_save_needed_0
;
26333 if (flags
& NDR_IN
) {
26334 ZERO_STRUCT(r
->out
);
26336 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26337 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26339 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26340 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26341 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26343 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26344 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26345 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26346 return 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
));
26348 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26349 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
));
26350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26351 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
26352 ZERO_STRUCTP(r
->out
.key_buffer
);
26353 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26354 ZERO_STRUCTP(r
->out
.needed
);
26356 if (flags
& NDR_OUT
) {
26358 uint32_t _flags_save_string_array
= ndr
->flags
;
26359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
26360 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26361 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
26363 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26364 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
26365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_key_buffer
));
26366 if (_ptr_key_buffer
) {
26367 NDR_PULL_ALLOC(ndr
, *r
->out
.key_buffer
);
26369 *r
->out
.key_buffer
= NULL
;
26371 if (*r
->out
.key_buffer
) {
26372 _mem_save_key_buffer_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26373 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.key_buffer
, 0);
26375 struct ndr_pull
*_ndr_key_buffer
;
26376 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, r
->in
.offered
));
26377 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer
, NDR_SCALARS
, r
->out
.key_buffer
));
26378 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, r
->in
.offered
));
26380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_1
, 0);
26382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
26383 ndr
->flags
= _flags_save_string_array
;
26385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26386 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26388 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26389 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26392 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26394 return NDR_ERR_SUCCESS
;
26397 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26399 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
26401 if (flags
& NDR_SET_VALUES
) {
26402 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26404 if (flags
& NDR_IN
) {
26405 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
26407 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26409 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26411 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26412 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26415 if (flags
& NDR_OUT
) {
26416 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
26418 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
26420 ndr_print_ptr(ndr
, "key_buffer", *r
->out
.key_buffer
);
26422 if (*r
->out
.key_buffer
) {
26423 ndr_print_string_array(ndr
, "key_buffer", *r
->out
.key_buffer
);
26427 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26429 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26431 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26437 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26439 if (flags
& NDR_IN
) {
26440 if (r
->in
.handle
== NULL
) {
26441 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26443 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26447 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
));
26448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26451 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
));
26453 if (flags
& NDR_OUT
) {
26454 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26456 return NDR_ERR_SUCCESS
;
26459 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
26461 TALLOC_CTX
*_mem_save_handle_0
;
26462 if (flags
& NDR_IN
) {
26463 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26464 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26466 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26467 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26468 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26470 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26471 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26472 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26473 return 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
));
26475 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26476 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
));
26477 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26478 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26479 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26480 return 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
));
26482 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26483 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
));
26485 if (flags
& NDR_OUT
) {
26486 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26488 return NDR_ERR_SUCCESS
;
26491 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26493 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
26495 if (flags
& NDR_SET_VALUES
) {
26496 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26498 if (flags
& NDR_IN
) {
26499 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
26501 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26503 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26505 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26506 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26509 if (flags
& NDR_OUT
) {
26510 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
26512 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26518 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26520 if (flags
& NDR_IN
) {
26521 if (r
->in
.handle
== NULL
) {
26522 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26524 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26528 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
));
26530 if (flags
& NDR_OUT
) {
26531 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26533 return NDR_ERR_SUCCESS
;
26536 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
26538 TALLOC_CTX
*_mem_save_handle_0
;
26539 if (flags
& NDR_IN
) {
26540 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26541 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26543 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26544 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26545 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26547 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26548 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26549 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26550 return 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
));
26552 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26553 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
));
26555 if (flags
& NDR_OUT
) {
26556 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26558 return NDR_ERR_SUCCESS
;
26561 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26563 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
26565 if (flags
& NDR_SET_VALUES
) {
26566 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26568 if (flags
& NDR_IN
) {
26569 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
26571 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26573 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26575 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26578 if (flags
& NDR_OUT
) {
26579 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
26581 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26587 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
26589 if (flags
& NDR_IN
) {
26591 if (flags
& NDR_OUT
) {
26592 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26594 return NDR_ERR_SUCCESS
;
26597 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
26599 if (flags
& NDR_IN
) {
26601 if (flags
& NDR_OUT
) {
26602 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26604 return NDR_ERR_SUCCESS
;
26607 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
26609 ndr_print_struct(ndr
, name
, "spoolss_53");
26611 if (flags
& NDR_SET_VALUES
) {
26612 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26614 if (flags
& NDR_IN
) {
26615 ndr_print_struct(ndr
, "in", "spoolss_53");
26619 if (flags
& NDR_OUT
) {
26620 ndr_print_struct(ndr
, "out", "spoolss_53");
26622 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26628 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26630 if (flags
& NDR_IN
) {
26631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26632 if (r
->in
.server
) {
26633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26636 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26641 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26645 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26646 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
26647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
26649 if (flags
& NDR_OUT
) {
26650 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26652 return NDR_ERR_SUCCESS
;
26655 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
26657 uint32_t _ptr_server
;
26658 TALLOC_CTX
*_mem_save_server_0
;
26659 if (flags
& NDR_IN
) {
26660 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26662 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26664 r
->in
.server
= NULL
;
26666 if (r
->in
.server
) {
26667 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26668 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26669 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26670 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26671 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
26672 return 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
));
26674 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
26675 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
26676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26680 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
26681 return 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
));
26683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
26684 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
26685 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
26686 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
26687 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
26688 return 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
));
26690 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
26691 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
26692 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
26693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
26695 if (flags
& NDR_OUT
) {
26696 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26698 return NDR_ERR_SUCCESS
;
26701 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26703 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
26705 if (flags
& NDR_SET_VALUES
) {
26706 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26708 if (flags
& NDR_IN
) {
26709 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
26711 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26713 if (r
->in
.server
) {
26714 ndr_print_string(ndr
, "server", r
->in
.server
);
26717 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26718 ndr_print_string(ndr
, "driver", r
->in
.driver
);
26719 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
26720 ndr_print_uint32(ndr
, "version", r
->in
.version
);
26723 if (flags
& NDR_OUT
) {
26724 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
26726 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26732 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
26734 if (flags
& NDR_IN
) {
26736 if (flags
& NDR_OUT
) {
26737 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26739 return NDR_ERR_SUCCESS
;
26742 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
26744 if (flags
& NDR_IN
) {
26746 if (flags
& NDR_OUT
) {
26747 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26749 return NDR_ERR_SUCCESS
;
26752 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
26754 ndr_print_struct(ndr
, name
, "spoolss_55");
26756 if (flags
& NDR_SET_VALUES
) {
26757 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26759 if (flags
& NDR_IN
) {
26760 ndr_print_struct(ndr
, "in", "spoolss_55");
26764 if (flags
& NDR_OUT
) {
26765 ndr_print_struct(ndr
, "out", "spoolss_55");
26767 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26773 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
26775 if (flags
& NDR_IN
) {
26777 if (flags
& NDR_OUT
) {
26778 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26780 return NDR_ERR_SUCCESS
;
26783 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
26785 if (flags
& NDR_IN
) {
26787 if (flags
& NDR_OUT
) {
26788 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26790 return NDR_ERR_SUCCESS
;
26793 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
26795 ndr_print_struct(ndr
, name
, "spoolss_56");
26797 if (flags
& NDR_SET_VALUES
) {
26798 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26800 if (flags
& NDR_IN
) {
26801 ndr_print_struct(ndr
, "in", "spoolss_56");
26805 if (flags
& NDR_OUT
) {
26806 ndr_print_struct(ndr
, "out", "spoolss_56");
26808 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26814 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
26816 if (flags
& NDR_IN
) {
26818 if (flags
& NDR_OUT
) {
26819 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26821 return NDR_ERR_SUCCESS
;
26824 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
26826 if (flags
& NDR_IN
) {
26828 if (flags
& NDR_OUT
) {
26829 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26831 return NDR_ERR_SUCCESS
;
26834 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
26836 ndr_print_struct(ndr
, name
, "spoolss_57");
26838 if (flags
& NDR_SET_VALUES
) {
26839 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26841 if (flags
& NDR_IN
) {
26842 ndr_print_struct(ndr
, "in", "spoolss_57");
26846 if (flags
& NDR_OUT
) {
26847 ndr_print_struct(ndr
, "out", "spoolss_57");
26849 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26855 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
26857 if (flags
& NDR_IN
) {
26858 if (r
->in
.handle
== NULL
) {
26859 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26861 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26862 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26865 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
));
26866 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
26867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
26868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26869 if (r
->in
.status_code
== NULL
) {
26870 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
26874 if (flags
& NDR_OUT
) {
26875 if (r
->out
.out_data
== NULL
) {
26876 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26879 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
26880 if (r
->out
.needed
== NULL
) {
26881 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26884 if (r
->out
.status_code
== NULL
) {
26885 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
26888 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26890 return NDR_ERR_SUCCESS
;
26893 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
26895 TALLOC_CTX
*_mem_save_handle_0
;
26896 TALLOC_CTX
*_mem_save_needed_0
;
26897 TALLOC_CTX
*_mem_save_status_code_0
;
26898 if (flags
& NDR_IN
) {
26899 ZERO_STRUCT(r
->out
);
26901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26902 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26904 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26906 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26908 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
26909 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
26910 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
26911 return 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
));
26913 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
26914 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
));
26915 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
26916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
26917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
26918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26919 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
26921 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26923 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
26924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26925 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
26926 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
26927 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26928 ZERO_STRUCTP(r
->out
.needed
);
26929 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26930 *r
->out
.status_code
= *r
->in
.status_code
;
26932 if (flags
& NDR_OUT
) {
26933 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
26934 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26935 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
26937 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
26938 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26939 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26941 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26942 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26943 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26945 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26946 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26948 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26949 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
26951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26952 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26953 if (r
->out
.out_data
) {
26954 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
26957 return NDR_ERR_SUCCESS
;
26960 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
26962 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
26964 if (flags
& NDR_SET_VALUES
) {
26965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26967 if (flags
& NDR_IN
) {
26968 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
26970 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26972 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26974 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
26975 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
26976 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
26977 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
26978 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
26980 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
26984 if (flags
& NDR_OUT
) {
26985 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
26987 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
26989 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
26991 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26993 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26995 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
26997 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
26999 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27005 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
27007 if (flags
& NDR_IN
) {
27008 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
27009 if (r
->in
.servername
) {
27010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
27011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
27013 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, 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_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27019 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27021 if (flags
& NDR_OUT
) {
27022 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27024 return NDR_ERR_SUCCESS
;
27027 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
27029 uint32_t _ptr_servername
;
27030 TALLOC_CTX
*_mem_save_servername_0
;
27031 TALLOC_CTX
*_mem_save_info_ctr_0
;
27032 if (flags
& NDR_IN
) {
27033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
27034 if (_ptr_servername
) {
27035 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
27037 r
->in
.servername
= NULL
;
27039 if (r
->in
.servername
) {
27040 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27041 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
27042 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
27043 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
27044 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
27045 return 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
));
27047 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
27048 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
27049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
27051 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27052 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
27054 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27055 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27056 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27058 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27060 if (flags
& NDR_OUT
) {
27061 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27063 return NDR_ERR_SUCCESS
;
27066 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
27068 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
27070 if (flags
& NDR_SET_VALUES
) {
27071 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27073 if (flags
& NDR_IN
) {
27074 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
27076 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
27078 if (r
->in
.servername
) {
27079 ndr_print_string(ndr
, "servername", r
->in
.servername
);
27082 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
27084 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
27086 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
27089 if (flags
& NDR_OUT
) {
27090 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
27092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27098 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
27100 if (flags
& NDR_IN
) {
27102 if (flags
& NDR_OUT
) {
27103 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27105 return NDR_ERR_SUCCESS
;
27108 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
27110 if (flags
& NDR_IN
) {
27112 if (flags
& NDR_OUT
) {
27113 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27115 return NDR_ERR_SUCCESS
;
27118 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
27120 ndr_print_struct(ndr
, name
, "spoolss_5a");
27122 if (flags
& NDR_SET_VALUES
) {
27123 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27125 if (flags
& NDR_IN
) {
27126 ndr_print_struct(ndr
, "in", "spoolss_5a");
27130 if (flags
& NDR_OUT
) {
27131 ndr_print_struct(ndr
, "out", "spoolss_5a");
27133 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27139 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
27141 if (flags
& NDR_IN
) {
27143 if (flags
& NDR_OUT
) {
27144 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27146 return NDR_ERR_SUCCESS
;
27149 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
27151 if (flags
& NDR_IN
) {
27153 if (flags
& NDR_OUT
) {
27154 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27156 return NDR_ERR_SUCCESS
;
27159 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
27161 ndr_print_struct(ndr
, name
, "spoolss_5b");
27163 if (flags
& NDR_SET_VALUES
) {
27164 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27166 if (flags
& NDR_IN
) {
27167 ndr_print_struct(ndr
, "in", "spoolss_5b");
27171 if (flags
& NDR_OUT
) {
27172 ndr_print_struct(ndr
, "out", "spoolss_5b");
27174 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27180 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
27182 if (flags
& NDR_IN
) {
27184 if (flags
& NDR_OUT
) {
27185 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27187 return NDR_ERR_SUCCESS
;
27190 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
27192 if (flags
& NDR_IN
) {
27194 if (flags
& NDR_OUT
) {
27195 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27197 return NDR_ERR_SUCCESS
;
27200 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
27202 ndr_print_struct(ndr
, name
, "spoolss_5c");
27204 if (flags
& NDR_SET_VALUES
) {
27205 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27207 if (flags
& NDR_IN
) {
27208 ndr_print_struct(ndr
, "in", "spoolss_5c");
27212 if (flags
& NDR_OUT
) {
27213 ndr_print_struct(ndr
, "out", "spoolss_5c");
27215 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27221 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
27223 if (flags
& NDR_IN
) {
27225 if (flags
& NDR_OUT
) {
27226 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27228 return NDR_ERR_SUCCESS
;
27231 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
27233 if (flags
& NDR_IN
) {
27235 if (flags
& NDR_OUT
) {
27236 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27238 return NDR_ERR_SUCCESS
;
27241 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
27243 ndr_print_struct(ndr
, name
, "spoolss_5d");
27245 if (flags
& NDR_SET_VALUES
) {
27246 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27248 if (flags
& NDR_IN
) {
27249 ndr_print_struct(ndr
, "in", "spoolss_5d");
27253 if (flags
& NDR_OUT
) {
27254 ndr_print_struct(ndr
, "out", "spoolss_5d");
27256 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27262 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
27264 if (flags
& NDR_IN
) {
27266 if (flags
& NDR_OUT
) {
27267 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27269 return NDR_ERR_SUCCESS
;
27272 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
27274 if (flags
& NDR_IN
) {
27276 if (flags
& NDR_OUT
) {
27277 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27279 return NDR_ERR_SUCCESS
;
27282 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
27284 ndr_print_struct(ndr
, name
, "spoolss_5e");
27286 if (flags
& NDR_SET_VALUES
) {
27287 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27289 if (flags
& NDR_IN
) {
27290 ndr_print_struct(ndr
, "in", "spoolss_5e");
27294 if (flags
& NDR_OUT
) {
27295 ndr_print_struct(ndr
, "out", "spoolss_5e");
27297 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27303 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
27305 if (flags
& NDR_IN
) {
27307 if (flags
& NDR_OUT
) {
27308 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27310 return NDR_ERR_SUCCESS
;
27313 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
27315 if (flags
& NDR_IN
) {
27317 if (flags
& NDR_OUT
) {
27318 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27320 return NDR_ERR_SUCCESS
;
27323 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
27325 ndr_print_struct(ndr
, name
, "spoolss_5f");
27327 if (flags
& NDR_SET_VALUES
) {
27328 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27330 if (flags
& NDR_IN
) {
27331 ndr_print_struct(ndr
, "in", "spoolss_5f");
27335 if (flags
& NDR_OUT
) {
27336 ndr_print_struct(ndr
, "out", "spoolss_5f");
27338 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27344 static const struct ndr_interface_call spoolss_calls
[] = {
27346 "spoolss_EnumPrinters",
27347 sizeof(struct spoolss_EnumPrinters
),
27348 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
27349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
27350 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
27354 "spoolss_OpenPrinter",
27355 sizeof(struct spoolss_OpenPrinter
),
27356 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
27357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
27358 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
27363 sizeof(struct spoolss_SetJob
),
27364 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
27365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
27366 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
27371 sizeof(struct spoolss_GetJob
),
27372 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
27373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
27374 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
27378 "spoolss_EnumJobs",
27379 sizeof(struct spoolss_EnumJobs
),
27380 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
27381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
27382 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
27386 "spoolss_AddPrinter",
27387 sizeof(struct spoolss_AddPrinter
),
27388 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
27389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
27390 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
27394 "spoolss_DeletePrinter",
27395 sizeof(struct spoolss_DeletePrinter
),
27396 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
27397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
27398 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
27402 "spoolss_SetPrinter",
27403 sizeof(struct spoolss_SetPrinter
),
27404 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
27405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
27406 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
27410 "spoolss_GetPrinter",
27411 sizeof(struct spoolss_GetPrinter
),
27412 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
27413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
27414 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
27418 "spoolss_AddPrinterDriver",
27419 sizeof(struct spoolss_AddPrinterDriver
),
27420 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
27421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
27422 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
27426 "spoolss_EnumPrinterDrivers",
27427 sizeof(struct spoolss_EnumPrinterDrivers
),
27428 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
27429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
27430 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
27434 "spoolss_GetPrinterDriver",
27435 sizeof(struct spoolss_GetPrinterDriver
),
27436 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
27437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
27438 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
27442 "spoolss_GetPrinterDriverDirectory",
27443 sizeof(struct spoolss_GetPrinterDriverDirectory
),
27444 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
27445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
27446 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
27450 "spoolss_DeletePrinterDriver",
27451 sizeof(struct spoolss_DeletePrinterDriver
),
27452 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
27453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
27454 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
27458 "spoolss_AddPrintProcessor",
27459 sizeof(struct spoolss_AddPrintProcessor
),
27460 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
27461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
27462 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
27466 "spoolss_EnumPrintProcessors",
27467 sizeof(struct spoolss_EnumPrintProcessors
),
27468 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
27469 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
27470 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
27474 "spoolss_GetPrintProcessorDirectory",
27475 sizeof(struct spoolss_GetPrintProcessorDirectory
),
27476 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
27477 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
27478 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
27482 "spoolss_StartDocPrinter",
27483 sizeof(struct spoolss_StartDocPrinter
),
27484 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
27485 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
27486 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
27490 "spoolss_StartPagePrinter",
27491 sizeof(struct spoolss_StartPagePrinter
),
27492 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
27493 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
27494 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
27498 "spoolss_WritePrinter",
27499 sizeof(struct spoolss_WritePrinter
),
27500 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
27501 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
27502 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
27506 "spoolss_EndPagePrinter",
27507 sizeof(struct spoolss_EndPagePrinter
),
27508 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
27509 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
27510 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
27514 "spoolss_AbortPrinter",
27515 sizeof(struct spoolss_AbortPrinter
),
27516 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
27517 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
27518 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
27522 "spoolss_ReadPrinter",
27523 sizeof(struct spoolss_ReadPrinter
),
27524 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
27525 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
27526 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
27530 "spoolss_EndDocPrinter",
27531 sizeof(struct spoolss_EndDocPrinter
),
27532 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
27533 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
27534 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
27539 sizeof(struct spoolss_AddJob
),
27540 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
27541 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
27542 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
27546 "spoolss_ScheduleJob",
27547 sizeof(struct spoolss_ScheduleJob
),
27548 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
27549 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
27550 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
27554 "spoolss_GetPrinterData",
27555 sizeof(struct spoolss_GetPrinterData
),
27556 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
27557 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
27558 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
27562 "spoolss_SetPrinterData",
27563 sizeof(struct spoolss_SetPrinterData
),
27564 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
27565 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
27566 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
27570 "spoolss_WaitForPrinterChange",
27571 sizeof(struct spoolss_WaitForPrinterChange
),
27572 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
27573 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
27574 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
27578 "spoolss_ClosePrinter",
27579 sizeof(struct spoolss_ClosePrinter
),
27580 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
27581 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
27582 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
27587 sizeof(struct spoolss_AddForm
),
27588 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
27589 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
27590 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
27594 "spoolss_DeleteForm",
27595 sizeof(struct spoolss_DeleteForm
),
27596 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
27597 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
27598 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
27603 sizeof(struct spoolss_GetForm
),
27604 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
27605 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
27606 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
27611 sizeof(struct spoolss_SetForm
),
27612 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
27613 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
27614 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
27618 "spoolss_EnumForms",
27619 sizeof(struct spoolss_EnumForms
),
27620 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
27621 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
27622 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
27626 "spoolss_EnumPorts",
27627 sizeof(struct spoolss_EnumPorts
),
27628 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
27629 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
27630 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
27634 "spoolss_EnumMonitors",
27635 sizeof(struct spoolss_EnumMonitors
),
27636 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
27637 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
27638 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
27643 sizeof(struct spoolss_AddPort
),
27644 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
27645 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
27646 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
27650 "spoolss_ConfigurePort",
27651 sizeof(struct spoolss_ConfigurePort
),
27652 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
27653 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
27654 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
27658 "spoolss_DeletePort",
27659 sizeof(struct spoolss_DeletePort
),
27660 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
27661 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
27662 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
27666 "spoolss_CreatePrinterIC",
27667 sizeof(struct spoolss_CreatePrinterIC
),
27668 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
27669 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
27670 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
27674 "spoolss_PlayGDIScriptOnPrinterIC",
27675 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
27676 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
27677 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
27678 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
27682 "spoolss_DeletePrinterIC",
27683 sizeof(struct spoolss_DeletePrinterIC
),
27684 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
27685 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
27686 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
27690 "spoolss_AddPrinterConnection",
27691 sizeof(struct spoolss_AddPrinterConnection
),
27692 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
27693 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
27694 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
27698 "spoolss_DeletePrinterConnection",
27699 sizeof(struct spoolss_DeletePrinterConnection
),
27700 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
27701 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
27702 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
27706 "spoolss_PrinterMessageBox",
27707 sizeof(struct spoolss_PrinterMessageBox
),
27708 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
27709 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
27710 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
27714 "spoolss_AddMonitor",
27715 sizeof(struct spoolss_AddMonitor
),
27716 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
27717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
27718 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
27722 "spoolss_DeleteMonitor",
27723 sizeof(struct spoolss_DeleteMonitor
),
27724 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
27725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
27726 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
27730 "spoolss_DeletePrintProcessor",
27731 sizeof(struct spoolss_DeletePrintProcessor
),
27732 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
27733 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
27734 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
27738 "spoolss_AddPrintProvidor",
27739 sizeof(struct spoolss_AddPrintProvidor
),
27740 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
27741 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
27742 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
27746 "spoolss_DeletePrintProvidor",
27747 sizeof(struct spoolss_DeletePrintProvidor
),
27748 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
27749 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
27750 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
27754 "spoolss_EnumPrintProcDataTypes",
27755 sizeof(struct spoolss_EnumPrintProcDataTypes
),
27756 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
27757 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
27758 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
27762 "spoolss_ResetPrinter",
27763 sizeof(struct spoolss_ResetPrinter
),
27764 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
27765 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
27766 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
27770 "spoolss_GetPrinterDriver2",
27771 sizeof(struct spoolss_GetPrinterDriver2
),
27772 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
27773 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
27774 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
27778 "spoolss_FindFirstPrinterChangeNotification",
27779 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
27780 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
27781 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
27782 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
27786 "spoolss_FindNextPrinterChangeNotification",
27787 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
27788 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
27789 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
27790 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
27794 "spoolss_FindClosePrinterNotify",
27795 sizeof(struct spoolss_FindClosePrinterNotify
),
27796 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
27797 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
27798 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
27802 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27803 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
27804 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27805 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27806 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27810 "spoolss_ReplyOpenPrinter",
27811 sizeof(struct spoolss_ReplyOpenPrinter
),
27812 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
27813 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
27814 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
27818 "spoolss_RouterReplyPrinter",
27819 sizeof(struct spoolss_RouterReplyPrinter
),
27820 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
27821 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
27822 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
27826 "spoolss_ReplyClosePrinter",
27827 sizeof(struct spoolss_ReplyClosePrinter
),
27828 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
27829 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
27830 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
27834 "spoolss_AddPortEx",
27835 sizeof(struct spoolss_AddPortEx
),
27836 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
27837 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
27838 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
27842 "spoolss_RouterFindFirstPrinterChangeNotification",
27843 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
27844 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
27845 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
27846 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
27850 "spoolss_SpoolerInit",
27851 sizeof(struct spoolss_SpoolerInit
),
27852 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
27853 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
27854 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
27858 "spoolss_ResetPrinterEx",
27859 sizeof(struct spoolss_ResetPrinterEx
),
27860 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
27861 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
27862 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
27866 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27867 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
27868 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27870 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27874 "spoolss_RouterReplyPrinterEx",
27875 sizeof(struct spoolss_RouterReplyPrinterEx
),
27876 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
27877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
27878 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
27882 "spoolss_RouterRefreshPrinterChangeNotify",
27883 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
27884 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
27885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
27886 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
27891 sizeof(struct spoolss_44
),
27892 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
27893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
27894 (ndr_print_function_t
) ndr_print_spoolss_44
,
27898 "spoolss_OpenPrinterEx",
27899 sizeof(struct spoolss_OpenPrinterEx
),
27900 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
27901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
27902 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
27906 "spoolss_AddPrinterEx",
27907 sizeof(struct spoolss_AddPrinterEx
),
27908 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
27909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
27910 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
27915 sizeof(struct spoolss_47
),
27916 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
27917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
27918 (ndr_print_function_t
) ndr_print_spoolss_47
,
27922 "spoolss_EnumPrinterData",
27923 sizeof(struct spoolss_EnumPrinterData
),
27924 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
27925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
27926 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
27930 "spoolss_DeletePrinterData",
27931 sizeof(struct spoolss_DeletePrinterData
),
27932 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
27933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
27934 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
27939 sizeof(struct spoolss_4a
),
27940 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
27941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
27942 (ndr_print_function_t
) ndr_print_spoolss_4a
,
27947 sizeof(struct spoolss_4b
),
27948 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
27949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
27950 (ndr_print_function_t
) ndr_print_spoolss_4b
,
27955 sizeof(struct spoolss_4c
),
27956 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
27957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
27958 (ndr_print_function_t
) ndr_print_spoolss_4c
,
27962 "spoolss_SetPrinterDataEx",
27963 sizeof(struct spoolss_SetPrinterDataEx
),
27964 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
27965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
27966 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
27970 "spoolss_GetPrinterDataEx",
27971 sizeof(struct spoolss_GetPrinterDataEx
),
27972 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
27973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
27974 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
27978 "spoolss_EnumPrinterDataEx",
27979 sizeof(struct spoolss_EnumPrinterDataEx
),
27980 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
27981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
27982 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
27986 "spoolss_EnumPrinterKey",
27987 sizeof(struct spoolss_EnumPrinterKey
),
27988 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
27989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
27990 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
27994 "spoolss_DeletePrinterDataEx",
27995 sizeof(struct spoolss_DeletePrinterDataEx
),
27996 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
27997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
27998 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
28002 "spoolss_DeletePrinterKey",
28003 sizeof(struct spoolss_DeletePrinterKey
),
28004 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
28005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
28006 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
28011 sizeof(struct spoolss_53
),
28012 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
28013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
28014 (ndr_print_function_t
) ndr_print_spoolss_53
,
28018 "spoolss_DeletePrinterDriverEx",
28019 sizeof(struct spoolss_DeletePrinterDriverEx
),
28020 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
28021 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
28022 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
28027 sizeof(struct spoolss_55
),
28028 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
28029 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
28030 (ndr_print_function_t
) ndr_print_spoolss_55
,
28035 sizeof(struct spoolss_56
),
28036 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
28037 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
28038 (ndr_print_function_t
) ndr_print_spoolss_56
,
28043 sizeof(struct spoolss_57
),
28044 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
28045 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
28046 (ndr_print_function_t
) ndr_print_spoolss_57
,
28051 sizeof(struct spoolss_XcvData
),
28052 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
28053 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
28054 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
28058 "spoolss_AddPrinterDriverEx",
28059 sizeof(struct spoolss_AddPrinterDriverEx
),
28060 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
28061 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
28062 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
28067 sizeof(struct spoolss_5a
),
28068 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
28069 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
28070 (ndr_print_function_t
) ndr_print_spoolss_5a
,
28075 sizeof(struct spoolss_5b
),
28076 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
28077 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
28078 (ndr_print_function_t
) ndr_print_spoolss_5b
,
28083 sizeof(struct spoolss_5c
),
28084 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
28085 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
28086 (ndr_print_function_t
) ndr_print_spoolss_5c
,
28091 sizeof(struct spoolss_5d
),
28092 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
28093 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
28094 (ndr_print_function_t
) ndr_print_spoolss_5d
,
28099 sizeof(struct spoolss_5e
),
28100 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
28101 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
28102 (ndr_print_function_t
) ndr_print_spoolss_5e
,
28107 sizeof(struct spoolss_5f
),
28108 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
28109 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
28110 (ndr_print_function_t
) ndr_print_spoolss_5f
,
28113 { NULL
, 0, NULL
, NULL
, NULL
, false }
28116 static const char * const spoolss_endpoint_strings
[] = {
28117 "ncacn_np:[\\pipe\\spoolss]",
28120 static const struct ndr_interface_string_array spoolss_endpoints
= {
28122 .names
= spoolss_endpoint_strings
28125 static const char * const spoolss_authservice_strings
[] = {
28129 static const struct ndr_interface_string_array spoolss_authservices
= {
28131 .names
= spoolss_authservice_strings
28135 const struct ndr_interface_table ndr_table_spoolss
= {
28138 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28139 NDR_SPOOLSS_VERSION
28141 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
28143 .calls
= spoolss_calls
,
28144 .endpoints
= &spoolss_endpoints
,
28145 .authservices
= &spoolss_authservices