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 _PUBLIC_
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 _PUBLIC_
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_start(ndr
, r
->printername
));
357 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
358 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
360 ndr
->flags
= _flags_save_string
;
363 uint32_t _flags_save_string
= ndr
->flags
;
364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
366 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
367 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
368 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
370 ndr
->flags
= _flags_save_string
;
373 return NDR_ERR_SUCCESS
;
376 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
378 uint32_t _ptr_printername
;
379 TALLOC_CTX
*_mem_save_printername_0
;
380 uint32_t _ptr_servername
;
381 TALLOC_CTX
*_mem_save_servername_0
;
382 if (ndr_flags
& NDR_SCALARS
) {
383 NDR_CHECK(ndr_pull_align(ndr
, 4));
385 uint32_t _flags_save_string
= ndr
->flags
;
386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
388 if (_ptr_printername
) {
389 NDR_PULL_ALLOC(ndr
, r
->printername
);
390 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
392 r
->printername
= NULL
;
394 ndr
->flags
= _flags_save_string
;
397 uint32_t _flags_save_string
= ndr
->flags
;
398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
400 if (_ptr_servername
) {
401 NDR_PULL_ALLOC(ndr
, r
->servername
);
402 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
404 r
->servername
= NULL
;
406 ndr
->flags
= _flags_save_string
;
408 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
409 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
411 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
421 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
423 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
426 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
427 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
430 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
431 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
436 if (ndr_flags
& NDR_BUFFERS
) {
438 uint32_t _flags_save_string
= ndr
->flags
;
439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
440 if (r
->printername
) {
441 uint32_t _relative_save_offset
;
442 _relative_save_offset
= ndr
->offset
;
443 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
444 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
445 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
446 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
448 ndr
->offset
= _relative_save_offset
;
450 ndr
->flags
= _flags_save_string
;
453 uint32_t _flags_save_string
= ndr
->flags
;
454 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
456 uint32_t _relative_save_offset
;
457 _relative_save_offset
= ndr
->offset
;
458 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
459 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
460 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
461 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
463 ndr
->offset
= _relative_save_offset
;
465 ndr
->flags
= _flags_save_string
;
468 return NDR_ERR_SUCCESS
;
471 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
473 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
475 ndr_print_ptr(ndr
, "printername", r
->printername
);
477 if (r
->printername
) {
478 ndr_print_string(ndr
, "printername", r
->printername
);
481 ndr_print_ptr(ndr
, "servername", r
->servername
);
484 ndr_print_string(ndr
, "servername", r
->servername
);
487 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
488 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
489 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
490 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
491 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
492 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
493 ndr_print_uint32(ndr
, "version", r
->version
);
494 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
495 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
496 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
497 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
498 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
499 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
500 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
501 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
502 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
503 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
504 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
505 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
506 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
507 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
508 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
509 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
510 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
511 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
512 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
513 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
517 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
519 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
522 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
525 return NDR_ERR_SUCCESS
;
528 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
533 return NDR_ERR_SUCCESS
;
536 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
538 ndr_print_uint32(ndr
, name
, r
);
540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
561 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
562 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
563 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
564 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
565 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
566 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
571 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
573 if (ndr_flags
& NDR_SCALARS
) {
574 NDR_CHECK(ndr_push_align(ndr
, 4));
575 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
576 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
577 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
578 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
579 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
580 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
581 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
582 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
583 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
584 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
585 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
586 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
587 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
588 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
589 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
590 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
591 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
592 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
593 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
594 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
595 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
610 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
613 struct ndr_push
*_ndr_driverextra_data
;
614 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
615 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
616 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
618 ndr
->flags
= _flags_save_DATA_BLOB
;
621 if (ndr_flags
& NDR_BUFFERS
) {
623 return NDR_ERR_SUCCESS
;
626 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
628 uint32_t size_devicename_0
= 0;
629 uint32_t size_formname_0
= 0;
630 if (ndr_flags
& NDR_SCALARS
) {
631 NDR_CHECK(ndr_pull_align(ndr
, 4));
632 size_devicename_0
= 32;
633 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, size_devicename_0
, sizeof(uint16_t), CH_UTF16
));
634 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
636 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
637 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
638 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
639 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
640 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
641 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
642 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
643 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
644 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
645 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
646 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
647 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
649 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
650 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
651 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
652 size_formname_0
= 32;
653 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, size_formname_0
, sizeof(uint16_t), CH_UTF16
));
654 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
658 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
660 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
662 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
664 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
669 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
672 struct ndr_pull
*_ndr_driverextra_data
;
673 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
674 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
675 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
677 ndr
->flags
= _flags_save_DATA_BLOB
;
680 if (ndr_flags
& NDR_BUFFERS
) {
682 return NDR_ERR_SUCCESS
;
685 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
687 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
689 ndr_print_string(ndr
, "devicename", r
->devicename
);
690 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
691 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
692 ndr_print_uint16(ndr
, "size", r
->size
);
693 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
694 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
695 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
696 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
697 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
698 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
699 ndr_print_uint16(ndr
, "scale", r
->scale
);
700 ndr_print_uint16(ndr
, "copies", r
->copies
);
701 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
702 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
703 ndr_print_uint16(ndr
, "color", r
->color
);
704 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
705 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
706 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
707 ndr_print_uint16(ndr
, "collate", r
->collate
);
708 ndr_print_string(ndr
, "formname", r
->formname
);
709 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
710 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
711 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
712 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
713 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
714 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
715 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
716 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
717 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
718 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
719 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
720 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
721 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
722 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
723 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
727 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
729 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
732 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
735 return NDR_ERR_SUCCESS
;
738 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
743 return NDR_ERR_SUCCESS
;
746 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
748 ndr_print_uint32(ndr
, name
, r
);
750 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
751 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
752 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
753 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
763 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
764 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
765 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
766 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
767 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
768 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
772 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
774 if (ndr_flags
& NDR_SCALARS
) {
775 NDR_CHECK(ndr_push_align(ndr
, 4));
776 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
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
->name
));
787 ndr
->flags
= _flags_save_string
;
790 uint32_t _flags_save_string
= ndr
->flags
;
791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
792 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
793 ndr
->flags
= _flags_save_string
;
796 if (ndr_flags
& NDR_BUFFERS
) {
798 uint32_t _flags_save_string
= ndr
->flags
;
799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
800 if (r
->description
) {
801 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
802 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
803 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
805 ndr
->flags
= _flags_save_string
;
808 uint32_t _flags_save_string
= ndr
->flags
;
809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
811 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name
));
812 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name
));
815 ndr
->flags
= _flags_save_string
;
818 uint32_t _flags_save_string
= ndr
->flags
;
819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
821 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->comment
));
822 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
823 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->comment
));
825 ndr
->flags
= _flags_save_string
;
828 return NDR_ERR_SUCCESS
;
831 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
833 uint32_t _ptr_description
;
834 TALLOC_CTX
*_mem_save_description_0
;
836 TALLOC_CTX
*_mem_save_name_0
;
837 uint32_t _ptr_comment
;
838 TALLOC_CTX
*_mem_save_comment_0
;
839 if (ndr_flags
& NDR_SCALARS
) {
840 NDR_CHECK(ndr_pull_align(ndr
, 4));
841 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
843 uint32_t _flags_save_string
= ndr
->flags
;
844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
846 if (_ptr_description
) {
847 NDR_PULL_ALLOC(ndr
, r
->description
);
848 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
850 r
->description
= NULL
;
852 ndr
->flags
= _flags_save_string
;
855 uint32_t _flags_save_string
= ndr
->flags
;
856 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
857 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
859 NDR_PULL_ALLOC(ndr
, r
->name
);
860 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
864 ndr
->flags
= _flags_save_string
;
867 uint32_t _flags_save_string
= ndr
->flags
;
868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
871 NDR_PULL_ALLOC(ndr
, r
->comment
);
872 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
876 ndr
->flags
= _flags_save_string
;
879 if (ndr_flags
& NDR_BUFFERS
) {
881 uint32_t _flags_save_string
= ndr
->flags
;
882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
883 if (r
->description
) {
884 uint32_t _relative_save_offset
;
885 _relative_save_offset
= ndr
->offset
;
886 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
887 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
888 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
889 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
891 ndr
->offset
= _relative_save_offset
;
893 ndr
->flags
= _flags_save_string
;
896 uint32_t _flags_save_string
= ndr
->flags
;
897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
899 uint32_t _relative_save_offset
;
900 _relative_save_offset
= ndr
->offset
;
901 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
902 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
903 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
904 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
906 ndr
->offset
= _relative_save_offset
;
908 ndr
->flags
= _flags_save_string
;
911 uint32_t _flags_save_string
= ndr
->flags
;
912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
914 uint32_t _relative_save_offset
;
915 _relative_save_offset
= ndr
->offset
;
916 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
917 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
918 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
919 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
921 ndr
->offset
= _relative_save_offset
;
923 ndr
->flags
= _flags_save_string
;
926 return NDR_ERR_SUCCESS
;
929 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
931 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
933 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
934 ndr_print_ptr(ndr
, "description", r
->description
);
936 if (r
->description
) {
937 ndr_print_string(ndr
, "description", r
->description
);
940 ndr_print_ptr(ndr
, "name", r
->name
);
943 ndr_print_string(ndr
, "name", r
->name
);
946 ndr_print_ptr(ndr
, "comment", r
->comment
);
949 ndr_print_string(ndr
, "comment", r
->comment
);
955 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
957 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
960 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
963 return NDR_ERR_SUCCESS
;
966 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
969 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
971 return NDR_ERR_SUCCESS
;
974 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
976 ndr_print_uint32(ndr
, name
, r
);
978 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
979 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
980 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
981 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
982 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
983 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
984 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
985 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
986 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
987 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
988 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
989 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
990 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
991 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
992 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
993 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
997 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
999 uint32_t _ptr_servername
;
1000 TALLOC_CTX
*_mem_save_servername_0
;
1001 uint32_t _ptr_printername
;
1002 TALLOC_CTX
*_mem_save_printername_0
;
1003 uint32_t _ptr_sharename
;
1004 TALLOC_CTX
*_mem_save_sharename_0
;
1005 uint32_t _ptr_portname
;
1006 TALLOC_CTX
*_mem_save_portname_0
;
1007 uint32_t _ptr_drivername
;
1008 TALLOC_CTX
*_mem_save_drivername_0
;
1009 uint32_t _ptr_comment
;
1010 TALLOC_CTX
*_mem_save_comment_0
;
1011 uint32_t _ptr_location
;
1012 TALLOC_CTX
*_mem_save_location_0
;
1013 uint32_t _ptr_devmode
;
1014 TALLOC_CTX
*_mem_save_devmode_0
;
1015 uint32_t _ptr_sepfile
;
1016 TALLOC_CTX
*_mem_save_sepfile_0
;
1017 uint32_t _ptr_printprocessor
;
1018 TALLOC_CTX
*_mem_save_printprocessor_0
;
1019 uint32_t _ptr_datatype
;
1020 TALLOC_CTX
*_mem_save_datatype_0
;
1021 uint32_t _ptr_parameters
;
1022 TALLOC_CTX
*_mem_save_parameters_0
;
1023 uint32_t _ptr_secdesc
;
1024 TALLOC_CTX
*_mem_save_secdesc_0
;
1025 if (ndr_flags
& NDR_SCALARS
) {
1026 NDR_CHECK(ndr_pull_align(ndr
, 4));
1028 uint32_t _flags_save_string
= ndr
->flags
;
1029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1031 if (_ptr_servername
) {
1032 NDR_PULL_ALLOC(ndr
, r
->servername
);
1033 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1035 r
->servername
= NULL
;
1037 ndr
->flags
= _flags_save_string
;
1040 uint32_t _flags_save_string
= ndr
->flags
;
1041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1043 if (_ptr_printername
) {
1044 NDR_PULL_ALLOC(ndr
, r
->printername
);
1045 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1047 r
->printername
= NULL
;
1049 ndr
->flags
= _flags_save_string
;
1052 uint32_t _flags_save_string
= ndr
->flags
;
1053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1055 if (_ptr_sharename
) {
1056 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1057 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1059 r
->sharename
= NULL
;
1061 ndr
->flags
= _flags_save_string
;
1064 uint32_t _flags_save_string
= ndr
->flags
;
1065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1066 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1067 if (_ptr_portname
) {
1068 NDR_PULL_ALLOC(ndr
, r
->portname
);
1069 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1073 ndr
->flags
= _flags_save_string
;
1076 uint32_t _flags_save_string
= ndr
->flags
;
1077 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1079 if (_ptr_drivername
) {
1080 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1081 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1083 r
->drivername
= NULL
;
1085 ndr
->flags
= _flags_save_string
;
1088 uint32_t _flags_save_string
= ndr
->flags
;
1089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1092 NDR_PULL_ALLOC(ndr
, r
->comment
);
1093 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1097 ndr
->flags
= _flags_save_string
;
1100 uint32_t _flags_save_string
= ndr
->flags
;
1101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1103 if (_ptr_location
) {
1104 NDR_PULL_ALLOC(ndr
, r
->location
);
1105 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1109 ndr
->flags
= _flags_save_string
;
1112 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1114 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1116 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1117 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1121 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1124 uint32_t _flags_save_string
= ndr
->flags
;
1125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1128 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1129 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1133 ndr
->flags
= _flags_save_string
;
1136 uint32_t _flags_save_string
= ndr
->flags
;
1137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1139 if (_ptr_printprocessor
) {
1140 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1141 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1143 r
->printprocessor
= NULL
;
1145 ndr
->flags
= _flags_save_string
;
1148 uint32_t _flags_save_string
= ndr
->flags
;
1149 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1150 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1151 if (_ptr_datatype
) {
1152 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1153 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1157 ndr
->flags
= _flags_save_string
;
1160 uint32_t _flags_save_string
= ndr
->flags
;
1161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1162 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1163 if (_ptr_parameters
) {
1164 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1165 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1167 r
->parameters
= NULL
;
1169 ndr
->flags
= _flags_save_string
;
1172 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1176 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1177 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1181 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1183 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1185 if (r
->priority
> 99) {
1186 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1191 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1195 if (ndr_flags
& NDR_BUFFERS
) {
1197 uint32_t _flags_save_string
= ndr
->flags
;
1198 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1199 if (r
->servername
) {
1200 uint32_t _relative_save_offset
;
1201 _relative_save_offset
= ndr
->offset
;
1202 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1203 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1204 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1205 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1207 ndr
->offset
= _relative_save_offset
;
1209 ndr
->flags
= _flags_save_string
;
1212 uint32_t _flags_save_string
= ndr
->flags
;
1213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1214 if (r
->printername
) {
1215 uint32_t _relative_save_offset
;
1216 _relative_save_offset
= ndr
->offset
;
1217 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1218 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1219 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1220 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1222 ndr
->offset
= _relative_save_offset
;
1224 ndr
->flags
= _flags_save_string
;
1227 uint32_t _flags_save_string
= ndr
->flags
;
1228 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1230 uint32_t _relative_save_offset
;
1231 _relative_save_offset
= ndr
->offset
;
1232 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1233 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1234 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1235 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1237 ndr
->offset
= _relative_save_offset
;
1239 ndr
->flags
= _flags_save_string
;
1242 uint32_t _flags_save_string
= ndr
->flags
;
1243 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1245 uint32_t _relative_save_offset
;
1246 _relative_save_offset
= ndr
->offset
;
1247 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1248 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1249 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1250 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1252 ndr
->offset
= _relative_save_offset
;
1254 ndr
->flags
= _flags_save_string
;
1257 uint32_t _flags_save_string
= ndr
->flags
;
1258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1259 if (r
->drivername
) {
1260 uint32_t _relative_save_offset
;
1261 _relative_save_offset
= ndr
->offset
;
1262 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1263 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1264 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1265 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1266 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1267 ndr
->offset
= _relative_save_offset
;
1269 ndr
->flags
= _flags_save_string
;
1272 uint32_t _flags_save_string
= ndr
->flags
;
1273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1275 uint32_t _relative_save_offset
;
1276 _relative_save_offset
= ndr
->offset
;
1277 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1278 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1279 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1280 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1282 ndr
->offset
= _relative_save_offset
;
1284 ndr
->flags
= _flags_save_string
;
1287 uint32_t _flags_save_string
= ndr
->flags
;
1288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1290 uint32_t _relative_save_offset
;
1291 _relative_save_offset
= ndr
->offset
;
1292 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1293 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1294 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1295 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1296 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1297 ndr
->offset
= _relative_save_offset
;
1299 ndr
->flags
= _flags_save_string
;
1302 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1305 uint32_t _relative_save_offset
;
1306 _relative_save_offset
= ndr
->offset
;
1307 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1308 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1309 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1311 struct ndr_pull
*_ndr_devmode
;
1312 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1313 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1314 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1317 ndr
->offset
= _relative_save_offset
;
1319 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1322 uint32_t _flags_save_string
= ndr
->flags
;
1323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1325 uint32_t _relative_save_offset
;
1326 _relative_save_offset
= ndr
->offset
;
1327 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1328 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1329 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1330 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1332 ndr
->offset
= _relative_save_offset
;
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 if (r
->printprocessor
) {
1340 uint32_t _relative_save_offset
;
1341 _relative_save_offset
= ndr
->offset
;
1342 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1343 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1344 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1347 ndr
->offset
= _relative_save_offset
;
1349 ndr
->flags
= _flags_save_string
;
1352 uint32_t _flags_save_string
= ndr
->flags
;
1353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1355 uint32_t _relative_save_offset
;
1356 _relative_save_offset
= ndr
->offset
;
1357 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1358 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1359 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1360 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1362 ndr
->offset
= _relative_save_offset
;
1364 ndr
->flags
= _flags_save_string
;
1367 uint32_t _flags_save_string
= ndr
->flags
;
1368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1369 if (r
->parameters
) {
1370 uint32_t _relative_save_offset
;
1371 _relative_save_offset
= ndr
->offset
;
1372 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1373 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1374 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1375 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1377 ndr
->offset
= _relative_save_offset
;
1379 ndr
->flags
= _flags_save_string
;
1382 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1385 uint32_t _relative_save_offset
;
1386 _relative_save_offset
= ndr
->offset
;
1387 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1388 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1389 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1391 struct ndr_pull
*_ndr_secdesc
;
1392 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1393 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1394 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1397 ndr
->offset
= _relative_save_offset
;
1399 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1402 return NDR_ERR_SUCCESS
;
1405 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1407 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1409 ndr_print_ptr(ndr
, "servername", r
->servername
);
1411 if (r
->servername
) {
1412 ndr_print_string(ndr
, "servername", r
->servername
);
1415 ndr_print_ptr(ndr
, "printername", r
->printername
);
1417 if (r
->printername
) {
1418 ndr_print_string(ndr
, "printername", r
->printername
);
1421 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1424 ndr_print_string(ndr
, "sharename", r
->sharename
);
1427 ndr_print_ptr(ndr
, "portname", r
->portname
);
1430 ndr_print_string(ndr
, "portname", r
->portname
);
1433 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1435 if (r
->drivername
) {
1436 ndr_print_string(ndr
, "drivername", r
->drivername
);
1439 ndr_print_ptr(ndr
, "comment", r
->comment
);
1442 ndr_print_string(ndr
, "comment", r
->comment
);
1445 ndr_print_ptr(ndr
, "location", r
->location
);
1448 ndr_print_string(ndr
, "location", r
->location
);
1451 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1454 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1457 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1460 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1463 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1465 if (r
->printprocessor
) {
1466 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1469 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1472 ndr_print_string(ndr
, "datatype", r
->datatype
);
1475 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1477 if (r
->parameters
) {
1478 ndr_print_string(ndr
, "parameters", r
->parameters
);
1481 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1484 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1487 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1488 ndr_print_uint32(ndr
, "priority", r
->priority
);
1489 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1490 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1491 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1492 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1493 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1494 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1498 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1500 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
1503 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1505 if (ndr_flags
& NDR_SCALARS
) {
1506 NDR_CHECK(ndr_push_align(ndr
, 4));
1508 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1511 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1514 if (ndr_flags
& NDR_BUFFERS
) {
1516 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1519 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
1521 struct ndr_push
*_ndr_secdesc
;
1522 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1523 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1524 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1526 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
1528 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1531 return NDR_ERR_SUCCESS
;
1534 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1536 uint32_t _ptr_secdesc
;
1537 TALLOC_CTX
*_mem_save_secdesc_0
;
1538 if (ndr_flags
& NDR_SCALARS
) {
1539 NDR_CHECK(ndr_pull_align(ndr
, 4));
1541 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1543 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1545 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1546 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1550 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1553 if (ndr_flags
& NDR_BUFFERS
) {
1555 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1558 uint32_t _relative_save_offset
;
1559 _relative_save_offset
= ndr
->offset
;
1560 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1561 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1562 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1564 struct ndr_pull
*_ndr_secdesc
;
1565 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1566 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1567 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1570 ndr
->offset
= _relative_save_offset
;
1572 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1575 return NDR_ERR_SUCCESS
;
1578 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1580 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1582 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1585 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1591 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1593 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
1596 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1598 if (ndr_flags
& NDR_SCALARS
) {
1599 NDR_CHECK(ndr_push_align(ndr
, 4));
1601 uint32_t _flags_save_string
= ndr
->flags
;
1602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1603 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1604 ndr
->flags
= _flags_save_string
;
1607 uint32_t _flags_save_string
= ndr
->flags
;
1608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1609 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1610 ndr
->flags
= _flags_save_string
;
1612 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1614 if (ndr_flags
& NDR_BUFFERS
) {
1616 uint32_t _flags_save_string
= ndr
->flags
;
1617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1618 if (r
->printername
) {
1619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
1620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
1623 ndr
->flags
= _flags_save_string
;
1626 uint32_t _flags_save_string
= ndr
->flags
;
1627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1628 if (r
->servername
) {
1629 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
1630 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1631 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
1633 ndr
->flags
= _flags_save_string
;
1636 return NDR_ERR_SUCCESS
;
1639 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1641 uint32_t _ptr_printername
;
1642 TALLOC_CTX
*_mem_save_printername_0
;
1643 uint32_t _ptr_servername
;
1644 TALLOC_CTX
*_mem_save_servername_0
;
1645 if (ndr_flags
& NDR_SCALARS
) {
1646 NDR_CHECK(ndr_pull_align(ndr
, 4));
1648 uint32_t _flags_save_string
= ndr
->flags
;
1649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1651 if (_ptr_printername
) {
1652 NDR_PULL_ALLOC(ndr
, r
->printername
);
1653 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1655 r
->printername
= NULL
;
1657 ndr
->flags
= _flags_save_string
;
1660 uint32_t _flags_save_string
= ndr
->flags
;
1661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1663 if (_ptr_servername
) {
1664 NDR_PULL_ALLOC(ndr
, r
->servername
);
1665 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1667 r
->servername
= NULL
;
1669 ndr
->flags
= _flags_save_string
;
1671 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1673 if (ndr_flags
& NDR_BUFFERS
) {
1675 uint32_t _flags_save_string
= ndr
->flags
;
1676 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1677 if (r
->printername
) {
1678 uint32_t _relative_save_offset
;
1679 _relative_save_offset
= ndr
->offset
;
1680 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1681 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1682 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1683 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1685 ndr
->offset
= _relative_save_offset
;
1687 ndr
->flags
= _flags_save_string
;
1690 uint32_t _flags_save_string
= ndr
->flags
;
1691 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1692 if (r
->servername
) {
1693 uint32_t _relative_save_offset
;
1694 _relative_save_offset
= ndr
->offset
;
1695 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1696 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1697 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1698 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1700 ndr
->offset
= _relative_save_offset
;
1702 ndr
->flags
= _flags_save_string
;
1705 return NDR_ERR_SUCCESS
;
1708 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1710 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1712 ndr_print_ptr(ndr
, "printername", r
->printername
);
1714 if (r
->printername
) {
1715 ndr_print_string(ndr
, "printername", r
->printername
);
1718 ndr_print_ptr(ndr
, "servername", r
->servername
);
1720 if (r
->servername
) {
1721 ndr_print_string(ndr
, "servername", r
->servername
);
1724 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1728 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1730 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
1733 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1735 if (ndr_flags
& NDR_SCALARS
) {
1736 NDR_CHECK(ndr_push_align(ndr
, 4));
1738 uint32_t _flags_save_string
= ndr
->flags
;
1739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1740 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1741 ndr
->flags
= _flags_save_string
;
1744 uint32_t _flags_save_string
= ndr
->flags
;
1745 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1746 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1747 ndr
->flags
= _flags_save_string
;
1749 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1753 if (ndr_flags
& NDR_BUFFERS
) {
1755 uint32_t _flags_save_string
= ndr
->flags
;
1756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1757 if (r
->printername
) {
1758 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
1759 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1760 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
1762 ndr
->flags
= _flags_save_string
;
1765 uint32_t _flags_save_string
= ndr
->flags
;
1766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1768 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->portname
));
1769 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1770 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->portname
));
1772 ndr
->flags
= _flags_save_string
;
1775 return NDR_ERR_SUCCESS
;
1778 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1780 uint32_t _ptr_printername
;
1781 TALLOC_CTX
*_mem_save_printername_0
;
1782 uint32_t _ptr_portname
;
1783 TALLOC_CTX
*_mem_save_portname_0
;
1784 if (ndr_flags
& NDR_SCALARS
) {
1785 NDR_CHECK(ndr_pull_align(ndr
, 4));
1787 uint32_t _flags_save_string
= ndr
->flags
;
1788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1790 if (_ptr_printername
) {
1791 NDR_PULL_ALLOC(ndr
, r
->printername
);
1792 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1794 r
->printername
= NULL
;
1796 ndr
->flags
= _flags_save_string
;
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_portname
));
1802 if (_ptr_portname
) {
1803 NDR_PULL_ALLOC(ndr
, r
->portname
);
1804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1808 ndr
->flags
= _flags_save_string
;
1810 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1814 if (ndr_flags
& NDR_BUFFERS
) {
1816 uint32_t _flags_save_string
= ndr
->flags
;
1817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1818 if (r
->printername
) {
1819 uint32_t _relative_save_offset
;
1820 _relative_save_offset
= ndr
->offset
;
1821 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1822 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1823 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1824 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1826 ndr
->offset
= _relative_save_offset
;
1828 ndr
->flags
= _flags_save_string
;
1831 uint32_t _flags_save_string
= ndr
->flags
;
1832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1834 uint32_t _relative_save_offset
;
1835 _relative_save_offset
= ndr
->offset
;
1836 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1837 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1838 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1839 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1841 ndr
->offset
= _relative_save_offset
;
1843 ndr
->flags
= _flags_save_string
;
1846 return NDR_ERR_SUCCESS
;
1849 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
1851 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
1853 ndr_print_ptr(ndr
, "printername", r
->printername
);
1855 if (r
->printername
) {
1856 ndr_print_string(ndr
, "printername", r
->printername
);
1859 ndr_print_ptr(ndr
, "portname", r
->portname
);
1862 ndr_print_string(ndr
, "portname", r
->portname
);
1865 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1866 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
1867 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
1871 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1873 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
1876 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
1878 if (ndr_flags
& NDR_SCALARS
) {
1879 NDR_CHECK(ndr_push_align(ndr
, 4));
1880 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1882 if (ndr_flags
& NDR_BUFFERS
) {
1884 return NDR_ERR_SUCCESS
;
1887 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
1889 if (ndr_flags
& NDR_SCALARS
) {
1890 NDR_CHECK(ndr_pull_align(ndr
, 4));
1891 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1893 if (ndr_flags
& NDR_BUFFERS
) {
1895 return NDR_ERR_SUCCESS
;
1898 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
1900 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
1902 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1906 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1908 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
1911 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1914 return NDR_ERR_SUCCESS
;
1917 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1922 return NDR_ERR_SUCCESS
;
1925 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1927 ndr_print_uint32(ndr
, name
, r
);
1929 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
1930 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
1931 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
1932 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
1933 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
1937 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
1939 if (ndr_flags
& NDR_SCALARS
) {
1940 NDR_CHECK(ndr_push_align(ndr
, 4));
1942 uint32_t _flags_save_string
= ndr
->flags
;
1943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1944 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
1945 ndr
->flags
= _flags_save_string
;
1947 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
1949 if (ndr_flags
& NDR_BUFFERS
) {
1951 uint32_t _flags_save_string
= ndr
->flags
;
1952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1954 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->guid
));
1955 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
1956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->guid
));
1958 ndr
->flags
= _flags_save_string
;
1961 return NDR_ERR_SUCCESS
;
1964 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
1967 TALLOC_CTX
*_mem_save_guid_0
;
1968 if (ndr_flags
& NDR_SCALARS
) {
1969 NDR_CHECK(ndr_pull_align(ndr
, 4));
1971 uint32_t _flags_save_string
= ndr
->flags
;
1972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
1975 NDR_PULL_ALLOC(ndr
, r
->guid
);
1976 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
1980 ndr
->flags
= _flags_save_string
;
1982 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
1984 if (ndr_flags
& NDR_BUFFERS
) {
1986 uint32_t _flags_save_string
= ndr
->flags
;
1987 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1989 uint32_t _relative_save_offset
;
1990 _relative_save_offset
= ndr
->offset
;
1991 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
1992 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1993 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
1994 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
1995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
1996 ndr
->offset
= _relative_save_offset
;
1998 ndr
->flags
= _flags_save_string
;
2001 return NDR_ERR_SUCCESS
;
2004 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2006 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2008 ndr_print_ptr(ndr
, "guid", r
->guid
);
2011 ndr_print_string(ndr
, "guid", r
->guid
);
2014 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2018 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2020 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2023 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2025 if (ndr_flags
& NDR_SCALARS
) {
2026 NDR_CHECK(ndr_push_align(ndr
, 4));
2028 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2030 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2031 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2034 if (ndr_flags
& NDR_BUFFERS
) {
2036 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2039 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
2041 struct ndr_push
*_ndr_devmode
;
2042 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2043 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2044 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2046 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
2048 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2051 return NDR_ERR_SUCCESS
;
2054 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2056 uint32_t _ptr_devmode
;
2057 TALLOC_CTX
*_mem_save_devmode_0
;
2058 if (ndr_flags
& NDR_SCALARS
) {
2059 NDR_CHECK(ndr_pull_align(ndr
, 4));
2061 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2065 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2066 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2070 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2073 if (ndr_flags
& NDR_BUFFERS
) {
2075 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2078 uint32_t _relative_save_offset
;
2079 _relative_save_offset
= ndr
->offset
;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2081 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2082 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2084 struct ndr_pull
*_ndr_devmode
;
2085 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2086 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2087 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2089 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2090 ndr
->offset
= _relative_save_offset
;
2092 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2095 return NDR_ERR_SUCCESS
;
2098 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2100 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2102 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2105 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2111 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2113 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2115 uint32_t _flags_save_UNION
= ndr
->flags
;
2116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2117 if (ndr_flags
& NDR_SCALARS
) {
2118 int level
= ndr_push_get_switch_value(ndr
, r
);
2121 NDR_CHECK(ndr_push_align(ndr
, 4));
2122 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2123 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2127 NDR_CHECK(ndr_push_align(ndr
, 4));
2128 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2129 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2133 NDR_CHECK(ndr_push_align(ndr
, 4));
2134 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2135 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2139 NDR_CHECK(ndr_push_align(ndr
, 4));
2140 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2141 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2145 NDR_CHECK(ndr_push_align(ndr
, 4));
2146 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2147 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2151 NDR_CHECK(ndr_push_align(ndr
, 4));
2152 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2153 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2157 NDR_CHECK(ndr_push_align(ndr
, 4));
2158 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2159 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2163 NDR_CHECK(ndr_push_align(ndr
, 4));
2164 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2165 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2169 NDR_CHECK(ndr_push_align(ndr
, 4));
2170 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2171 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2175 NDR_CHECK(ndr_push_align(ndr
, 4));
2176 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2177 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2185 if (ndr_flags
& NDR_BUFFERS
) {
2186 int level
= ndr_push_get_switch_value(ndr
, r
);
2187 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2190 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2198 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2202 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2210 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2217 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2221 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2225 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2233 ndr
->flags
= _flags_save_UNION
;
2235 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2236 return NDR_ERR_SUCCESS
;
2239 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2241 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2244 uint32_t _flags_save_UNION
= ndr
->flags
;
2245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2246 level
= ndr_pull_get_switch_value(ndr
, r
);
2247 if (ndr_flags
& NDR_SCALARS
) {
2250 NDR_CHECK(ndr_pull_align(ndr
, 4));
2251 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2252 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2256 NDR_CHECK(ndr_pull_align(ndr
, 4));
2257 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2258 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2262 NDR_CHECK(ndr_pull_align(ndr
, 4));
2263 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2264 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2268 NDR_CHECK(ndr_pull_align(ndr
, 4));
2269 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2270 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2274 NDR_CHECK(ndr_pull_align(ndr
, 4));
2275 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2276 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2280 NDR_CHECK(ndr_pull_align(ndr
, 4));
2281 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2282 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2286 NDR_CHECK(ndr_pull_align(ndr
, 4));
2287 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2288 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2292 NDR_CHECK(ndr_pull_align(ndr
, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2298 NDR_CHECK(ndr_pull_align(ndr
, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2300 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2304 NDR_CHECK(ndr_pull_align(ndr
, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2306 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2314 if (ndr_flags
& NDR_BUFFERS
) {
2315 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2322 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2326 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2338 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2345 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2349 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2353 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2361 ndr
->flags
= _flags_save_UNION
;
2363 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2364 return NDR_ERR_SUCCESS
;
2367 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2371 uint32_t _flags_save_UNION
= ndr
->flags
;
2372 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2373 level
= ndr_print_get_switch_value(ndr
, r
);
2374 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2377 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2381 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2385 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2389 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2393 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2397 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2401 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2405 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2409 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2413 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2420 ndr
->flags
= _flags_save_UNION
;
2424 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
2426 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
2427 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
2430 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2432 if (ndr_flags
& NDR_SCALARS
) {
2433 NDR_CHECK(ndr_push_align(ndr
, 4));
2434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2435 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2437 if (ndr_flags
& NDR_BUFFERS
) {
2440 struct ndr_push
*_ndr_devmode
;
2441 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2442 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2443 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2447 return NDR_ERR_SUCCESS
;
2450 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2452 uint32_t _ptr_devmode
;
2453 TALLOC_CTX
*_mem_save_devmode_0
;
2454 if (ndr_flags
& NDR_SCALARS
) {
2455 NDR_CHECK(ndr_pull_align(ndr
, 4));
2456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2459 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2464 if (ndr_flags
& NDR_BUFFERS
) {
2466 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2467 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2469 struct ndr_pull
*_ndr_devmode
;
2470 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2471 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2472 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2477 return NDR_ERR_SUCCESS
;
2480 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2482 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2484 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
);
2485 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2488 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2494 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2496 if (ndr_flags
& NDR_SCALARS
) {
2497 NDR_CHECK(ndr_push_align(ndr
, 4));
2498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2500 uint32_t _flags_save_string
= ndr
->flags
;
2501 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2502 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2503 ndr
->flags
= _flags_save_string
;
2506 uint32_t _flags_save_string
= ndr
->flags
;
2507 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2508 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2509 ndr
->flags
= _flags_save_string
;
2512 uint32_t _flags_save_string
= ndr
->flags
;
2513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2514 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2515 ndr
->flags
= _flags_save_string
;
2518 uint32_t _flags_save_string
= ndr
->flags
;
2519 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2520 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2521 ndr
->flags
= _flags_save_string
;
2524 uint32_t _flags_save_string
= ndr
->flags
;
2525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2526 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2527 ndr
->flags
= _flags_save_string
;
2530 uint32_t _flags_save_string
= ndr
->flags
;
2531 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2532 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2533 ndr
->flags
= _flags_save_string
;
2535 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2540 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2542 if (ndr_flags
& NDR_BUFFERS
) {
2544 uint32_t _flags_save_string
= ndr
->flags
;
2545 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2546 if (r
->printer_name
) {
2547 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
2548 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2549 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
2551 ndr
->flags
= _flags_save_string
;
2554 uint32_t _flags_save_string
= ndr
->flags
;
2555 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2556 if (r
->server_name
) {
2557 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
2558 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2559 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
2561 ndr
->flags
= _flags_save_string
;
2564 uint32_t _flags_save_string
= ndr
->flags
;
2565 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2567 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
2568 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2569 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
2571 ndr
->flags
= _flags_save_string
;
2574 uint32_t _flags_save_string
= ndr
->flags
;
2575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2576 if (r
->document_name
) {
2577 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
2578 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2579 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
2581 ndr
->flags
= _flags_save_string
;
2584 uint32_t _flags_save_string
= ndr
->flags
;
2585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2587 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
2588 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2589 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
2591 ndr
->flags
= _flags_save_string
;
2594 uint32_t _flags_save_string
= ndr
->flags
;
2595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2596 if (r
->text_status
) {
2597 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
2598 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2599 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
2601 ndr
->flags
= _flags_save_string
;
2604 return NDR_ERR_SUCCESS
;
2607 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2609 uint32_t _ptr_printer_name
;
2610 TALLOC_CTX
*_mem_save_printer_name_0
;
2611 uint32_t _ptr_server_name
;
2612 TALLOC_CTX
*_mem_save_server_name_0
;
2613 uint32_t _ptr_user_name
;
2614 TALLOC_CTX
*_mem_save_user_name_0
;
2615 uint32_t _ptr_document_name
;
2616 TALLOC_CTX
*_mem_save_document_name_0
;
2617 uint32_t _ptr_data_type
;
2618 TALLOC_CTX
*_mem_save_data_type_0
;
2619 uint32_t _ptr_text_status
;
2620 TALLOC_CTX
*_mem_save_text_status_0
;
2621 if (ndr_flags
& NDR_SCALARS
) {
2622 NDR_CHECK(ndr_pull_align(ndr
, 4));
2623 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2628 if (_ptr_printer_name
) {
2629 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2630 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2632 r
->printer_name
= NULL
;
2634 ndr
->flags
= _flags_save_string
;
2637 uint32_t _flags_save_string
= ndr
->flags
;
2638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2640 if (_ptr_server_name
) {
2641 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2642 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2644 r
->server_name
= NULL
;
2646 ndr
->flags
= _flags_save_string
;
2649 uint32_t _flags_save_string
= ndr
->flags
;
2650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2652 if (_ptr_user_name
) {
2653 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2654 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2656 r
->user_name
= NULL
;
2658 ndr
->flags
= _flags_save_string
;
2661 uint32_t _flags_save_string
= ndr
->flags
;
2662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2664 if (_ptr_document_name
) {
2665 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2666 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2668 r
->document_name
= NULL
;
2670 ndr
->flags
= _flags_save_string
;
2673 uint32_t _flags_save_string
= ndr
->flags
;
2674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2676 if (_ptr_data_type
) {
2677 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2678 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2680 r
->data_type
= NULL
;
2682 ndr
->flags
= _flags_save_string
;
2685 uint32_t _flags_save_string
= ndr
->flags
;
2686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2688 if (_ptr_text_status
) {
2689 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2690 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2692 r
->text_status
= NULL
;
2694 ndr
->flags
= _flags_save_string
;
2696 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2698 if (r
->priority
> 99) {
2699 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2701 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2702 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2704 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2706 if (ndr_flags
& NDR_BUFFERS
) {
2708 uint32_t _flags_save_string
= ndr
->flags
;
2709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2710 if (r
->printer_name
) {
2711 uint32_t _relative_save_offset
;
2712 _relative_save_offset
= ndr
->offset
;
2713 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2714 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2715 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2716 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2718 ndr
->offset
= _relative_save_offset
;
2720 ndr
->flags
= _flags_save_string
;
2723 uint32_t _flags_save_string
= ndr
->flags
;
2724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2725 if (r
->server_name
) {
2726 uint32_t _relative_save_offset
;
2727 _relative_save_offset
= ndr
->offset
;
2728 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2729 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2730 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2731 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2733 ndr
->offset
= _relative_save_offset
;
2735 ndr
->flags
= _flags_save_string
;
2738 uint32_t _flags_save_string
= ndr
->flags
;
2739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2741 uint32_t _relative_save_offset
;
2742 _relative_save_offset
= ndr
->offset
;
2743 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2744 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2745 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2746 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2748 ndr
->offset
= _relative_save_offset
;
2750 ndr
->flags
= _flags_save_string
;
2753 uint32_t _flags_save_string
= ndr
->flags
;
2754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2755 if (r
->document_name
) {
2756 uint32_t _relative_save_offset
;
2757 _relative_save_offset
= ndr
->offset
;
2758 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2759 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2760 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2763 ndr
->offset
= _relative_save_offset
;
2765 ndr
->flags
= _flags_save_string
;
2768 uint32_t _flags_save_string
= ndr
->flags
;
2769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2771 uint32_t _relative_save_offset
;
2772 _relative_save_offset
= ndr
->offset
;
2773 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2774 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2775 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2776 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2778 ndr
->offset
= _relative_save_offset
;
2780 ndr
->flags
= _flags_save_string
;
2783 uint32_t _flags_save_string
= ndr
->flags
;
2784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2785 if (r
->text_status
) {
2786 uint32_t _relative_save_offset
;
2787 _relative_save_offset
= ndr
->offset
;
2788 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2789 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2790 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2791 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2793 ndr
->offset
= _relative_save_offset
;
2795 ndr
->flags
= _flags_save_string
;
2798 return NDR_ERR_SUCCESS
;
2801 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2803 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2805 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2806 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2808 if (r
->printer_name
) {
2809 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2812 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2814 if (r
->server_name
) {
2815 ndr_print_string(ndr
, "server_name", r
->server_name
);
2818 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2821 ndr_print_string(ndr
, "user_name", r
->user_name
);
2824 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2826 if (r
->document_name
) {
2827 ndr_print_string(ndr
, "document_name", r
->document_name
);
2830 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2833 ndr_print_string(ndr
, "data_type", r
->data_type
);
2836 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2838 if (r
->text_status
) {
2839 ndr_print_string(ndr
, "text_status", r
->text_status
);
2842 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2843 ndr_print_uint32(ndr
, "priority", r
->priority
);
2844 ndr_print_uint32(ndr
, "position", r
->position
);
2845 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2846 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2847 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2851 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2853 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
2856 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2858 if (ndr_flags
& NDR_SCALARS
) {
2859 NDR_CHECK(ndr_push_align(ndr
, 4));
2860 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2862 uint32_t _flags_save_string
= ndr
->flags
;
2863 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2864 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2865 ndr
->flags
= _flags_save_string
;
2868 uint32_t _flags_save_string
= ndr
->flags
;
2869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2870 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2871 ndr
->flags
= _flags_save_string
;
2874 uint32_t _flags_save_string
= ndr
->flags
;
2875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2876 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2877 ndr
->flags
= _flags_save_string
;
2880 uint32_t _flags_save_string
= ndr
->flags
;
2881 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2882 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2883 ndr
->flags
= _flags_save_string
;
2886 uint32_t _flags_save_string
= ndr
->flags
;
2887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2888 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2889 ndr
->flags
= _flags_save_string
;
2892 uint32_t _flags_save_string
= ndr
->flags
;
2893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2894 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2895 ndr
->flags
= _flags_save_string
;
2898 uint32_t _flags_save_string
= ndr
->flags
;
2899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2900 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
2901 ndr
->flags
= _flags_save_string
;
2904 uint32_t _flags_save_string
= ndr
->flags
;
2905 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2906 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
2907 ndr
->flags
= _flags_save_string
;
2910 uint32_t _flags_save_string
= ndr
->flags
;
2911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2912 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
2913 ndr
->flags
= _flags_save_string
;
2916 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2918 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2919 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2922 uint32_t _flags_save_string
= ndr
->flags
;
2923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2924 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2925 ndr
->flags
= _flags_save_string
;
2928 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2930 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2931 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2933 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
2937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
2938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
2940 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
2942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2944 if (ndr_flags
& NDR_BUFFERS
) {
2946 uint32_t _flags_save_string
= ndr
->flags
;
2947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2948 if (r
->printer_name
) {
2949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
2950 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2951 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
2953 ndr
->flags
= _flags_save_string
;
2956 uint32_t _flags_save_string
= ndr
->flags
;
2957 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2958 if (r
->server_name
) {
2959 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
2960 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2961 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
2963 ndr
->flags
= _flags_save_string
;
2966 uint32_t _flags_save_string
= ndr
->flags
;
2967 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2969 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
2970 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2971 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
2973 ndr
->flags
= _flags_save_string
;
2976 uint32_t _flags_save_string
= ndr
->flags
;
2977 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2978 if (r
->document_name
) {
2979 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
2980 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2981 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
2983 ndr
->flags
= _flags_save_string
;
2986 uint32_t _flags_save_string
= ndr
->flags
;
2987 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2988 if (r
->notify_name
) {
2989 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
2990 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
2991 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
2993 ndr
->flags
= _flags_save_string
;
2996 uint32_t _flags_save_string
= ndr
->flags
;
2997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2999 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3000 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3001 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3003 ndr
->flags
= _flags_save_string
;
3006 uint32_t _flags_save_string
= ndr
->flags
;
3007 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3008 if (r
->print_processor
) {
3009 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
3010 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3011 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
3013 ndr
->flags
= _flags_save_string
;
3016 uint32_t _flags_save_string
= ndr
->flags
;
3017 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3018 if (r
->parameters
) {
3019 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
3020 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3021 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
3023 ndr
->flags
= _flags_save_string
;
3026 uint32_t _flags_save_string
= ndr
->flags
;
3027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3028 if (r
->driver_name
) {
3029 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
3030 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3031 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
3033 ndr
->flags
= _flags_save_string
;
3036 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3039 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
3041 struct ndr_push
*_ndr_devmode
;
3042 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3043 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3044 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3046 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
3048 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3051 uint32_t _flags_save_string
= ndr
->flags
;
3052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3053 if (r
->text_status
) {
3054 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3055 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3056 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3058 ndr
->flags
= _flags_save_string
;
3061 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3064 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
3066 struct ndr_push
*_ndr_secdesc
;
3067 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3068 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3069 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3071 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
3073 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3076 return NDR_ERR_SUCCESS
;
3079 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3081 uint32_t _ptr_printer_name
;
3082 TALLOC_CTX
*_mem_save_printer_name_0
;
3083 uint32_t _ptr_server_name
;
3084 TALLOC_CTX
*_mem_save_server_name_0
;
3085 uint32_t _ptr_user_name
;
3086 TALLOC_CTX
*_mem_save_user_name_0
;
3087 uint32_t _ptr_document_name
;
3088 TALLOC_CTX
*_mem_save_document_name_0
;
3089 uint32_t _ptr_notify_name
;
3090 TALLOC_CTX
*_mem_save_notify_name_0
;
3091 uint32_t _ptr_data_type
;
3092 TALLOC_CTX
*_mem_save_data_type_0
;
3093 uint32_t _ptr_print_processor
;
3094 TALLOC_CTX
*_mem_save_print_processor_0
;
3095 uint32_t _ptr_parameters
;
3096 TALLOC_CTX
*_mem_save_parameters_0
;
3097 uint32_t _ptr_driver_name
;
3098 TALLOC_CTX
*_mem_save_driver_name_0
;
3099 uint32_t _ptr_devmode
;
3100 TALLOC_CTX
*_mem_save_devmode_0
;
3101 uint32_t _ptr_text_status
;
3102 TALLOC_CTX
*_mem_save_text_status_0
;
3103 uint32_t _ptr_secdesc
;
3104 TALLOC_CTX
*_mem_save_secdesc_0
;
3105 if (ndr_flags
& NDR_SCALARS
) {
3106 NDR_CHECK(ndr_pull_align(ndr
, 4));
3107 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3109 uint32_t _flags_save_string
= ndr
->flags
;
3110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3112 if (_ptr_printer_name
) {
3113 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3114 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3116 r
->printer_name
= NULL
;
3118 ndr
->flags
= _flags_save_string
;
3121 uint32_t _flags_save_string
= ndr
->flags
;
3122 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3124 if (_ptr_server_name
) {
3125 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3126 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3128 r
->server_name
= NULL
;
3130 ndr
->flags
= _flags_save_string
;
3133 uint32_t _flags_save_string
= ndr
->flags
;
3134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3136 if (_ptr_user_name
) {
3137 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3138 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3140 r
->user_name
= NULL
;
3142 ndr
->flags
= _flags_save_string
;
3145 uint32_t _flags_save_string
= ndr
->flags
;
3146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3148 if (_ptr_document_name
) {
3149 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3150 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3152 r
->document_name
= NULL
;
3154 ndr
->flags
= _flags_save_string
;
3157 uint32_t _flags_save_string
= ndr
->flags
;
3158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3160 if (_ptr_notify_name
) {
3161 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3162 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3164 r
->notify_name
= NULL
;
3166 ndr
->flags
= _flags_save_string
;
3169 uint32_t _flags_save_string
= ndr
->flags
;
3170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3172 if (_ptr_data_type
) {
3173 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3174 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3176 r
->data_type
= NULL
;
3178 ndr
->flags
= _flags_save_string
;
3181 uint32_t _flags_save_string
= ndr
->flags
;
3182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3184 if (_ptr_print_processor
) {
3185 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3186 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3188 r
->print_processor
= NULL
;
3190 ndr
->flags
= _flags_save_string
;
3193 uint32_t _flags_save_string
= ndr
->flags
;
3194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3196 if (_ptr_parameters
) {
3197 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3198 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3200 r
->parameters
= NULL
;
3202 ndr
->flags
= _flags_save_string
;
3205 uint32_t _flags_save_string
= ndr
->flags
;
3206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3208 if (_ptr_driver_name
) {
3209 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3210 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3212 r
->driver_name
= NULL
;
3214 ndr
->flags
= _flags_save_string
;
3217 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3221 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3222 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3226 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3229 uint32_t _flags_save_string
= ndr
->flags
;
3230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3232 if (_ptr_text_status
) {
3233 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3234 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3236 r
->text_status
= NULL
;
3238 ndr
->flags
= _flags_save_string
;
3241 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3243 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3245 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3246 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3250 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3252 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3254 if (r
->priority
> 99) {
3255 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3262 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3263 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3266 if (ndr_flags
& NDR_BUFFERS
) {
3268 uint32_t _flags_save_string
= ndr
->flags
;
3269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3270 if (r
->printer_name
) {
3271 uint32_t _relative_save_offset
;
3272 _relative_save_offset
= ndr
->offset
;
3273 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3274 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3275 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3276 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3278 ndr
->offset
= _relative_save_offset
;
3280 ndr
->flags
= _flags_save_string
;
3283 uint32_t _flags_save_string
= ndr
->flags
;
3284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3285 if (r
->server_name
) {
3286 uint32_t _relative_save_offset
;
3287 _relative_save_offset
= ndr
->offset
;
3288 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3289 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3290 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3291 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3293 ndr
->offset
= _relative_save_offset
;
3295 ndr
->flags
= _flags_save_string
;
3298 uint32_t _flags_save_string
= ndr
->flags
;
3299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3301 uint32_t _relative_save_offset
;
3302 _relative_save_offset
= ndr
->offset
;
3303 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3304 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3305 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3306 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3307 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3308 ndr
->offset
= _relative_save_offset
;
3310 ndr
->flags
= _flags_save_string
;
3313 uint32_t _flags_save_string
= ndr
->flags
;
3314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3315 if (r
->document_name
) {
3316 uint32_t _relative_save_offset
;
3317 _relative_save_offset
= ndr
->offset
;
3318 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3319 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3320 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3321 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3323 ndr
->offset
= _relative_save_offset
;
3325 ndr
->flags
= _flags_save_string
;
3328 uint32_t _flags_save_string
= ndr
->flags
;
3329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3330 if (r
->notify_name
) {
3331 uint32_t _relative_save_offset
;
3332 _relative_save_offset
= ndr
->offset
;
3333 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3334 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3335 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3336 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3338 ndr
->offset
= _relative_save_offset
;
3340 ndr
->flags
= _flags_save_string
;
3343 uint32_t _flags_save_string
= ndr
->flags
;
3344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3346 uint32_t _relative_save_offset
;
3347 _relative_save_offset
= ndr
->offset
;
3348 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3349 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3350 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3351 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3353 ndr
->offset
= _relative_save_offset
;
3355 ndr
->flags
= _flags_save_string
;
3358 uint32_t _flags_save_string
= ndr
->flags
;
3359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3360 if (r
->print_processor
) {
3361 uint32_t _relative_save_offset
;
3362 _relative_save_offset
= ndr
->offset
;
3363 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3364 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3365 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3366 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3368 ndr
->offset
= _relative_save_offset
;
3370 ndr
->flags
= _flags_save_string
;
3373 uint32_t _flags_save_string
= ndr
->flags
;
3374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3375 if (r
->parameters
) {
3376 uint32_t _relative_save_offset
;
3377 _relative_save_offset
= ndr
->offset
;
3378 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3379 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3380 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3381 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3383 ndr
->offset
= _relative_save_offset
;
3385 ndr
->flags
= _flags_save_string
;
3388 uint32_t _flags_save_string
= ndr
->flags
;
3389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3390 if (r
->driver_name
) {
3391 uint32_t _relative_save_offset
;
3392 _relative_save_offset
= ndr
->offset
;
3393 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3394 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3395 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3396 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3398 ndr
->offset
= _relative_save_offset
;
3400 ndr
->flags
= _flags_save_string
;
3403 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3406 uint32_t _relative_save_offset
;
3407 _relative_save_offset
= ndr
->offset
;
3408 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3409 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3410 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3412 struct ndr_pull
*_ndr_devmode
;
3413 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3414 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3415 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3418 ndr
->offset
= _relative_save_offset
;
3420 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3423 uint32_t _flags_save_string
= ndr
->flags
;
3424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3425 if (r
->text_status
) {
3426 uint32_t _relative_save_offset
;
3427 _relative_save_offset
= ndr
->offset
;
3428 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3429 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3430 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3431 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3433 ndr
->offset
= _relative_save_offset
;
3435 ndr
->flags
= _flags_save_string
;
3438 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3441 uint32_t _relative_save_offset
;
3442 _relative_save_offset
= ndr
->offset
;
3443 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3444 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3445 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3447 struct ndr_pull
*_ndr_secdesc
;
3448 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3449 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3450 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3453 ndr
->offset
= _relative_save_offset
;
3455 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3458 return NDR_ERR_SUCCESS
;
3461 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3463 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3465 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3466 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3468 if (r
->printer_name
) {
3469 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3472 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3474 if (r
->server_name
) {
3475 ndr_print_string(ndr
, "server_name", r
->server_name
);
3478 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3481 ndr_print_string(ndr
, "user_name", r
->user_name
);
3484 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3486 if (r
->document_name
) {
3487 ndr_print_string(ndr
, "document_name", r
->document_name
);
3490 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3492 if (r
->notify_name
) {
3493 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3496 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3499 ndr_print_string(ndr
, "data_type", r
->data_type
);
3502 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3504 if (r
->print_processor
) {
3505 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3508 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3510 if (r
->parameters
) {
3511 ndr_print_string(ndr
, "parameters", r
->parameters
);
3514 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3516 if (r
->driver_name
) {
3517 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3520 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3523 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3526 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3528 if (r
->text_status
) {
3529 ndr_print_string(ndr
, "text_status", r
->text_status
);
3532 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3535 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3538 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3539 ndr_print_uint32(ndr
, "priority", r
->priority
);
3540 ndr_print_uint32(ndr
, "position", r
->position
);
3541 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3542 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3543 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3544 ndr_print_uint32(ndr
, "size", r
->size
);
3545 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3546 ndr_print_uint32(ndr
, "time", r
->time
);
3547 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3551 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3553 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
3556 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3558 if (ndr_flags
& NDR_SCALARS
) {
3559 NDR_CHECK(ndr_push_align(ndr
, 4));
3560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3564 if (ndr_flags
& NDR_BUFFERS
) {
3566 return NDR_ERR_SUCCESS
;
3569 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3571 if (ndr_flags
& NDR_SCALARS
) {
3572 NDR_CHECK(ndr_pull_align(ndr
, 4));
3573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3577 if (ndr_flags
& NDR_BUFFERS
) {
3579 return NDR_ERR_SUCCESS
;
3582 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3584 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3586 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3587 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3588 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3592 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3594 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
3597 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3599 if (ndr_flags
& NDR_SCALARS
) {
3600 NDR_CHECK(ndr_push_align(ndr
, 4));
3601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3603 uint32_t _flags_save_string
= ndr
->flags
;
3604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3606 ndr
->flags
= _flags_save_string
;
3609 uint32_t _flags_save_string
= ndr
->flags
;
3610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3612 ndr
->flags
= _flags_save_string
;
3615 uint32_t _flags_save_string
= ndr
->flags
;
3616 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3618 ndr
->flags
= _flags_save_string
;
3621 uint32_t _flags_save_string
= ndr
->flags
;
3622 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3623 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3624 ndr
->flags
= _flags_save_string
;
3627 uint32_t _flags_save_string
= ndr
->flags
;
3628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3629 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3630 ndr
->flags
= _flags_save_string
;
3633 uint32_t _flags_save_string
= ndr
->flags
;
3634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3635 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3636 ndr
->flags
= _flags_save_string
;
3639 uint32_t _flags_save_string
= ndr
->flags
;
3640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3641 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3642 ndr
->flags
= _flags_save_string
;
3645 uint32_t _flags_save_string
= ndr
->flags
;
3646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3647 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3648 ndr
->flags
= _flags_save_string
;
3651 uint32_t _flags_save_string
= ndr
->flags
;
3652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3653 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3654 ndr
->flags
= _flags_save_string
;
3657 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3659 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3660 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3663 uint32_t _flags_save_string
= ndr
->flags
;
3664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3665 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3666 ndr
->flags
= _flags_save_string
;
3669 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3671 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3672 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3674 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3681 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3686 if (ndr_flags
& NDR_BUFFERS
) {
3688 uint32_t _flags_save_string
= ndr
->flags
;
3689 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3690 if (r
->printer_name
) {
3691 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3692 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3693 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3695 ndr
->flags
= _flags_save_string
;
3698 uint32_t _flags_save_string
= ndr
->flags
;
3699 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3700 if (r
->server_name
) {
3701 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3702 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3703 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3705 ndr
->flags
= _flags_save_string
;
3708 uint32_t _flags_save_string
= ndr
->flags
;
3709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3711 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3712 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3713 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3715 ndr
->flags
= _flags_save_string
;
3718 uint32_t _flags_save_string
= ndr
->flags
;
3719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3720 if (r
->document_name
) {
3721 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3722 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3725 ndr
->flags
= _flags_save_string
;
3728 uint32_t _flags_save_string
= ndr
->flags
;
3729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3730 if (r
->notify_name
) {
3731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
3732 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3733 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_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
);
3741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3742 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3743 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3745 ndr
->flags
= _flags_save_string
;
3748 uint32_t _flags_save_string
= ndr
->flags
;
3749 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3750 if (r
->print_processor
) {
3751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
3752 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
3755 ndr
->flags
= _flags_save_string
;
3758 uint32_t _flags_save_string
= ndr
->flags
;
3759 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3760 if (r
->parameters
) {
3761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
3762 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
3765 ndr
->flags
= _flags_save_string
;
3768 uint32_t _flags_save_string
= ndr
->flags
;
3769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3770 if (r
->driver_name
) {
3771 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
3772 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3773 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
3775 ndr
->flags
= _flags_save_string
;
3778 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3781 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
3783 struct ndr_push
*_ndr_devmode
;
3784 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3785 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3786 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3788 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
3790 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3793 uint32_t _flags_save_string
= ndr
->flags
;
3794 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3795 if (r
->text_status
) {
3796 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3797 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3798 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3800 ndr
->flags
= _flags_save_string
;
3803 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3804 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3806 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
3808 struct ndr_push
*_ndr_secdesc
;
3809 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3810 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3811 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
3815 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3818 return NDR_ERR_SUCCESS
;
3821 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3823 uint32_t _ptr_printer_name
;
3824 TALLOC_CTX
*_mem_save_printer_name_0
;
3825 uint32_t _ptr_server_name
;
3826 TALLOC_CTX
*_mem_save_server_name_0
;
3827 uint32_t _ptr_user_name
;
3828 TALLOC_CTX
*_mem_save_user_name_0
;
3829 uint32_t _ptr_document_name
;
3830 TALLOC_CTX
*_mem_save_document_name_0
;
3831 uint32_t _ptr_notify_name
;
3832 TALLOC_CTX
*_mem_save_notify_name_0
;
3833 uint32_t _ptr_data_type
;
3834 TALLOC_CTX
*_mem_save_data_type_0
;
3835 uint32_t _ptr_print_processor
;
3836 TALLOC_CTX
*_mem_save_print_processor_0
;
3837 uint32_t _ptr_parameters
;
3838 TALLOC_CTX
*_mem_save_parameters_0
;
3839 uint32_t _ptr_driver_name
;
3840 TALLOC_CTX
*_mem_save_driver_name_0
;
3841 uint32_t _ptr_devmode
;
3842 TALLOC_CTX
*_mem_save_devmode_0
;
3843 uint32_t _ptr_text_status
;
3844 TALLOC_CTX
*_mem_save_text_status_0
;
3845 uint32_t _ptr_secdesc
;
3846 TALLOC_CTX
*_mem_save_secdesc_0
;
3847 if (ndr_flags
& NDR_SCALARS
) {
3848 NDR_CHECK(ndr_pull_align(ndr
, 4));
3849 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3851 uint32_t _flags_save_string
= ndr
->flags
;
3852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3853 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3854 if (_ptr_printer_name
) {
3855 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3856 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3858 r
->printer_name
= NULL
;
3860 ndr
->flags
= _flags_save_string
;
3863 uint32_t _flags_save_string
= ndr
->flags
;
3864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3866 if (_ptr_server_name
) {
3867 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3868 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3870 r
->server_name
= NULL
;
3872 ndr
->flags
= _flags_save_string
;
3875 uint32_t _flags_save_string
= ndr
->flags
;
3876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3878 if (_ptr_user_name
) {
3879 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3880 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3882 r
->user_name
= NULL
;
3884 ndr
->flags
= _flags_save_string
;
3887 uint32_t _flags_save_string
= ndr
->flags
;
3888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3890 if (_ptr_document_name
) {
3891 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3892 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3894 r
->document_name
= NULL
;
3896 ndr
->flags
= _flags_save_string
;
3899 uint32_t _flags_save_string
= ndr
->flags
;
3900 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3902 if (_ptr_notify_name
) {
3903 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3904 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3906 r
->notify_name
= NULL
;
3908 ndr
->flags
= _flags_save_string
;
3911 uint32_t _flags_save_string
= ndr
->flags
;
3912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3913 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3914 if (_ptr_data_type
) {
3915 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3916 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3918 r
->data_type
= NULL
;
3920 ndr
->flags
= _flags_save_string
;
3923 uint32_t _flags_save_string
= ndr
->flags
;
3924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3926 if (_ptr_print_processor
) {
3927 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3928 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3930 r
->print_processor
= NULL
;
3932 ndr
->flags
= _flags_save_string
;
3935 uint32_t _flags_save_string
= ndr
->flags
;
3936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3938 if (_ptr_parameters
) {
3939 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3940 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3942 r
->parameters
= NULL
;
3944 ndr
->flags
= _flags_save_string
;
3947 uint32_t _flags_save_string
= ndr
->flags
;
3948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3950 if (_ptr_driver_name
) {
3951 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3952 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3954 r
->driver_name
= NULL
;
3956 ndr
->flags
= _flags_save_string
;
3959 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3963 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3964 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3968 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3971 uint32_t _flags_save_string
= ndr
->flags
;
3972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3974 if (_ptr_text_status
) {
3975 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3976 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3978 r
->text_status
= NULL
;
3980 ndr
->flags
= _flags_save_string
;
3983 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3987 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3988 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3992 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3994 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3996 if (r
->priority
> 99) {
3997 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4002 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4004 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4005 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4006 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4009 if (ndr_flags
& NDR_BUFFERS
) {
4011 uint32_t _flags_save_string
= ndr
->flags
;
4012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4013 if (r
->printer_name
) {
4014 uint32_t _relative_save_offset
;
4015 _relative_save_offset
= ndr
->offset
;
4016 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4017 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4018 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4019 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4021 ndr
->offset
= _relative_save_offset
;
4023 ndr
->flags
= _flags_save_string
;
4026 uint32_t _flags_save_string
= ndr
->flags
;
4027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4028 if (r
->server_name
) {
4029 uint32_t _relative_save_offset
;
4030 _relative_save_offset
= ndr
->offset
;
4031 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4032 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4033 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4034 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4036 ndr
->offset
= _relative_save_offset
;
4038 ndr
->flags
= _flags_save_string
;
4041 uint32_t _flags_save_string
= ndr
->flags
;
4042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4044 uint32_t _relative_save_offset
;
4045 _relative_save_offset
= ndr
->offset
;
4046 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4047 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4048 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4049 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4051 ndr
->offset
= _relative_save_offset
;
4053 ndr
->flags
= _flags_save_string
;
4056 uint32_t _flags_save_string
= ndr
->flags
;
4057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4058 if (r
->document_name
) {
4059 uint32_t _relative_save_offset
;
4060 _relative_save_offset
= ndr
->offset
;
4061 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4062 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4063 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4064 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4066 ndr
->offset
= _relative_save_offset
;
4068 ndr
->flags
= _flags_save_string
;
4071 uint32_t _flags_save_string
= ndr
->flags
;
4072 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4073 if (r
->notify_name
) {
4074 uint32_t _relative_save_offset
;
4075 _relative_save_offset
= ndr
->offset
;
4076 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4077 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4078 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4079 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4081 ndr
->offset
= _relative_save_offset
;
4083 ndr
->flags
= _flags_save_string
;
4086 uint32_t _flags_save_string
= ndr
->flags
;
4087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4089 uint32_t _relative_save_offset
;
4090 _relative_save_offset
= ndr
->offset
;
4091 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4092 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4093 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4094 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4096 ndr
->offset
= _relative_save_offset
;
4098 ndr
->flags
= _flags_save_string
;
4101 uint32_t _flags_save_string
= ndr
->flags
;
4102 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4103 if (r
->print_processor
) {
4104 uint32_t _relative_save_offset
;
4105 _relative_save_offset
= ndr
->offset
;
4106 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4107 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4108 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4109 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4111 ndr
->offset
= _relative_save_offset
;
4113 ndr
->flags
= _flags_save_string
;
4116 uint32_t _flags_save_string
= ndr
->flags
;
4117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4118 if (r
->parameters
) {
4119 uint32_t _relative_save_offset
;
4120 _relative_save_offset
= ndr
->offset
;
4121 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4122 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4123 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4124 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4126 ndr
->offset
= _relative_save_offset
;
4128 ndr
->flags
= _flags_save_string
;
4131 uint32_t _flags_save_string
= ndr
->flags
;
4132 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4133 if (r
->driver_name
) {
4134 uint32_t _relative_save_offset
;
4135 _relative_save_offset
= ndr
->offset
;
4136 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4137 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4138 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4139 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4141 ndr
->offset
= _relative_save_offset
;
4143 ndr
->flags
= _flags_save_string
;
4146 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4147 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4149 uint32_t _relative_save_offset
;
4150 _relative_save_offset
= ndr
->offset
;
4151 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4152 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4153 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4155 struct ndr_pull
*_ndr_devmode
;
4156 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4157 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4158 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4160 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4161 ndr
->offset
= _relative_save_offset
;
4163 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4166 uint32_t _flags_save_string
= ndr
->flags
;
4167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4168 if (r
->text_status
) {
4169 uint32_t _relative_save_offset
;
4170 _relative_save_offset
= ndr
->offset
;
4171 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4172 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4173 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4174 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4176 ndr
->offset
= _relative_save_offset
;
4178 ndr
->flags
= _flags_save_string
;
4181 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4184 uint32_t _relative_save_offset
;
4185 _relative_save_offset
= ndr
->offset
;
4186 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4187 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4188 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4190 struct ndr_pull
*_ndr_secdesc
;
4191 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4192 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4193 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4196 ndr
->offset
= _relative_save_offset
;
4198 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4201 return NDR_ERR_SUCCESS
;
4204 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4206 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4208 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4209 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4211 if (r
->printer_name
) {
4212 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4215 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4217 if (r
->server_name
) {
4218 ndr_print_string(ndr
, "server_name", r
->server_name
);
4221 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4224 ndr_print_string(ndr
, "user_name", r
->user_name
);
4227 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4229 if (r
->document_name
) {
4230 ndr_print_string(ndr
, "document_name", r
->document_name
);
4233 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4235 if (r
->notify_name
) {
4236 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4239 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4242 ndr_print_string(ndr
, "data_type", r
->data_type
);
4245 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4247 if (r
->print_processor
) {
4248 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4251 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4253 if (r
->parameters
) {
4254 ndr_print_string(ndr
, "parameters", r
->parameters
);
4257 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4259 if (r
->driver_name
) {
4260 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4263 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4266 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4269 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4271 if (r
->text_status
) {
4272 ndr_print_string(ndr
, "text_status", r
->text_status
);
4275 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4278 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4281 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4282 ndr_print_uint32(ndr
, "priority", r
->priority
);
4283 ndr_print_uint32(ndr
, "position", r
->position
);
4284 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4285 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4286 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4287 ndr_print_uint32(ndr
, "size", r
->size
);
4288 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4289 ndr_print_uint32(ndr
, "time", r
->time
);
4290 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4291 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4295 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4297 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4300 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4302 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4304 uint32_t _flags_save_UNION
= ndr
->flags
;
4305 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4306 if (ndr_flags
& NDR_SCALARS
) {
4307 int level
= ndr_push_get_switch_value(ndr
, r
);
4310 NDR_CHECK(ndr_push_align(ndr
, 4));
4311 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4312 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4316 NDR_CHECK(ndr_push_align(ndr
, 4));
4317 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4318 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4322 NDR_CHECK(ndr_push_align(ndr
, 4));
4323 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4324 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4328 NDR_CHECK(ndr_push_align(ndr
, 4));
4329 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4330 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4338 if (ndr_flags
& NDR_BUFFERS
) {
4339 int level
= ndr_push_get_switch_value(ndr
, r
);
4340 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4343 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4347 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4354 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4362 ndr
->flags
= _flags_save_UNION
;
4364 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4365 return NDR_ERR_SUCCESS
;
4368 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4370 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4373 uint32_t _flags_save_UNION
= ndr
->flags
;
4374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4375 level
= ndr_pull_get_switch_value(ndr
, r
);
4376 if (ndr_flags
& NDR_SCALARS
) {
4379 NDR_CHECK(ndr_pull_align(ndr
, 4));
4380 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4381 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4385 NDR_CHECK(ndr_pull_align(ndr
, 4));
4386 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4387 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4391 NDR_CHECK(ndr_pull_align(ndr
, 4));
4392 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4393 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4397 NDR_CHECK(ndr_pull_align(ndr
, 4));
4398 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4399 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4407 if (ndr_flags
& NDR_BUFFERS
) {
4408 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4411 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4415 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4422 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4430 ndr
->flags
= _flags_save_UNION
;
4432 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4433 return NDR_ERR_SUCCESS
;
4436 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4440 uint32_t _flags_save_UNION
= ndr
->flags
;
4441 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4442 level
= ndr_print_get_switch_value(ndr
, r
);
4443 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4446 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4450 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4454 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4458 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4465 ndr
->flags
= _flags_save_UNION
;
4469 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4471 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
4472 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4475 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4477 if (ndr_flags
& NDR_SCALARS
) {
4478 NDR_CHECK(ndr_push_align(ndr
, 4));
4479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4483 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4484 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4486 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4491 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4493 if (ndr_flags
& NDR_BUFFERS
) {
4494 if (r
->printer_name
) {
4495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4500 if (r
->server_name
) {
4501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4504 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4510 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4512 if (r
->document_name
) {
4513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4516 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4522 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4524 if (r
->text_status
) {
4525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4531 return NDR_ERR_SUCCESS
;
4534 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4536 uint32_t _ptr_printer_name
;
4537 uint32_t size_printer_name_1
= 0;
4538 uint32_t length_printer_name_1
= 0;
4539 TALLOC_CTX
*_mem_save_printer_name_0
;
4540 uint32_t _ptr_server_name
;
4541 uint32_t size_server_name_1
= 0;
4542 uint32_t length_server_name_1
= 0;
4543 TALLOC_CTX
*_mem_save_server_name_0
;
4544 uint32_t _ptr_user_name
;
4545 uint32_t size_user_name_1
= 0;
4546 uint32_t length_user_name_1
= 0;
4547 TALLOC_CTX
*_mem_save_user_name_0
;
4548 uint32_t _ptr_document_name
;
4549 uint32_t size_document_name_1
= 0;
4550 uint32_t length_document_name_1
= 0;
4551 TALLOC_CTX
*_mem_save_document_name_0
;
4552 uint32_t _ptr_data_type
;
4553 uint32_t size_data_type_1
= 0;
4554 uint32_t length_data_type_1
= 0;
4555 TALLOC_CTX
*_mem_save_data_type_0
;
4556 uint32_t _ptr_text_status
;
4557 uint32_t size_text_status_1
= 0;
4558 uint32_t length_text_status_1
= 0;
4559 TALLOC_CTX
*_mem_save_text_status_0
;
4560 if (ndr_flags
& NDR_SCALARS
) {
4561 NDR_CHECK(ndr_pull_align(ndr
, 4));
4562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4563 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4564 if (_ptr_printer_name
) {
4565 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4567 r
->printer_name
= NULL
;
4569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4570 if (_ptr_server_name
) {
4571 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4573 r
->server_name
= NULL
;
4575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4576 if (_ptr_user_name
) {
4577 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4579 r
->user_name
= NULL
;
4581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4582 if (_ptr_document_name
) {
4583 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4585 r
->document_name
= NULL
;
4587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4588 if (_ptr_data_type
) {
4589 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4591 r
->data_type
= NULL
;
4593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4594 if (_ptr_text_status
) {
4595 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4597 r
->text_status
= NULL
;
4599 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4600 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4601 if (r
->priority
> 99) {
4602 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4607 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4609 if (ndr_flags
& NDR_BUFFERS
) {
4610 if (r
->printer_name
) {
4611 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4612 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4613 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4614 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4615 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
4616 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
4617 if (length_printer_name_1
> size_printer_name_1
) {
4618 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
4620 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
4621 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
4622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4624 if (r
->server_name
) {
4625 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4626 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4627 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4628 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4629 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
4630 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
4631 if (length_server_name_1
> size_server_name_1
) {
4632 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
4634 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
4635 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
4636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4639 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4640 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4641 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4642 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4643 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
4644 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
4645 if (length_user_name_1
> size_user_name_1
) {
4646 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
4648 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
4649 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
4650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4652 if (r
->document_name
) {
4653 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4654 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4655 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4656 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4657 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
4658 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
4659 if (length_document_name_1
> size_document_name_1
) {
4660 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
4662 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
4663 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
4664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4667 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4668 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4669 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4670 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4671 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
4672 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
4673 if (length_data_type_1
> size_data_type_1
) {
4674 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
4676 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
4677 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
4678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4680 if (r
->text_status
) {
4681 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4682 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4683 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4684 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4685 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
4686 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
4687 if (length_text_status_1
> size_text_status_1
) {
4688 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
4690 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
4691 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
4692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4695 return NDR_ERR_SUCCESS
;
4698 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
4700 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
4702 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4703 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4705 if (r
->printer_name
) {
4706 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4709 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4711 if (r
->server_name
) {
4712 ndr_print_string(ndr
, "server_name", r
->server_name
);
4715 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4718 ndr_print_string(ndr
, "user_name", r
->user_name
);
4721 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4723 if (r
->document_name
) {
4724 ndr_print_string(ndr
, "document_name", r
->document_name
);
4727 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4730 ndr_print_string(ndr
, "data_type", r
->data_type
);
4733 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4735 if (r
->text_status
) {
4736 ndr_print_string(ndr
, "text_status", r
->text_status
);
4739 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4740 ndr_print_uint32(ndr
, "priority", r
->priority
);
4741 ndr_print_uint32(ndr
, "position", r
->position
);
4742 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4743 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4744 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4748 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
4750 if (ndr_flags
& NDR_SCALARS
) {
4751 NDR_CHECK(ndr_push_align(ndr
, 4));
4752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4753 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4754 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4755 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4756 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4757 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
4758 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4759 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
4760 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4761 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
4762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
4763 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
4765 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4772 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4776 if (ndr_flags
& NDR_BUFFERS
) {
4777 if (r
->printer_name
) {
4778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4781 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4783 if (r
->server_name
) {
4784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4787 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4793 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4795 if (r
->document_name
) {
4796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4799 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4801 if (r
->notify_name
) {
4802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4805 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4811 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4813 if (r
->print_processor
) {
4814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4817 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4819 if (r
->parameters
) {
4820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4823 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4825 if (r
->driver_name
) {
4826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4829 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4831 if (r
->text_status
) {
4832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4835 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4838 return NDR_ERR_SUCCESS
;
4841 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
4843 uint32_t _ptr_printer_name
;
4844 uint32_t size_printer_name_1
= 0;
4845 uint32_t length_printer_name_1
= 0;
4846 TALLOC_CTX
*_mem_save_printer_name_0
;
4847 uint32_t _ptr_server_name
;
4848 uint32_t size_server_name_1
= 0;
4849 uint32_t length_server_name_1
= 0;
4850 TALLOC_CTX
*_mem_save_server_name_0
;
4851 uint32_t _ptr_user_name
;
4852 uint32_t size_user_name_1
= 0;
4853 uint32_t length_user_name_1
= 0;
4854 TALLOC_CTX
*_mem_save_user_name_0
;
4855 uint32_t _ptr_document_name
;
4856 uint32_t size_document_name_1
= 0;
4857 uint32_t length_document_name_1
= 0;
4858 TALLOC_CTX
*_mem_save_document_name_0
;
4859 uint32_t _ptr_notify_name
;
4860 uint32_t size_notify_name_1
= 0;
4861 uint32_t length_notify_name_1
= 0;
4862 TALLOC_CTX
*_mem_save_notify_name_0
;
4863 uint32_t _ptr_data_type
;
4864 uint32_t size_data_type_1
= 0;
4865 uint32_t length_data_type_1
= 0;
4866 TALLOC_CTX
*_mem_save_data_type_0
;
4867 uint32_t _ptr_print_processor
;
4868 uint32_t size_print_processor_1
= 0;
4869 uint32_t length_print_processor_1
= 0;
4870 TALLOC_CTX
*_mem_save_print_processor_0
;
4871 uint32_t _ptr_parameters
;
4872 uint32_t size_parameters_1
= 0;
4873 uint32_t length_parameters_1
= 0;
4874 TALLOC_CTX
*_mem_save_parameters_0
;
4875 uint32_t _ptr_driver_name
;
4876 uint32_t size_driver_name_1
= 0;
4877 uint32_t length_driver_name_1
= 0;
4878 TALLOC_CTX
*_mem_save_driver_name_0
;
4879 uint32_t _ptr_text_status
;
4880 uint32_t size_text_status_1
= 0;
4881 uint32_t length_text_status_1
= 0;
4882 TALLOC_CTX
*_mem_save_text_status_0
;
4883 if (ndr_flags
& NDR_SCALARS
) {
4884 NDR_CHECK(ndr_pull_align(ndr
, 4));
4885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4887 if (_ptr_printer_name
) {
4888 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4890 r
->printer_name
= NULL
;
4892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4893 if (_ptr_server_name
) {
4894 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4896 r
->server_name
= NULL
;
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4899 if (_ptr_user_name
) {
4900 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4902 r
->user_name
= NULL
;
4904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4905 if (_ptr_document_name
) {
4906 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4908 r
->document_name
= NULL
;
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4911 if (_ptr_notify_name
) {
4912 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4914 r
->notify_name
= NULL
;
4916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4917 if (_ptr_data_type
) {
4918 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4920 r
->data_type
= NULL
;
4922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4923 if (_ptr_print_processor
) {
4924 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4926 r
->print_processor
= NULL
;
4928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4929 if (_ptr_parameters
) {
4930 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4932 r
->parameters
= NULL
;
4934 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4935 if (_ptr_driver_name
) {
4936 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4938 r
->driver_name
= NULL
;
4940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
4941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4942 if (_ptr_text_status
) {
4943 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4945 r
->text_status
= NULL
;
4947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
4948 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4950 if (r
->priority
> 99) {
4951 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4954 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4956 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4957 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4958 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4962 if (ndr_flags
& NDR_BUFFERS
) {
4963 if (r
->printer_name
) {
4964 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4965 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4966 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4967 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4968 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
4969 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
4970 if (length_printer_name_1
> size_printer_name_1
) {
4971 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
4973 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
4974 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
4975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4977 if (r
->server_name
) {
4978 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4979 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4982 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
4983 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
4984 if (length_server_name_1
> size_server_name_1
) {
4985 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
4987 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
4988 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
4989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4992 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4993 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4994 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4995 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4996 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
4997 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
4998 if (length_user_name_1
> size_user_name_1
) {
4999 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
5001 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
5002 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
5003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5005 if (r
->document_name
) {
5006 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5007 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5008 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5009 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5010 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
5011 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
5012 if (length_document_name_1
> size_document_name_1
) {
5013 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
5015 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
5016 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
5017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5019 if (r
->notify_name
) {
5020 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5021 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5022 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5023 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5024 size_notify_name_1
= ndr_get_array_size(ndr
, &r
->notify_name
);
5025 length_notify_name_1
= ndr_get_array_length(ndr
, &r
->notify_name
);
5026 if (length_notify_name_1
> size_notify_name_1
) {
5027 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_notify_name_1
, length_notify_name_1
);
5029 NDR_CHECK(ndr_check_string_terminator(ndr
, length_notify_name_1
, sizeof(uint16_t)));
5030 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, length_notify_name_1
, sizeof(uint16_t), CH_UTF16
));
5031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5034 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5035 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5036 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5037 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5038 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
5039 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
5040 if (length_data_type_1
> size_data_type_1
) {
5041 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
5043 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
5044 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
5045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5047 if (r
->print_processor
) {
5048 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5049 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5052 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
5053 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
5054 if (length_print_processor_1
> size_print_processor_1
) {
5055 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
5057 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
5058 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
5059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5061 if (r
->parameters
) {
5062 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5063 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5064 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5065 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5066 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
5067 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
5068 if (length_parameters_1
> size_parameters_1
) {
5069 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
5071 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
5072 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
5073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5075 if (r
->driver_name
) {
5076 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5077 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5078 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5079 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5080 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
5081 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
5082 if (length_driver_name_1
> size_driver_name_1
) {
5083 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
5085 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
5086 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
5087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5089 if (r
->text_status
) {
5090 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5091 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5092 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5093 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5094 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
5095 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
5096 if (length_text_status_1
> size_text_status_1
) {
5097 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
5099 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
5100 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
5101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5104 return NDR_ERR_SUCCESS
;
5107 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
5109 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
5111 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5112 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5114 if (r
->printer_name
) {
5115 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5118 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5120 if (r
->server_name
) {
5121 ndr_print_string(ndr
, "server_name", r
->server_name
);
5124 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5127 ndr_print_string(ndr
, "user_name", r
->user_name
);
5130 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5132 if (r
->document_name
) {
5133 ndr_print_string(ndr
, "document_name", r
->document_name
);
5136 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5138 if (r
->notify_name
) {
5139 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5142 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5145 ndr_print_string(ndr
, "data_type", r
->data_type
);
5148 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5150 if (r
->print_processor
) {
5151 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5154 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5156 if (r
->parameters
) {
5157 ndr_print_string(ndr
, "parameters", r
->parameters
);
5160 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5162 if (r
->driver_name
) {
5163 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5166 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5167 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5169 if (r
->text_status
) {
5170 ndr_print_string(ndr
, "text_status", r
->text_status
);
5173 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5174 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5175 ndr_print_uint32(ndr
, "priority", r
->priority
);
5176 ndr_print_uint32(ndr
, "position", r
->position
);
5177 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5178 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5179 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5180 ndr_print_uint32(ndr
, "size", r
->size
);
5181 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5182 ndr_print_uint32(ndr
, "time", r
->time
);
5183 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5187 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5189 if (ndr_flags
& NDR_SCALARS
) {
5190 NDR_CHECK(ndr_push_align(ndr
, 4));
5191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5192 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5194 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5195 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5196 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5197 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5198 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5199 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5200 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5202 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5204 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5207 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5211 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5216 if (ndr_flags
& NDR_BUFFERS
) {
5217 if (r
->printer_name
) {
5218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5221 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5223 if (r
->server_name
) {
5224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5227 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5231 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5233 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5235 if (r
->document_name
) {
5236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5239 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5241 if (r
->notify_name
) {
5242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5245 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5251 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5253 if (r
->print_processor
) {
5254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5257 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5259 if (r
->parameters
) {
5260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5263 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5265 if (r
->driver_name
) {
5266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5269 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5271 if (r
->text_status
) {
5272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5275 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5278 return NDR_ERR_SUCCESS
;
5281 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5283 uint32_t _ptr_printer_name
;
5284 uint32_t size_printer_name_1
= 0;
5285 uint32_t length_printer_name_1
= 0;
5286 TALLOC_CTX
*_mem_save_printer_name_0
;
5287 uint32_t _ptr_server_name
;
5288 uint32_t size_server_name_1
= 0;
5289 uint32_t length_server_name_1
= 0;
5290 TALLOC_CTX
*_mem_save_server_name_0
;
5291 uint32_t _ptr_user_name
;
5292 uint32_t size_user_name_1
= 0;
5293 uint32_t length_user_name_1
= 0;
5294 TALLOC_CTX
*_mem_save_user_name_0
;
5295 uint32_t _ptr_document_name
;
5296 uint32_t size_document_name_1
= 0;
5297 uint32_t length_document_name_1
= 0;
5298 TALLOC_CTX
*_mem_save_document_name_0
;
5299 uint32_t _ptr_notify_name
;
5300 uint32_t size_notify_name_1
= 0;
5301 uint32_t length_notify_name_1
= 0;
5302 TALLOC_CTX
*_mem_save_notify_name_0
;
5303 uint32_t _ptr_data_type
;
5304 uint32_t size_data_type_1
= 0;
5305 uint32_t length_data_type_1
= 0;
5306 TALLOC_CTX
*_mem_save_data_type_0
;
5307 uint32_t _ptr_print_processor
;
5308 uint32_t size_print_processor_1
= 0;
5309 uint32_t length_print_processor_1
= 0;
5310 TALLOC_CTX
*_mem_save_print_processor_0
;
5311 uint32_t _ptr_parameters
;
5312 uint32_t size_parameters_1
= 0;
5313 uint32_t length_parameters_1
= 0;
5314 TALLOC_CTX
*_mem_save_parameters_0
;
5315 uint32_t _ptr_driver_name
;
5316 uint32_t size_driver_name_1
= 0;
5317 uint32_t length_driver_name_1
= 0;
5318 TALLOC_CTX
*_mem_save_driver_name_0
;
5319 uint32_t _ptr_text_status
;
5320 uint32_t size_text_status_1
= 0;
5321 uint32_t length_text_status_1
= 0;
5322 TALLOC_CTX
*_mem_save_text_status_0
;
5323 if (ndr_flags
& NDR_SCALARS
) {
5324 NDR_CHECK(ndr_pull_align(ndr
, 4));
5325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5326 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5327 if (_ptr_printer_name
) {
5328 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5330 r
->printer_name
= NULL
;
5332 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5333 if (_ptr_server_name
) {
5334 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5336 r
->server_name
= NULL
;
5338 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5339 if (_ptr_user_name
) {
5340 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5342 r
->user_name
= NULL
;
5344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5345 if (_ptr_document_name
) {
5346 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5348 r
->document_name
= NULL
;
5350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5351 if (_ptr_notify_name
) {
5352 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5354 r
->notify_name
= NULL
;
5356 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5357 if (_ptr_data_type
) {
5358 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5360 r
->data_type
= NULL
;
5362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5363 if (_ptr_print_processor
) {
5364 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5366 r
->print_processor
= NULL
;
5368 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5369 if (_ptr_parameters
) {
5370 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5372 r
->parameters
= NULL
;
5374 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5375 if (_ptr_driver_name
) {
5376 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5378 r
->driver_name
= NULL
;
5380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5382 if (_ptr_text_status
) {
5383 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5385 r
->text_status
= NULL
;
5387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5388 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5390 if (r
->priority
> 99) {
5391 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5394 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5398 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5401 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5403 if (ndr_flags
& NDR_BUFFERS
) {
5404 if (r
->printer_name
) {
5405 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5406 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5407 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5408 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5409 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
5410 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
5411 if (length_printer_name_1
> size_printer_name_1
) {
5412 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
5414 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
5415 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
5416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5418 if (r
->server_name
) {
5419 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5420 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5423 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
5424 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
5425 if (length_server_name_1
> size_server_name_1
) {
5426 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
5428 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
5429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
5430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5433 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5434 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5437 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
5438 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
5439 if (length_user_name_1
> size_user_name_1
) {
5440 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
5442 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
5443 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
5444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5446 if (r
->document_name
) {
5447 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5448 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5450 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5451 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
5452 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
5453 if (length_document_name_1
> size_document_name_1
) {
5454 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
5456 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
5457 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
5458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5460 if (r
->notify_name
) {
5461 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5462 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5463 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5464 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5465 size_notify_name_1
= ndr_get_array_size(ndr
, &r
->notify_name
);
5466 length_notify_name_1
= ndr_get_array_length(ndr
, &r
->notify_name
);
5467 if (length_notify_name_1
> size_notify_name_1
) {
5468 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_notify_name_1
, length_notify_name_1
);
5470 NDR_CHECK(ndr_check_string_terminator(ndr
, length_notify_name_1
, sizeof(uint16_t)));
5471 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, length_notify_name_1
, sizeof(uint16_t), CH_UTF16
));
5472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5475 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5476 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5477 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5478 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5479 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
5480 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
5481 if (length_data_type_1
> size_data_type_1
) {
5482 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
5484 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
5485 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
5486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5488 if (r
->print_processor
) {
5489 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5490 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5491 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5492 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5493 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
5494 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
5495 if (length_print_processor_1
> size_print_processor_1
) {
5496 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
5498 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
5499 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
5500 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5502 if (r
->parameters
) {
5503 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5504 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5505 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5506 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5507 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
5508 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
5509 if (length_parameters_1
> size_parameters_1
) {
5510 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
5512 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
5513 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
5514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5516 if (r
->driver_name
) {
5517 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5518 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5519 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5520 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5521 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
5522 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
5523 if (length_driver_name_1
> size_driver_name_1
) {
5524 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
5526 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
5527 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
5528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5530 if (r
->text_status
) {
5531 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5532 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5533 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5534 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5535 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
5536 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
5537 if (length_text_status_1
> size_text_status_1
) {
5538 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
5540 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
5541 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
5542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5545 return NDR_ERR_SUCCESS
;
5548 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5550 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5552 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5553 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5555 if (r
->printer_name
) {
5556 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5559 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5561 if (r
->server_name
) {
5562 ndr_print_string(ndr
, "server_name", r
->server_name
);
5565 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5568 ndr_print_string(ndr
, "user_name", r
->user_name
);
5571 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5573 if (r
->document_name
) {
5574 ndr_print_string(ndr
, "document_name", r
->document_name
);
5577 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5579 if (r
->notify_name
) {
5580 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5583 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5586 ndr_print_string(ndr
, "data_type", r
->data_type
);
5589 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5591 if (r
->print_processor
) {
5592 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5595 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5597 if (r
->parameters
) {
5598 ndr_print_string(ndr
, "parameters", r
->parameters
);
5601 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5603 if (r
->driver_name
) {
5604 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5607 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5608 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5610 if (r
->text_status
) {
5611 ndr_print_string(ndr
, "text_status", r
->text_status
);
5614 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5615 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5616 ndr_print_uint32(ndr
, "priority", r
->priority
);
5617 ndr_print_uint32(ndr
, "position", r
->position
);
5618 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5619 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5620 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5621 ndr_print_uint32(ndr
, "size", r
->size
);
5622 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5623 ndr_print_uint32(ndr
, "time", r
->time
);
5624 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5625 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5629 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5631 if (ndr_flags
& NDR_SCALARS
) {
5632 int level
= ndr_push_get_switch_value(ndr
, r
);
5633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5636 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5640 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5644 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5648 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5656 if (ndr_flags
& NDR_BUFFERS
) {
5657 int level
= ndr_push_get_switch_value(ndr
, r
);
5661 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5667 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5673 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5679 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5688 return NDR_ERR_SUCCESS
;
5691 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
5695 TALLOC_CTX
*_mem_save_info1_0
;
5696 uint32_t _ptr_info1
;
5697 TALLOC_CTX
*_mem_save_info2_0
;
5698 uint32_t _ptr_info2
;
5699 TALLOC_CTX
*_mem_save_info3_0
;
5700 uint32_t _ptr_info3
;
5701 TALLOC_CTX
*_mem_save_info4_0
;
5702 uint32_t _ptr_info4
;
5703 level
= ndr_pull_get_switch_value(ndr
, r
);
5704 if (ndr_flags
& NDR_SCALARS
) {
5705 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5706 if (_level
!= level
) {
5707 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5713 NDR_PULL_ALLOC(ndr
, r
->info1
);
5720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5722 NDR_PULL_ALLOC(ndr
, r
->info2
);
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5731 NDR_PULL_ALLOC(ndr
, r
->info3
);
5738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5740 NDR_PULL_ALLOC(ndr
, r
->info4
);
5751 if (ndr_flags
& NDR_BUFFERS
) {
5755 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5756 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5757 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5764 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5765 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5766 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5773 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5774 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5775 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5776 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5782 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5783 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5784 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5794 return NDR_ERR_SUCCESS
;
5797 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
5800 level
= ndr_print_get_switch_value(ndr
, r
);
5801 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
5804 ndr_print_ptr(ndr
, "info1", r
->info1
);
5807 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
5813 ndr_print_ptr(ndr
, "info2", r
->info2
);
5816 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
5822 ndr_print_ptr(ndr
, "info3", r
->info3
);
5825 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
5831 ndr_print_ptr(ndr
, "info4", r
->info4
);
5834 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
5845 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
5847 if (ndr_flags
& NDR_SCALARS
) {
5848 NDR_CHECK(ndr_push_align(ndr
, 4));
5849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5850 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5851 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5853 if (ndr_flags
& NDR_BUFFERS
) {
5854 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5856 return NDR_ERR_SUCCESS
;
5859 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
5861 if (ndr_flags
& NDR_SCALARS
) {
5862 NDR_CHECK(ndr_pull_align(ndr
, 4));
5863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
5864 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
5865 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5867 if (ndr_flags
& NDR_BUFFERS
) {
5868 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5870 return NDR_ERR_SUCCESS
;
5873 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
5875 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
5877 ndr_print_uint32(ndr
, "level", r
->level
);
5878 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
5879 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
5883 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
5885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5886 return NDR_ERR_SUCCESS
;
5889 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
5892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5894 return NDR_ERR_SUCCESS
;
5897 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
5899 const char *val
= NULL
;
5902 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5903 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
5904 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5905 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
5906 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
5907 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5908 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5909 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5910 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5912 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5915 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
5917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5918 return NDR_ERR_SUCCESS
;
5921 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
5924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5926 return NDR_ERR_SUCCESS
;
5929 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
5931 const char *val
= NULL
;
5934 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5935 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5936 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5937 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5938 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5940 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5943 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
5945 if (ndr_flags
& NDR_SCALARS
) {
5946 NDR_CHECK(ndr_push_align(ndr
, 4));
5947 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5948 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
5950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
5951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
5952 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
5954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
5956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
5957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
5958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
5959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
5960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
5961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
5962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
5963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
5964 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
5965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
5966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
5967 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
5968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
5969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
5970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
5971 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
5972 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
5973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
5974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
5975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
5977 if (ndr_flags
& NDR_BUFFERS
) {
5978 if (r
->servername
) {
5979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5982 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5984 if (r
->printername
) {
5985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5988 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5991 return NDR_ERR_SUCCESS
;
5994 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
5996 uint32_t _ptr_servername
;
5997 uint32_t size_servername_1
= 0;
5998 uint32_t length_servername_1
= 0;
5999 TALLOC_CTX
*_mem_save_servername_0
;
6000 uint32_t _ptr_printername
;
6001 uint32_t size_printername_1
= 0;
6002 uint32_t length_printername_1
= 0;
6003 TALLOC_CTX
*_mem_save_printername_0
;
6004 if (ndr_flags
& NDR_SCALARS
) {
6005 NDR_CHECK(ndr_pull_align(ndr
, 4));
6006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6007 if (_ptr_servername
) {
6008 NDR_PULL_ALLOC(ndr
, r
->servername
);
6010 r
->servername
= NULL
;
6012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6013 if (_ptr_printername
) {
6014 NDR_PULL_ALLOC(ndr
, r
->printername
);
6016 r
->printername
= NULL
;
6018 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6021 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6022 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6024 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6025 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
6026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6030 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
6032 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6033 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6034 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6035 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6036 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6037 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
6038 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6039 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6040 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6041 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6043 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6046 if (ndr_flags
& NDR_BUFFERS
) {
6047 if (r
->servername
) {
6048 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6049 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6052 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
6053 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
6054 if (length_servername_1
> size_servername_1
) {
6055 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
6057 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
6058 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
6059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6061 if (r
->printername
) {
6062 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6063 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6064 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6065 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6066 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
6067 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
6068 if (length_printername_1
> size_printername_1
) {
6069 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
6071 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
6072 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
6073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6076 return NDR_ERR_SUCCESS
;
6079 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6081 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6083 ndr_print_ptr(ndr
, "servername", r
->servername
);
6085 if (r
->servername
) {
6086 ndr_print_string(ndr
, "servername", r
->servername
);
6089 ndr_print_ptr(ndr
, "printername", r
->printername
);
6091 if (r
->printername
) {
6092 ndr_print_string(ndr
, "printername", r
->printername
);
6095 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6096 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6097 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6098 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6099 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6100 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6101 ndr_print_uint32(ndr
, "version", r
->version
);
6102 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
6103 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6104 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6105 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6106 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6107 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6108 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
6109 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6110 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6111 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6112 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6113 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6114 ndr_print_uint32(ndr
, "status", r
->status
);
6115 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6116 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6117 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6118 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6119 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6120 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6121 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6125 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
6127 if (ndr_flags
& NDR_SCALARS
) {
6128 NDR_CHECK(ndr_push_align(ndr
, 4));
6129 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
6130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
6131 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
6132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6134 if (ndr_flags
& NDR_BUFFERS
) {
6135 if (r
->description
) {
6136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6139 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6145 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6151 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6154 return NDR_ERR_SUCCESS
;
6157 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
6159 uint32_t _ptr_description
;
6160 uint32_t size_description_1
= 0;
6161 uint32_t length_description_1
= 0;
6162 TALLOC_CTX
*_mem_save_description_0
;
6164 uint32_t size_name_1
= 0;
6165 uint32_t length_name_1
= 0;
6166 TALLOC_CTX
*_mem_save_name_0
;
6167 uint32_t _ptr_comment
;
6168 uint32_t size_comment_1
= 0;
6169 uint32_t length_comment_1
= 0;
6170 TALLOC_CTX
*_mem_save_comment_0
;
6171 if (ndr_flags
& NDR_SCALARS
) {
6172 NDR_CHECK(ndr_pull_align(ndr
, 4));
6173 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6175 if (_ptr_description
) {
6176 NDR_PULL_ALLOC(ndr
, r
->description
);
6178 r
->description
= NULL
;
6180 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6182 NDR_PULL_ALLOC(ndr
, r
->name
);
6186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6188 NDR_PULL_ALLOC(ndr
, r
->comment
);
6193 if (ndr_flags
& NDR_BUFFERS
) {
6194 if (r
->description
) {
6195 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6196 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6197 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6198 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6199 size_description_1
= ndr_get_array_size(ndr
, &r
->description
);
6200 length_description_1
= ndr_get_array_length(ndr
, &r
->description
);
6201 if (length_description_1
> size_description_1
) {
6202 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_description_1
, length_description_1
);
6204 NDR_CHECK(ndr_check_string_terminator(ndr
, length_description_1
, sizeof(uint16_t)));
6205 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, length_description_1
, sizeof(uint16_t), CH_UTF16
));
6206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6209 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6210 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6213 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
6214 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
6215 if (length_name_1
> size_name_1
) {
6216 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
6218 NDR_CHECK(ndr_check_string_terminator(ndr
, length_name_1
, sizeof(uint16_t)));
6219 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
6220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6223 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6224 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6225 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6226 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6227 size_comment_1
= ndr_get_array_size(ndr
, &r
->comment
);
6228 length_comment_1
= ndr_get_array_length(ndr
, &r
->comment
);
6229 if (length_comment_1
> size_comment_1
) {
6230 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_comment_1
, length_comment_1
);
6232 NDR_CHECK(ndr_check_string_terminator(ndr
, length_comment_1
, sizeof(uint16_t)));
6233 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, length_comment_1
, sizeof(uint16_t), CH_UTF16
));
6234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6237 return NDR_ERR_SUCCESS
;
6240 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6242 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6244 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
6245 ndr_print_ptr(ndr
, "description", r
->description
);
6247 if (r
->description
) {
6248 ndr_print_string(ndr
, "description", r
->description
);
6251 ndr_print_ptr(ndr
, "name", r
->name
);
6254 ndr_print_string(ndr
, "name", r
->name
);
6257 ndr_print_ptr(ndr
, "comment", r
->comment
);
6260 ndr_print_string(ndr
, "comment", r
->comment
);
6266 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6268 if (ndr_flags
& NDR_SCALARS
) {
6269 NDR_CHECK(ndr_push_align(ndr
, 4));
6270 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6271 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6272 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6273 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6274 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6275 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6277 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
6278 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6279 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->secdesc_ptr
));
6283 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6288 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6292 if (ndr_flags
& NDR_BUFFERS
) {
6293 if (r
->servername
) {
6294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6299 if (r
->printername
) {
6300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6303 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6309 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6315 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6317 if (r
->drivername
) {
6318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6321 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6327 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6333 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6339 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6341 if (r
->printprocessor
) {
6342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6345 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6351 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6353 if (r
->parameters
) {
6354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6357 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6360 return NDR_ERR_SUCCESS
;
6363 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6365 uint32_t _ptr_servername
;
6366 uint32_t size_servername_1
= 0;
6367 uint32_t length_servername_1
= 0;
6368 TALLOC_CTX
*_mem_save_servername_0
;
6369 uint32_t _ptr_printername
;
6370 uint32_t size_printername_1
= 0;
6371 uint32_t length_printername_1
= 0;
6372 TALLOC_CTX
*_mem_save_printername_0
;
6373 uint32_t _ptr_sharename
;
6374 uint32_t size_sharename_1
= 0;
6375 uint32_t length_sharename_1
= 0;
6376 TALLOC_CTX
*_mem_save_sharename_0
;
6377 uint32_t _ptr_portname
;
6378 uint32_t size_portname_1
= 0;
6379 uint32_t length_portname_1
= 0;
6380 TALLOC_CTX
*_mem_save_portname_0
;
6381 uint32_t _ptr_drivername
;
6382 uint32_t size_drivername_1
= 0;
6383 uint32_t length_drivername_1
= 0;
6384 TALLOC_CTX
*_mem_save_drivername_0
;
6385 uint32_t _ptr_comment
;
6386 uint32_t size_comment_1
= 0;
6387 uint32_t length_comment_1
= 0;
6388 TALLOC_CTX
*_mem_save_comment_0
;
6389 uint32_t _ptr_location
;
6390 uint32_t size_location_1
= 0;
6391 uint32_t length_location_1
= 0;
6392 TALLOC_CTX
*_mem_save_location_0
;
6393 uint32_t _ptr_sepfile
;
6394 uint32_t size_sepfile_1
= 0;
6395 uint32_t length_sepfile_1
= 0;
6396 TALLOC_CTX
*_mem_save_sepfile_0
;
6397 uint32_t _ptr_printprocessor
;
6398 uint32_t size_printprocessor_1
= 0;
6399 uint32_t length_printprocessor_1
= 0;
6400 TALLOC_CTX
*_mem_save_printprocessor_0
;
6401 uint32_t _ptr_datatype
;
6402 uint32_t size_datatype_1
= 0;
6403 uint32_t length_datatype_1
= 0;
6404 TALLOC_CTX
*_mem_save_datatype_0
;
6405 uint32_t _ptr_parameters
;
6406 uint32_t size_parameters_1
= 0;
6407 uint32_t length_parameters_1
= 0;
6408 TALLOC_CTX
*_mem_save_parameters_0
;
6409 if (ndr_flags
& NDR_SCALARS
) {
6410 NDR_CHECK(ndr_pull_align(ndr
, 4));
6411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6412 if (_ptr_servername
) {
6413 NDR_PULL_ALLOC(ndr
, r
->servername
);
6415 r
->servername
= NULL
;
6417 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6418 if (_ptr_printername
) {
6419 NDR_PULL_ALLOC(ndr
, r
->printername
);
6421 r
->printername
= NULL
;
6423 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6424 if (_ptr_sharename
) {
6425 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6427 r
->sharename
= NULL
;
6429 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6430 if (_ptr_portname
) {
6431 NDR_PULL_ALLOC(ndr
, r
->portname
);
6435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6436 if (_ptr_drivername
) {
6437 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6439 r
->drivername
= NULL
;
6441 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6443 NDR_PULL_ALLOC(ndr
, r
->comment
);
6447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6448 if (_ptr_location
) {
6449 NDR_PULL_ALLOC(ndr
, r
->location
);
6453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6456 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6461 if (_ptr_printprocessor
) {
6462 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6464 r
->printprocessor
= NULL
;
6466 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6467 if (_ptr_datatype
) {
6468 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6473 if (_ptr_parameters
) {
6474 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6476 r
->parameters
= NULL
;
6478 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->secdesc_ptr
));
6479 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6480 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6481 if (r
->priority
> 99) {
6482 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6487 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6491 if (ndr_flags
& NDR_BUFFERS
) {
6492 if (r
->servername
) {
6493 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6494 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6495 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6496 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6497 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
6498 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
6499 if (length_servername_1
> size_servername_1
) {
6500 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
6502 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
6503 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
6504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6506 if (r
->printername
) {
6507 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6508 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6510 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6511 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
6512 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
6513 if (length_printername_1
> size_printername_1
) {
6514 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
6516 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
6517 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
6518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6521 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6522 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6525 size_sharename_1
= ndr_get_array_size(ndr
, &r
->sharename
);
6526 length_sharename_1
= ndr_get_array_length(ndr
, &r
->sharename
);
6527 if (length_sharename_1
> size_sharename_1
) {
6528 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_sharename_1
, length_sharename_1
);
6530 NDR_CHECK(ndr_check_string_terminator(ndr
, length_sharename_1
, sizeof(uint16_t)));
6531 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, length_sharename_1
, sizeof(uint16_t), CH_UTF16
));
6532 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6535 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6536 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6537 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6538 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6539 size_portname_1
= ndr_get_array_size(ndr
, &r
->portname
);
6540 length_portname_1
= ndr_get_array_length(ndr
, &r
->portname
);
6541 if (length_portname_1
> size_portname_1
) {
6542 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_portname_1
, length_portname_1
);
6544 NDR_CHECK(ndr_check_string_terminator(ndr
, length_portname_1
, sizeof(uint16_t)));
6545 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, length_portname_1
, sizeof(uint16_t), CH_UTF16
));
6546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6548 if (r
->drivername
) {
6549 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6550 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6552 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6553 size_drivername_1
= ndr_get_array_size(ndr
, &r
->drivername
);
6554 length_drivername_1
= ndr_get_array_length(ndr
, &r
->drivername
);
6555 if (length_drivername_1
> size_drivername_1
) {
6556 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_drivername_1
, length_drivername_1
);
6558 NDR_CHECK(ndr_check_string_terminator(ndr
, length_drivername_1
, sizeof(uint16_t)));
6559 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, length_drivername_1
, sizeof(uint16_t), CH_UTF16
));
6560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6563 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6564 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6565 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6566 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6567 size_comment_1
= ndr_get_array_size(ndr
, &r
->comment
);
6568 length_comment_1
= ndr_get_array_length(ndr
, &r
->comment
);
6569 if (length_comment_1
> size_comment_1
) {
6570 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_comment_1
, length_comment_1
);
6572 NDR_CHECK(ndr_check_string_terminator(ndr
, length_comment_1
, sizeof(uint16_t)));
6573 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, length_comment_1
, sizeof(uint16_t), CH_UTF16
));
6574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6577 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6578 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6581 size_location_1
= ndr_get_array_size(ndr
, &r
->location
);
6582 length_location_1
= ndr_get_array_length(ndr
, &r
->location
);
6583 if (length_location_1
> size_location_1
) {
6584 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_location_1
, length_location_1
);
6586 NDR_CHECK(ndr_check_string_terminator(ndr
, length_location_1
, sizeof(uint16_t)));
6587 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, length_location_1
, sizeof(uint16_t), CH_UTF16
));
6588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6591 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6592 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6593 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6594 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6595 size_sepfile_1
= ndr_get_array_size(ndr
, &r
->sepfile
);
6596 length_sepfile_1
= ndr_get_array_length(ndr
, &r
->sepfile
);
6597 if (length_sepfile_1
> size_sepfile_1
) {
6598 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_sepfile_1
, length_sepfile_1
);
6600 NDR_CHECK(ndr_check_string_terminator(ndr
, length_sepfile_1
, sizeof(uint16_t)));
6601 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, length_sepfile_1
, sizeof(uint16_t), CH_UTF16
));
6602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6604 if (r
->printprocessor
) {
6605 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6606 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6609 size_printprocessor_1
= ndr_get_array_size(ndr
, &r
->printprocessor
);
6610 length_printprocessor_1
= ndr_get_array_length(ndr
, &r
->printprocessor
);
6611 if (length_printprocessor_1
> size_printprocessor_1
) {
6612 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printprocessor_1
, length_printprocessor_1
);
6614 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printprocessor_1
, sizeof(uint16_t)));
6615 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, length_printprocessor_1
, sizeof(uint16_t), CH_UTF16
));
6616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6619 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6620 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6621 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6622 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6623 size_datatype_1
= ndr_get_array_size(ndr
, &r
->datatype
);
6624 length_datatype_1
= ndr_get_array_length(ndr
, &r
->datatype
);
6625 if (length_datatype_1
> size_datatype_1
) {
6626 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
6628 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
6629 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
6630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6632 if (r
->parameters
) {
6633 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6634 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6635 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6636 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6637 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
6638 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
6639 if (length_parameters_1
> size_parameters_1
) {
6640 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
6642 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
6643 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
6644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6647 return NDR_ERR_SUCCESS
;
6650 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6652 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6654 ndr_print_ptr(ndr
, "servername", r
->servername
);
6656 if (r
->servername
) {
6657 ndr_print_string(ndr
, "servername", r
->servername
);
6660 ndr_print_ptr(ndr
, "printername", r
->printername
);
6662 if (r
->printername
) {
6663 ndr_print_string(ndr
, "printername", r
->printername
);
6666 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6669 ndr_print_string(ndr
, "sharename", r
->sharename
);
6672 ndr_print_ptr(ndr
, "portname", r
->portname
);
6675 ndr_print_string(ndr
, "portname", r
->portname
);
6678 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6680 if (r
->drivername
) {
6681 ndr_print_string(ndr
, "drivername", r
->drivername
);
6684 ndr_print_ptr(ndr
, "comment", r
->comment
);
6687 ndr_print_string(ndr
, "comment", r
->comment
);
6690 ndr_print_ptr(ndr
, "location", r
->location
);
6693 ndr_print_string(ndr
, "location", r
->location
);
6696 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
6697 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
6700 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
6703 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
6705 if (r
->printprocessor
) {
6706 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
6709 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
6712 ndr_print_string(ndr
, "datatype", r
->datatype
);
6715 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6717 if (r
->parameters
) {
6718 ndr_print_string(ndr
, "parameters", r
->parameters
);
6721 ndr_print_uint32(ndr
, "secdesc_ptr", r
->secdesc_ptr
);
6722 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6723 ndr_print_uint32(ndr
, "priority", r
->priority
);
6724 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
6725 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
6726 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
6727 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6728 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6729 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
6733 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
6735 if (ndr_flags
& NDR_SCALARS
) {
6736 NDR_CHECK(ndr_push_align(ndr
, 4));
6737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
6739 if (ndr_flags
& NDR_BUFFERS
) {
6741 return NDR_ERR_SUCCESS
;
6744 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
6746 if (ndr_flags
& NDR_SCALARS
) {
6747 NDR_CHECK(ndr_pull_align(ndr
, 4));
6748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
6750 if (ndr_flags
& NDR_BUFFERS
) {
6752 return NDR_ERR_SUCCESS
;
6755 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
6757 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
6759 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
6763 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
6765 if (ndr_flags
& NDR_SCALARS
) {
6766 NDR_CHECK(ndr_push_align(ndr
, 4));
6767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6768 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6769 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6771 if (ndr_flags
& NDR_BUFFERS
) {
6772 if (r
->printername
) {
6773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6776 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6778 if (r
->servername
) {
6779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6782 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6785 return NDR_ERR_SUCCESS
;
6788 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
6790 uint32_t _ptr_printername
;
6791 uint32_t size_printername_1
= 0;
6792 uint32_t length_printername_1
= 0;
6793 TALLOC_CTX
*_mem_save_printername_0
;
6794 uint32_t _ptr_servername
;
6795 uint32_t size_servername_1
= 0;
6796 uint32_t length_servername_1
= 0;
6797 TALLOC_CTX
*_mem_save_servername_0
;
6798 if (ndr_flags
& NDR_SCALARS
) {
6799 NDR_CHECK(ndr_pull_align(ndr
, 4));
6800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6801 if (_ptr_printername
) {
6802 NDR_PULL_ALLOC(ndr
, r
->printername
);
6804 r
->printername
= NULL
;
6806 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6807 if (_ptr_servername
) {
6808 NDR_PULL_ALLOC(ndr
, r
->servername
);
6810 r
->servername
= NULL
;
6812 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6814 if (ndr_flags
& NDR_BUFFERS
) {
6815 if (r
->printername
) {
6816 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6817 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6818 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6819 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6820 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
6821 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
6822 if (length_printername_1
> size_printername_1
) {
6823 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
6825 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
6826 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
6827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6829 if (r
->servername
) {
6830 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6831 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6832 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6833 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6834 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
6835 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
6836 if (length_servername_1
> size_servername_1
) {
6837 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
6839 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
6840 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
6841 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6844 return NDR_ERR_SUCCESS
;
6847 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
6849 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
6851 ndr_print_ptr(ndr
, "printername", r
->printername
);
6853 if (r
->printername
) {
6854 ndr_print_string(ndr
, "printername", r
->printername
);
6857 ndr_print_ptr(ndr
, "servername", r
->servername
);
6859 if (r
->servername
) {
6860 ndr_print_string(ndr
, "servername", r
->servername
);
6863 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6867 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
6869 if (ndr_flags
& NDR_SCALARS
) {
6870 NDR_CHECK(ndr_push_align(ndr
, 4));
6871 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6873 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
6875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
6877 if (ndr_flags
& NDR_BUFFERS
) {
6878 if (r
->printername
) {
6879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6882 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6888 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6891 return NDR_ERR_SUCCESS
;
6894 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
6896 uint32_t _ptr_printername
;
6897 uint32_t size_printername_1
= 0;
6898 uint32_t length_printername_1
= 0;
6899 TALLOC_CTX
*_mem_save_printername_0
;
6900 uint32_t _ptr_portname
;
6901 uint32_t size_portname_1
= 0;
6902 uint32_t length_portname_1
= 0;
6903 TALLOC_CTX
*_mem_save_portname_0
;
6904 if (ndr_flags
& NDR_SCALARS
) {
6905 NDR_CHECK(ndr_pull_align(ndr
, 4));
6906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6907 if (_ptr_printername
) {
6908 NDR_PULL_ALLOC(ndr
, r
->printername
);
6910 r
->printername
= NULL
;
6912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6913 if (_ptr_portname
) {
6914 NDR_PULL_ALLOC(ndr
, r
->portname
);
6918 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6919 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
6920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
6922 if (ndr_flags
& NDR_BUFFERS
) {
6923 if (r
->printername
) {
6924 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6925 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6926 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6927 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6928 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
6929 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
6930 if (length_printername_1
> size_printername_1
) {
6931 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
6933 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
6934 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
6935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6938 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6939 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6940 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6941 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6942 size_portname_1
= ndr_get_array_size(ndr
, &r
->portname
);
6943 length_portname_1
= ndr_get_array_length(ndr
, &r
->portname
);
6944 if (length_portname_1
> size_portname_1
) {
6945 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_portname_1
, length_portname_1
);
6947 NDR_CHECK(ndr_check_string_terminator(ndr
, length_portname_1
, sizeof(uint16_t)));
6948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, length_portname_1
, sizeof(uint16_t), CH_UTF16
));
6949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6952 return NDR_ERR_SUCCESS
;
6955 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
6957 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
6959 ndr_print_ptr(ndr
, "printername", r
->printername
);
6961 if (r
->printername
) {
6962 ndr_print_string(ndr
, "printername", r
->printername
);
6965 ndr_print_ptr(ndr
, "portname", r
->portname
);
6968 ndr_print_string(ndr
, "portname", r
->portname
);
6971 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6972 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
6973 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
6977 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
6979 if (ndr_flags
& NDR_SCALARS
) {
6980 NDR_CHECK(ndr_push_align(ndr
, 4));
6981 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6983 if (ndr_flags
& NDR_BUFFERS
) {
6985 return NDR_ERR_SUCCESS
;
6988 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
6990 if (ndr_flags
& NDR_SCALARS
) {
6991 NDR_CHECK(ndr_pull_align(ndr
, 4));
6992 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6994 if (ndr_flags
& NDR_BUFFERS
) {
6996 return NDR_ERR_SUCCESS
;
6999 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7001 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7003 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7007 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7009 if (ndr_flags
& NDR_SCALARS
) {
7010 NDR_CHECK(ndr_push_align(ndr
, 4));
7011 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7012 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7014 if (ndr_flags
& NDR_BUFFERS
) {
7016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7019 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7022 return NDR_ERR_SUCCESS
;
7025 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7028 uint32_t size_guid_1
= 0;
7029 uint32_t length_guid_1
= 0;
7030 TALLOC_CTX
*_mem_save_guid_0
;
7031 if (ndr_flags
& NDR_SCALARS
) {
7032 NDR_CHECK(ndr_pull_align(ndr
, 4));
7033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7035 NDR_PULL_ALLOC(ndr
, r
->guid
);
7039 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7041 if (ndr_flags
& NDR_BUFFERS
) {
7043 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7044 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7047 size_guid_1
= ndr_get_array_size(ndr
, &r
->guid
);
7048 length_guid_1
= ndr_get_array_length(ndr
, &r
->guid
);
7049 if (length_guid_1
> size_guid_1
) {
7050 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_guid_1
, length_guid_1
);
7052 NDR_CHECK(ndr_check_string_terminator(ndr
, length_guid_1
, sizeof(uint16_t)));
7053 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, length_guid_1
, sizeof(uint16_t), CH_UTF16
));
7054 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7057 return NDR_ERR_SUCCESS
;
7060 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7062 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7064 ndr_print_ptr(ndr
, "guid", r
->guid
);
7067 ndr_print_string(ndr
, "guid", r
->guid
);
7070 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7074 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo8
*r
)
7076 if (ndr_flags
& NDR_SCALARS
) {
7077 NDR_CHECK(ndr_push_align(ndr
, 4));
7078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7080 if (ndr_flags
& NDR_BUFFERS
) {
7082 return NDR_ERR_SUCCESS
;
7085 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo8
*r
)
7087 if (ndr_flags
& NDR_SCALARS
) {
7088 NDR_CHECK(ndr_pull_align(ndr
, 4));
7089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7091 if (ndr_flags
& NDR_BUFFERS
) {
7093 return NDR_ERR_SUCCESS
;
7096 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo8
*r
)
7098 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo8");
7100 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7104 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo9
*r
)
7106 if (ndr_flags
& NDR_SCALARS
) {
7107 NDR_CHECK(ndr_push_align(ndr
, 4));
7108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7110 if (ndr_flags
& NDR_BUFFERS
) {
7112 return NDR_ERR_SUCCESS
;
7115 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo9
*r
)
7117 if (ndr_flags
& NDR_SCALARS
) {
7118 NDR_CHECK(ndr_pull_align(ndr
, 4));
7119 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7121 if (ndr_flags
& NDR_BUFFERS
) {
7123 return NDR_ERR_SUCCESS
;
7126 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo9
*r
)
7128 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo9");
7130 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7134 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7136 if (ndr_flags
& NDR_SCALARS
) {
7137 int level
= ndr_push_get_switch_value(ndr
, r
);
7138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7149 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7153 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7169 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7173 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7185 if (ndr_flags
& NDR_BUFFERS
) {
7186 int level
= ndr_push_get_switch_value(ndr
, r
);
7190 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7196 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7202 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7208 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7214 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7220 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7226 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7232 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7238 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7244 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7253 return NDR_ERR_SUCCESS
;
7256 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7260 TALLOC_CTX
*_mem_save_info0_0
;
7261 uint32_t _ptr_info0
;
7262 TALLOC_CTX
*_mem_save_info1_0
;
7263 uint32_t _ptr_info1
;
7264 TALLOC_CTX
*_mem_save_info2_0
;
7265 uint32_t _ptr_info2
;
7266 TALLOC_CTX
*_mem_save_info3_0
;
7267 uint32_t _ptr_info3
;
7268 TALLOC_CTX
*_mem_save_info4_0
;
7269 uint32_t _ptr_info4
;
7270 TALLOC_CTX
*_mem_save_info5_0
;
7271 uint32_t _ptr_info5
;
7272 TALLOC_CTX
*_mem_save_info6_0
;
7273 uint32_t _ptr_info6
;
7274 TALLOC_CTX
*_mem_save_info7_0
;
7275 uint32_t _ptr_info7
;
7276 TALLOC_CTX
*_mem_save_info8_0
;
7277 uint32_t _ptr_info8
;
7278 TALLOC_CTX
*_mem_save_info9_0
;
7279 uint32_t _ptr_info9
;
7280 level
= ndr_pull_get_switch_value(ndr
, r
);
7281 if (ndr_flags
& NDR_SCALARS
) {
7282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7283 if (_level
!= level
) {
7284 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7288 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7290 NDR_PULL_ALLOC(ndr
, r
->info0
);
7297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7299 NDR_PULL_ALLOC(ndr
, r
->info1
);
7306 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7308 NDR_PULL_ALLOC(ndr
, r
->info2
);
7315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7317 NDR_PULL_ALLOC(ndr
, r
->info3
);
7324 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7326 NDR_PULL_ALLOC(ndr
, r
->info4
);
7333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7335 NDR_PULL_ALLOC(ndr
, r
->info5
);
7342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7344 NDR_PULL_ALLOC(ndr
, r
->info6
);
7351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7353 NDR_PULL_ALLOC(ndr
, r
->info7
);
7360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7362 NDR_PULL_ALLOC(ndr
, r
->info8
);
7369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7371 NDR_PULL_ALLOC(ndr
, r
->info9
);
7382 if (ndr_flags
& NDR_BUFFERS
) {
7386 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7387 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7388 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7395 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7396 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7397 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7404 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7405 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7406 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7413 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7414 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7415 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7422 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7423 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7424 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7431 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7432 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7433 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7440 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7441 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7442 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7449 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7450 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7451 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7458 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7459 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7460 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7467 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7468 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7469 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7479 return NDR_ERR_SUCCESS
;
7482 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7485 level
= ndr_print_get_switch_value(ndr
, r
);
7486 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7489 ndr_print_ptr(ndr
, "info0", r
->info0
);
7492 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7498 ndr_print_ptr(ndr
, "info1", r
->info1
);
7501 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7507 ndr_print_ptr(ndr
, "info2", r
->info2
);
7510 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7516 ndr_print_ptr(ndr
, "info3", r
->info3
);
7519 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7525 ndr_print_ptr(ndr
, "info4", r
->info4
);
7528 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7534 ndr_print_ptr(ndr
, "info5", r
->info5
);
7537 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7543 ndr_print_ptr(ndr
, "info6", r
->info6
);
7546 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7552 ndr_print_ptr(ndr
, "info7", r
->info7
);
7555 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7561 ndr_print_ptr(ndr
, "info8", r
->info8
);
7564 ndr_print_spoolss_SetPrinterInfo8(ndr
, "info8", r
->info8
);
7570 ndr_print_ptr(ndr
, "info9", r
->info9
);
7573 ndr_print_spoolss_SetPrinterInfo9(ndr
, "info9", r
->info9
);
7584 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7586 if (ndr_flags
& NDR_SCALARS
) {
7587 NDR_CHECK(ndr_push_align(ndr
, 4));
7588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7589 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7590 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7592 if (ndr_flags
& NDR_BUFFERS
) {
7593 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7595 return NDR_ERR_SUCCESS
;
7598 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7600 if (ndr_flags
& NDR_SCALARS
) {
7601 NDR_CHECK(ndr_pull_align(ndr
, 4));
7602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7603 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7604 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7606 if (ndr_flags
& NDR_BUFFERS
) {
7607 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7609 return NDR_ERR_SUCCESS
;
7612 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7614 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7616 ndr_print_uint32(ndr
, "level", r
->level
);
7617 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7618 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7622 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7624 if (ndr_flags
& NDR_SCALARS
) {
7625 NDR_CHECK(ndr_push_align(ndr
, 4));
7626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7628 uint32_t _flags_save_string_array
= ndr
->flags
;
7629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7630 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7631 ndr
->flags
= _flags_save_string_array
;
7634 if (ndr_flags
& NDR_BUFFERS
) {
7636 return NDR_ERR_SUCCESS
;
7639 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7641 if (ndr_flags
& NDR_SCALARS
) {
7642 NDR_CHECK(ndr_pull_align(ndr
, 4));
7643 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7645 uint32_t _flags_save_string_array
= ndr
->flags
;
7646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7647 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7648 ndr
->flags
= _flags_save_string_array
;
7651 if (ndr_flags
& NDR_BUFFERS
) {
7653 return NDR_ERR_SUCCESS
;
7656 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7658 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7660 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
);
7661 ndr_print_string_array(ndr
, "string", r
->string
);
7665 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7667 if (ndr_flags
& NDR_SCALARS
) {
7668 NDR_CHECK(ndr_push_align(ndr
, 4));
7669 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7671 if (ndr_flags
& NDR_BUFFERS
) {
7672 if (r
->driver_name
) {
7673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7676 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7679 return NDR_ERR_SUCCESS
;
7682 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7684 uint32_t _ptr_driver_name
;
7685 uint32_t size_driver_name_1
= 0;
7686 uint32_t length_driver_name_1
= 0;
7687 TALLOC_CTX
*_mem_save_driver_name_0
;
7688 if (ndr_flags
& NDR_SCALARS
) {
7689 NDR_CHECK(ndr_pull_align(ndr
, 4));
7690 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7691 if (_ptr_driver_name
) {
7692 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7694 r
->driver_name
= NULL
;
7697 if (ndr_flags
& NDR_BUFFERS
) {
7698 if (r
->driver_name
) {
7699 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7700 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7701 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7702 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7703 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
7704 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
7705 if (length_driver_name_1
> size_driver_name_1
) {
7706 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
7708 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
7709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
7710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7713 return NDR_ERR_SUCCESS
;
7716 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
7718 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
7720 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7722 if (r
->driver_name
) {
7723 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7729 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
7731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7732 return NDR_ERR_SUCCESS
;
7735 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
7738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7740 return NDR_ERR_SUCCESS
;
7743 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
7745 const char *val
= NULL
;
7748 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
7749 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
7750 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
7751 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
7753 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7756 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
7758 if (ndr_flags
& NDR_SCALARS
) {
7759 NDR_CHECK(ndr_push_align(ndr
, 4));
7760 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7761 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7762 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7763 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7764 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7765 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7767 if (ndr_flags
& NDR_BUFFERS
) {
7768 if (r
->driver_name
) {
7769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7772 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7774 if (r
->architecture
) {
7775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7778 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7780 if (r
->driver_path
) {
7781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7784 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7790 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7792 if (r
->config_file
) {
7793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7796 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7799 return NDR_ERR_SUCCESS
;
7802 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
7804 uint32_t _ptr_driver_name
;
7805 uint32_t size_driver_name_1
= 0;
7806 uint32_t length_driver_name_1
= 0;
7807 TALLOC_CTX
*_mem_save_driver_name_0
;
7808 uint32_t _ptr_architecture
;
7809 uint32_t size_architecture_1
= 0;
7810 uint32_t length_architecture_1
= 0;
7811 TALLOC_CTX
*_mem_save_architecture_0
;
7812 uint32_t _ptr_driver_path
;
7813 uint32_t size_driver_path_1
= 0;
7814 uint32_t length_driver_path_1
= 0;
7815 TALLOC_CTX
*_mem_save_driver_path_0
;
7816 uint32_t _ptr_data_file
;
7817 uint32_t size_data_file_1
= 0;
7818 uint32_t length_data_file_1
= 0;
7819 TALLOC_CTX
*_mem_save_data_file_0
;
7820 uint32_t _ptr_config_file
;
7821 uint32_t size_config_file_1
= 0;
7822 uint32_t length_config_file_1
= 0;
7823 TALLOC_CTX
*_mem_save_config_file_0
;
7824 if (ndr_flags
& NDR_SCALARS
) {
7825 NDR_CHECK(ndr_pull_align(ndr
, 4));
7826 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7828 if (_ptr_driver_name
) {
7829 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7831 r
->driver_name
= NULL
;
7833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7834 if (_ptr_architecture
) {
7835 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7837 r
->architecture
= NULL
;
7839 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7840 if (_ptr_driver_path
) {
7841 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7843 r
->driver_path
= NULL
;
7845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7846 if (_ptr_data_file
) {
7847 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7849 r
->data_file
= NULL
;
7851 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7852 if (_ptr_config_file
) {
7853 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7855 r
->config_file
= NULL
;
7858 if (ndr_flags
& NDR_BUFFERS
) {
7859 if (r
->driver_name
) {
7860 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7861 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7862 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7863 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7864 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
7865 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
7866 if (length_driver_name_1
> size_driver_name_1
) {
7867 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
7869 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
7870 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
7871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7873 if (r
->architecture
) {
7874 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7875 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7878 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
7879 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
7880 if (length_architecture_1
> size_architecture_1
) {
7881 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
7883 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
7884 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
7885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7887 if (r
->driver_path
) {
7888 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7889 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7891 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7892 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
7893 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
7894 if (length_driver_path_1
> size_driver_path_1
) {
7895 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
7897 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
7898 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
7899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7902 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7903 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7906 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
7907 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
7908 if (length_data_file_1
> size_data_file_1
) {
7909 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
7911 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
7912 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
7913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7915 if (r
->config_file
) {
7916 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7917 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7918 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7919 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7920 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
7921 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
7922 if (length_config_file_1
> size_config_file_1
) {
7923 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
7925 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
7926 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
7927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7930 return NDR_ERR_SUCCESS
;
7933 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
7935 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
7937 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7938 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7940 if (r
->driver_name
) {
7941 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7944 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7946 if (r
->architecture
) {
7947 ndr_print_string(ndr
, "architecture", r
->architecture
);
7950 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7952 if (r
->driver_path
) {
7953 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7956 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7959 ndr_print_string(ndr
, "data_file", r
->data_file
);
7962 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7964 if (r
->config_file
) {
7965 ndr_print_string(ndr
, "config_file", r
->config_file
);
7971 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
7973 if (ndr_flags
& NDR_SCALARS
) {
7974 NDR_CHECK(ndr_push_align(ndr
, 4));
7975 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7977 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7978 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7980 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7981 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7982 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7983 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7985 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7987 if (ndr_flags
& NDR_BUFFERS
) {
7988 if (r
->driver_name
) {
7989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7992 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7994 if (r
->architecture
) {
7995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7998 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8000 if (r
->driver_path
) {
8001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8004 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8012 if (r
->config_file
) {
8013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8016 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8022 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8024 if (r
->monitor_name
) {
8025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8030 if (r
->default_datatype
) {
8031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8034 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8036 if (r
->dependent_files
) {
8037 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8040 return NDR_ERR_SUCCESS
;
8043 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8045 uint32_t _ptr_driver_name
;
8046 uint32_t size_driver_name_1
= 0;
8047 uint32_t length_driver_name_1
= 0;
8048 TALLOC_CTX
*_mem_save_driver_name_0
;
8049 uint32_t _ptr_architecture
;
8050 uint32_t size_architecture_1
= 0;
8051 uint32_t length_architecture_1
= 0;
8052 TALLOC_CTX
*_mem_save_architecture_0
;
8053 uint32_t _ptr_driver_path
;
8054 uint32_t size_driver_path_1
= 0;
8055 uint32_t length_driver_path_1
= 0;
8056 TALLOC_CTX
*_mem_save_driver_path_0
;
8057 uint32_t _ptr_data_file
;
8058 uint32_t size_data_file_1
= 0;
8059 uint32_t length_data_file_1
= 0;
8060 TALLOC_CTX
*_mem_save_data_file_0
;
8061 uint32_t _ptr_config_file
;
8062 uint32_t size_config_file_1
= 0;
8063 uint32_t length_config_file_1
= 0;
8064 TALLOC_CTX
*_mem_save_config_file_0
;
8065 uint32_t _ptr_help_file
;
8066 uint32_t size_help_file_1
= 0;
8067 uint32_t length_help_file_1
= 0;
8068 TALLOC_CTX
*_mem_save_help_file_0
;
8069 uint32_t _ptr_monitor_name
;
8070 uint32_t size_monitor_name_1
= 0;
8071 uint32_t length_monitor_name_1
= 0;
8072 TALLOC_CTX
*_mem_save_monitor_name_0
;
8073 uint32_t _ptr_default_datatype
;
8074 uint32_t size_default_datatype_1
= 0;
8075 uint32_t length_default_datatype_1
= 0;
8076 TALLOC_CTX
*_mem_save_default_datatype_0
;
8077 uint32_t _ptr_dependent_files
;
8078 TALLOC_CTX
*_mem_save_dependent_files_0
;
8079 if (ndr_flags
& NDR_SCALARS
) {
8080 NDR_CHECK(ndr_pull_align(ndr
, 4));
8081 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8083 if (_ptr_driver_name
) {
8084 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8086 r
->driver_name
= NULL
;
8088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8089 if (_ptr_architecture
) {
8090 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8092 r
->architecture
= NULL
;
8094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8095 if (_ptr_driver_path
) {
8096 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8098 r
->driver_path
= NULL
;
8100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8101 if (_ptr_data_file
) {
8102 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8104 r
->data_file
= NULL
;
8106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8107 if (_ptr_config_file
) {
8108 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8110 r
->config_file
= NULL
;
8112 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8113 if (_ptr_help_file
) {
8114 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8116 r
->help_file
= NULL
;
8118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8119 if (_ptr_monitor_name
) {
8120 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8122 r
->monitor_name
= NULL
;
8124 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8125 if (_ptr_default_datatype
) {
8126 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8128 r
->default_datatype
= NULL
;
8130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8131 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8132 if (_ptr_dependent_files
) {
8133 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8135 r
->dependent_files
= NULL
;
8138 if (ndr_flags
& NDR_BUFFERS
) {
8139 if (r
->driver_name
) {
8140 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8141 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8144 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8145 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8146 if (length_driver_name_1
> size_driver_name_1
) {
8147 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8149 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8150 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8153 if (r
->architecture
) {
8154 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8155 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8156 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8157 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8158 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
8159 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
8160 if (length_architecture_1
> size_architecture_1
) {
8161 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
8163 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
8164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
8165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8167 if (r
->driver_path
) {
8168 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8169 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8170 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8171 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8172 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
8173 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
8174 if (length_driver_path_1
> size_driver_path_1
) {
8175 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
8177 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
8178 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
8179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8182 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8183 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8184 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8185 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8186 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
8187 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
8188 if (length_data_file_1
> size_data_file_1
) {
8189 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
8191 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
8193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8195 if (r
->config_file
) {
8196 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8197 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8200 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
8201 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
8202 if (length_config_file_1
> size_config_file_1
) {
8203 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
8205 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
8206 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
8207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8210 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8211 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8214 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
8215 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
8216 if (length_help_file_1
> size_help_file_1
) {
8217 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
8219 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
8220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
8221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8223 if (r
->monitor_name
) {
8224 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8225 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8226 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8227 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8228 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
8229 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
8230 if (length_monitor_name_1
> size_monitor_name_1
) {
8231 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
8233 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
8234 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
8235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8237 if (r
->default_datatype
) {
8238 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8239 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8240 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8241 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8242 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
8243 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
8244 if (length_default_datatype_1
> size_default_datatype_1
) {
8245 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
8247 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
8248 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
8249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8251 if (r
->dependent_files
) {
8252 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8253 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8254 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8258 return NDR_ERR_SUCCESS
;
8261 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
8263 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
8265 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8266 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8268 if (r
->driver_name
) {
8269 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8272 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8274 if (r
->architecture
) {
8275 ndr_print_string(ndr
, "architecture", r
->architecture
);
8278 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8280 if (r
->driver_path
) {
8281 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8284 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8287 ndr_print_string(ndr
, "data_file", r
->data_file
);
8290 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8292 if (r
->config_file
) {
8293 ndr_print_string(ndr
, "config_file", r
->config_file
);
8296 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8299 ndr_print_string(ndr
, "help_file", r
->help_file
);
8302 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8304 if (r
->monitor_name
) {
8305 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8308 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8310 if (r
->default_datatype
) {
8311 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8314 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
);
8315 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8317 if (r
->dependent_files
) {
8318 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8324 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8326 if (ndr_flags
& NDR_SCALARS
) {
8327 NDR_CHECK(ndr_push_align(ndr
, 4));
8328 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8329 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8330 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8331 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8332 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8333 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8334 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8335 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8336 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8338 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8340 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8342 if (ndr_flags
& NDR_BUFFERS
) {
8343 if (r
->driver_name
) {
8344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8349 if (r
->architecture
) {
8350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8353 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8355 if (r
->driver_path
) {
8356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8367 if (r
->config_file
) {
8368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8371 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8379 if (r
->monitor_name
) {
8380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8383 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8385 if (r
->default_datatype
) {
8386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8389 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8391 if (r
->dependent_files
) {
8392 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8394 if (r
->previous_names
) {
8395 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8398 return NDR_ERR_SUCCESS
;
8401 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8403 uint32_t _ptr_driver_name
;
8404 uint32_t size_driver_name_1
= 0;
8405 uint32_t length_driver_name_1
= 0;
8406 TALLOC_CTX
*_mem_save_driver_name_0
;
8407 uint32_t _ptr_architecture
;
8408 uint32_t size_architecture_1
= 0;
8409 uint32_t length_architecture_1
= 0;
8410 TALLOC_CTX
*_mem_save_architecture_0
;
8411 uint32_t _ptr_driver_path
;
8412 uint32_t size_driver_path_1
= 0;
8413 uint32_t length_driver_path_1
= 0;
8414 TALLOC_CTX
*_mem_save_driver_path_0
;
8415 uint32_t _ptr_data_file
;
8416 uint32_t size_data_file_1
= 0;
8417 uint32_t length_data_file_1
= 0;
8418 TALLOC_CTX
*_mem_save_data_file_0
;
8419 uint32_t _ptr_config_file
;
8420 uint32_t size_config_file_1
= 0;
8421 uint32_t length_config_file_1
= 0;
8422 TALLOC_CTX
*_mem_save_config_file_0
;
8423 uint32_t _ptr_help_file
;
8424 uint32_t size_help_file_1
= 0;
8425 uint32_t length_help_file_1
= 0;
8426 TALLOC_CTX
*_mem_save_help_file_0
;
8427 uint32_t _ptr_monitor_name
;
8428 uint32_t size_monitor_name_1
= 0;
8429 uint32_t length_monitor_name_1
= 0;
8430 TALLOC_CTX
*_mem_save_monitor_name_0
;
8431 uint32_t _ptr_default_datatype
;
8432 uint32_t size_default_datatype_1
= 0;
8433 uint32_t length_default_datatype_1
= 0;
8434 TALLOC_CTX
*_mem_save_default_datatype_0
;
8435 uint32_t _ptr_dependent_files
;
8436 TALLOC_CTX
*_mem_save_dependent_files_0
;
8437 uint32_t _ptr_previous_names
;
8438 TALLOC_CTX
*_mem_save_previous_names_0
;
8439 if (ndr_flags
& NDR_SCALARS
) {
8440 NDR_CHECK(ndr_pull_align(ndr
, 4));
8441 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8442 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8443 if (_ptr_driver_name
) {
8444 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8446 r
->driver_name
= NULL
;
8448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8449 if (_ptr_architecture
) {
8450 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8452 r
->architecture
= NULL
;
8454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8455 if (_ptr_driver_path
) {
8456 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8458 r
->driver_path
= NULL
;
8460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8461 if (_ptr_data_file
) {
8462 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8464 r
->data_file
= NULL
;
8466 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8467 if (_ptr_config_file
) {
8468 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8470 r
->config_file
= NULL
;
8472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8473 if (_ptr_help_file
) {
8474 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8476 r
->help_file
= NULL
;
8478 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8479 if (_ptr_monitor_name
) {
8480 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8482 r
->monitor_name
= NULL
;
8484 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8485 if (_ptr_default_datatype
) {
8486 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8488 r
->default_datatype
= NULL
;
8490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8492 if (_ptr_dependent_files
) {
8493 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8495 r
->dependent_files
= NULL
;
8497 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8499 if (_ptr_previous_names
) {
8500 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8502 r
->previous_names
= NULL
;
8505 if (ndr_flags
& NDR_BUFFERS
) {
8506 if (r
->driver_name
) {
8507 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8508 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8510 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8511 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8512 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8513 if (length_driver_name_1
> size_driver_name_1
) {
8514 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8516 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8517 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8520 if (r
->architecture
) {
8521 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8522 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8525 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
8526 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
8527 if (length_architecture_1
> size_architecture_1
) {
8528 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
8530 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
8531 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
8532 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8534 if (r
->driver_path
) {
8535 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8536 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8537 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8538 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8539 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
8540 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
8541 if (length_driver_path_1
> size_driver_path_1
) {
8542 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
8544 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
8545 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
8546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8549 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8550 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8552 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8553 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
8554 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
8555 if (length_data_file_1
> size_data_file_1
) {
8556 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
8558 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
8559 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
8560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8562 if (r
->config_file
) {
8563 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8564 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8565 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8566 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8567 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
8568 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
8569 if (length_config_file_1
> size_config_file_1
) {
8570 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
8572 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
8573 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
8574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8577 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8578 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8581 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
8582 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
8583 if (length_help_file_1
> size_help_file_1
) {
8584 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
8586 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
8587 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
8588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8590 if (r
->monitor_name
) {
8591 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8592 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8593 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8594 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8595 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
8596 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
8597 if (length_monitor_name_1
> size_monitor_name_1
) {
8598 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
8600 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
8601 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
8602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8604 if (r
->default_datatype
) {
8605 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8606 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8609 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
8610 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
8611 if (length_default_datatype_1
> size_default_datatype_1
) {
8612 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
8614 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
8615 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
8616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8618 if (r
->dependent_files
) {
8619 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8620 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8621 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8624 if (r
->previous_names
) {
8625 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8626 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8627 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8631 return NDR_ERR_SUCCESS
;
8634 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8636 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8638 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8639 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8641 if (r
->driver_name
) {
8642 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8645 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8647 if (r
->architecture
) {
8648 ndr_print_string(ndr
, "architecture", r
->architecture
);
8651 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8653 if (r
->driver_path
) {
8654 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8657 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8660 ndr_print_string(ndr
, "data_file", r
->data_file
);
8663 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8665 if (r
->config_file
) {
8666 ndr_print_string(ndr
, "config_file", r
->config_file
);
8669 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8672 ndr_print_string(ndr
, "help_file", r
->help_file
);
8675 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8677 if (r
->monitor_name
) {
8678 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8681 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8683 if (r
->default_datatype
) {
8684 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8687 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
);
8688 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8690 if (r
->dependent_files
) {
8691 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8694 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
);
8695 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8697 if (r
->previous_names
) {
8698 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8704 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8707 return NDR_ERR_SUCCESS
;
8710 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8715 return NDR_ERR_SUCCESS
;
8718 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8720 ndr_print_uint32(ndr
, name
, r
);
8722 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
8726 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8728 if (ndr_flags
& NDR_SCALARS
) {
8729 NDR_CHECK(ndr_push_align(ndr
, 8));
8730 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8731 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8732 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8733 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8734 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8735 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8736 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8737 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8740 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8742 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8743 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8744 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8745 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8746 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8747 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8750 if (ndr_flags
& NDR_BUFFERS
) {
8751 if (r
->driver_name
) {
8752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8755 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8757 if (r
->architecture
) {
8758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8761 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8763 if (r
->driver_path
) {
8764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8767 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8773 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8775 if (r
->config_file
) {
8776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8779 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8785 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8787 if (r
->monitor_name
) {
8788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8791 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8793 if (r
->default_datatype
) {
8794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8797 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8799 if (r
->dependent_files
) {
8800 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8802 if (r
->previous_names
) {
8803 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8805 if (r
->manufacturer_name
) {
8806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8809 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8811 if (r
->manufacturer_url
) {
8812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8815 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8817 if (r
->hardware_id
) {
8818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8821 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8827 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8830 return NDR_ERR_SUCCESS
;
8833 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
8835 uint32_t _ptr_driver_name
;
8836 uint32_t size_driver_name_1
= 0;
8837 uint32_t length_driver_name_1
= 0;
8838 TALLOC_CTX
*_mem_save_driver_name_0
;
8839 uint32_t _ptr_architecture
;
8840 uint32_t size_architecture_1
= 0;
8841 uint32_t length_architecture_1
= 0;
8842 TALLOC_CTX
*_mem_save_architecture_0
;
8843 uint32_t _ptr_driver_path
;
8844 uint32_t size_driver_path_1
= 0;
8845 uint32_t length_driver_path_1
= 0;
8846 TALLOC_CTX
*_mem_save_driver_path_0
;
8847 uint32_t _ptr_data_file
;
8848 uint32_t size_data_file_1
= 0;
8849 uint32_t length_data_file_1
= 0;
8850 TALLOC_CTX
*_mem_save_data_file_0
;
8851 uint32_t _ptr_config_file
;
8852 uint32_t size_config_file_1
= 0;
8853 uint32_t length_config_file_1
= 0;
8854 TALLOC_CTX
*_mem_save_config_file_0
;
8855 uint32_t _ptr_help_file
;
8856 uint32_t size_help_file_1
= 0;
8857 uint32_t length_help_file_1
= 0;
8858 TALLOC_CTX
*_mem_save_help_file_0
;
8859 uint32_t _ptr_monitor_name
;
8860 uint32_t size_monitor_name_1
= 0;
8861 uint32_t length_monitor_name_1
= 0;
8862 TALLOC_CTX
*_mem_save_monitor_name_0
;
8863 uint32_t _ptr_default_datatype
;
8864 uint32_t size_default_datatype_1
= 0;
8865 uint32_t length_default_datatype_1
= 0;
8866 TALLOC_CTX
*_mem_save_default_datatype_0
;
8867 uint32_t _ptr_dependent_files
;
8868 TALLOC_CTX
*_mem_save_dependent_files_0
;
8869 uint32_t _ptr_previous_names
;
8870 TALLOC_CTX
*_mem_save_previous_names_0
;
8871 uint32_t _ptr_manufacturer_name
;
8872 uint32_t size_manufacturer_name_1
= 0;
8873 uint32_t length_manufacturer_name_1
= 0;
8874 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8875 uint32_t _ptr_manufacturer_url
;
8876 uint32_t size_manufacturer_url_1
= 0;
8877 uint32_t length_manufacturer_url_1
= 0;
8878 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8879 uint32_t _ptr_hardware_id
;
8880 uint32_t size_hardware_id_1
= 0;
8881 uint32_t length_hardware_id_1
= 0;
8882 TALLOC_CTX
*_mem_save_hardware_id_0
;
8883 uint32_t _ptr_provider
;
8884 uint32_t size_provider_1
= 0;
8885 uint32_t length_provider_1
= 0;
8886 TALLOC_CTX
*_mem_save_provider_0
;
8887 if (ndr_flags
& NDR_SCALARS
) {
8888 NDR_CHECK(ndr_pull_align(ndr
, 8));
8889 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8891 if (_ptr_driver_name
) {
8892 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8894 r
->driver_name
= NULL
;
8896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8897 if (_ptr_architecture
) {
8898 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8900 r
->architecture
= NULL
;
8902 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8903 if (_ptr_driver_path
) {
8904 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8906 r
->driver_path
= NULL
;
8908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8909 if (_ptr_data_file
) {
8910 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8912 r
->data_file
= NULL
;
8914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8915 if (_ptr_config_file
) {
8916 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8918 r
->config_file
= NULL
;
8920 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8921 if (_ptr_help_file
) {
8922 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8924 r
->help_file
= NULL
;
8926 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8927 if (_ptr_monitor_name
) {
8928 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8930 r
->monitor_name
= NULL
;
8932 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8933 if (_ptr_default_datatype
) {
8934 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8936 r
->default_datatype
= NULL
;
8938 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8939 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8940 if (_ptr_dependent_files
) {
8941 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8943 r
->dependent_files
= NULL
;
8945 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8946 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8947 if (_ptr_previous_names
) {
8948 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8950 r
->previous_names
= NULL
;
8952 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
8953 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
8954 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
8955 if (_ptr_manufacturer_name
) {
8956 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
8958 r
->manufacturer_name
= NULL
;
8960 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
8961 if (_ptr_manufacturer_url
) {
8962 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
8964 r
->manufacturer_url
= NULL
;
8966 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
8967 if (_ptr_hardware_id
) {
8968 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
8970 r
->hardware_id
= NULL
;
8972 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
8973 if (_ptr_provider
) {
8974 NDR_PULL_ALLOC(ndr
, r
->provider
);
8979 if (ndr_flags
& NDR_BUFFERS
) {
8980 if (r
->driver_name
) {
8981 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8982 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8983 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8984 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8985 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8986 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8987 if (length_driver_name_1
> size_driver_name_1
) {
8988 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8990 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8991 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8994 if (r
->architecture
) {
8995 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8996 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8997 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8998 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8999 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
9000 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
9001 if (length_architecture_1
> size_architecture_1
) {
9002 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
9004 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
9005 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
9006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9008 if (r
->driver_path
) {
9009 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9010 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9011 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9012 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9013 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
9014 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
9015 if (length_driver_path_1
> size_driver_path_1
) {
9016 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
9018 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
9019 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
9020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9023 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9024 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9025 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9026 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9027 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
9028 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
9029 if (length_data_file_1
> size_data_file_1
) {
9030 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
9032 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
9033 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
9034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9036 if (r
->config_file
) {
9037 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9038 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9039 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9040 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9041 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
9042 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
9043 if (length_config_file_1
> size_config_file_1
) {
9044 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
9046 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
9047 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
9048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9051 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9052 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9053 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9054 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9055 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
9056 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
9057 if (length_help_file_1
> size_help_file_1
) {
9058 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
9060 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
9061 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
9062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9064 if (r
->monitor_name
) {
9065 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9066 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9069 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
9070 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
9071 if (length_monitor_name_1
> size_monitor_name_1
) {
9072 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
9074 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
9075 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
9076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9078 if (r
->default_datatype
) {
9079 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9080 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9081 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9082 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9083 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
9084 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
9085 if (length_default_datatype_1
> size_default_datatype_1
) {
9086 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
9088 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
9089 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
9090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9092 if (r
->dependent_files
) {
9093 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9094 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9095 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9098 if (r
->previous_names
) {
9099 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9100 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9101 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9104 if (r
->manufacturer_name
) {
9105 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9106 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9109 size_manufacturer_name_1
= ndr_get_array_size(ndr
, &r
->manufacturer_name
);
9110 length_manufacturer_name_1
= ndr_get_array_length(ndr
, &r
->manufacturer_name
);
9111 if (length_manufacturer_name_1
> size_manufacturer_name_1
) {
9112 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_name_1
, length_manufacturer_name_1
);
9114 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_name_1
, sizeof(uint16_t)));
9115 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, length_manufacturer_name_1
, sizeof(uint16_t), CH_UTF16
));
9116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9118 if (r
->manufacturer_url
) {
9119 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9120 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9121 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9122 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9123 size_manufacturer_url_1
= ndr_get_array_size(ndr
, &r
->manufacturer_url
);
9124 length_manufacturer_url_1
= ndr_get_array_length(ndr
, &r
->manufacturer_url
);
9125 if (length_manufacturer_url_1
> size_manufacturer_url_1
) {
9126 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_url_1
, length_manufacturer_url_1
);
9128 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_url_1
, sizeof(uint16_t)));
9129 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, length_manufacturer_url_1
, sizeof(uint16_t), CH_UTF16
));
9130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9132 if (r
->hardware_id
) {
9133 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9134 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9135 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9136 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9137 size_hardware_id_1
= ndr_get_array_size(ndr
, &r
->hardware_id
);
9138 length_hardware_id_1
= ndr_get_array_length(ndr
, &r
->hardware_id
);
9139 if (length_hardware_id_1
> size_hardware_id_1
) {
9140 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_hardware_id_1
, length_hardware_id_1
);
9142 NDR_CHECK(ndr_check_string_terminator(ndr
, length_hardware_id_1
, sizeof(uint16_t)));
9143 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, length_hardware_id_1
, sizeof(uint16_t), CH_UTF16
));
9144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9147 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9148 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9149 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9150 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9151 size_provider_1
= ndr_get_array_size(ndr
, &r
->provider
);
9152 length_provider_1
= ndr_get_array_length(ndr
, &r
->provider
);
9153 if (length_provider_1
> size_provider_1
) {
9154 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_provider_1
, length_provider_1
);
9156 NDR_CHECK(ndr_check_string_terminator(ndr
, length_provider_1
, sizeof(uint16_t)));
9157 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, length_provider_1
, sizeof(uint16_t), CH_UTF16
));
9158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9161 return NDR_ERR_SUCCESS
;
9164 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9166 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9168 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9169 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9171 if (r
->driver_name
) {
9172 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9175 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9177 if (r
->architecture
) {
9178 ndr_print_string(ndr
, "architecture", r
->architecture
);
9181 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9183 if (r
->driver_path
) {
9184 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9187 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9190 ndr_print_string(ndr
, "data_file", r
->data_file
);
9193 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9195 if (r
->config_file
) {
9196 ndr_print_string(ndr
, "config_file", r
->config_file
);
9199 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9202 ndr_print_string(ndr
, "help_file", r
->help_file
);
9205 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9207 if (r
->monitor_name
) {
9208 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9211 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9213 if (r
->default_datatype
) {
9214 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9217 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
);
9218 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9220 if (r
->dependent_files
) {
9221 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9224 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
);
9225 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9227 if (r
->previous_names
) {
9228 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9231 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9232 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9233 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9235 if (r
->manufacturer_name
) {
9236 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9239 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9241 if (r
->manufacturer_url
) {
9242 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9245 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9247 if (r
->hardware_id
) {
9248 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9251 ndr_print_ptr(ndr
, "provider", r
->provider
);
9254 ndr_print_string(ndr
, "provider", r
->provider
);
9260 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9262 if (ndr_flags
& NDR_SCALARS
) {
9263 NDR_CHECK(ndr_push_align(ndr
, 8));
9264 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9265 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9266 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9267 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9268 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9269 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9270 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9271 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9272 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9274 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9277 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9278 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9279 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9284 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9286 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9287 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9290 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9291 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9292 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9294 if (ndr_flags
& NDR_BUFFERS
) {
9295 if (r
->driver_name
) {
9296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9299 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9301 if (r
->architecture
) {
9302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9305 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9307 if (r
->driver_path
) {
9308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9311 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9317 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9319 if (r
->config_file
) {
9320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9323 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9329 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9331 if (r
->monitor_name
) {
9332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9335 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9337 if (r
->default_datatype
) {
9338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9341 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9343 if (r
->dependent_files
) {
9344 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9346 if (r
->previous_names
) {
9347 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9349 if (r
->manufacturer_name
) {
9350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9353 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9355 if (r
->manufacturer_url
) {
9356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9361 if (r
->hardware_id
) {
9362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9371 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9373 if (r
->print_processor
) {
9374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9379 if (r
->vendor_setup
) {
9380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9383 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9385 if (r
->color_profiles
) {
9386 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9392 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9394 if (r
->core_driver_dependencies
) {
9395 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9398 return NDR_ERR_SUCCESS
;
9401 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9403 uint32_t _ptr_driver_name
;
9404 uint32_t size_driver_name_1
= 0;
9405 uint32_t length_driver_name_1
= 0;
9406 TALLOC_CTX
*_mem_save_driver_name_0
;
9407 uint32_t _ptr_architecture
;
9408 uint32_t size_architecture_1
= 0;
9409 uint32_t length_architecture_1
= 0;
9410 TALLOC_CTX
*_mem_save_architecture_0
;
9411 uint32_t _ptr_driver_path
;
9412 uint32_t size_driver_path_1
= 0;
9413 uint32_t length_driver_path_1
= 0;
9414 TALLOC_CTX
*_mem_save_driver_path_0
;
9415 uint32_t _ptr_data_file
;
9416 uint32_t size_data_file_1
= 0;
9417 uint32_t length_data_file_1
= 0;
9418 TALLOC_CTX
*_mem_save_data_file_0
;
9419 uint32_t _ptr_config_file
;
9420 uint32_t size_config_file_1
= 0;
9421 uint32_t length_config_file_1
= 0;
9422 TALLOC_CTX
*_mem_save_config_file_0
;
9423 uint32_t _ptr_help_file
;
9424 uint32_t size_help_file_1
= 0;
9425 uint32_t length_help_file_1
= 0;
9426 TALLOC_CTX
*_mem_save_help_file_0
;
9427 uint32_t _ptr_monitor_name
;
9428 uint32_t size_monitor_name_1
= 0;
9429 uint32_t length_monitor_name_1
= 0;
9430 TALLOC_CTX
*_mem_save_monitor_name_0
;
9431 uint32_t _ptr_default_datatype
;
9432 uint32_t size_default_datatype_1
= 0;
9433 uint32_t length_default_datatype_1
= 0;
9434 TALLOC_CTX
*_mem_save_default_datatype_0
;
9435 uint32_t _ptr_dependent_files
;
9436 TALLOC_CTX
*_mem_save_dependent_files_0
;
9437 uint32_t _ptr_previous_names
;
9438 TALLOC_CTX
*_mem_save_previous_names_0
;
9439 uint32_t _ptr_manufacturer_name
;
9440 uint32_t size_manufacturer_name_1
= 0;
9441 uint32_t length_manufacturer_name_1
= 0;
9442 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9443 uint32_t _ptr_manufacturer_url
;
9444 uint32_t size_manufacturer_url_1
= 0;
9445 uint32_t length_manufacturer_url_1
= 0;
9446 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9447 uint32_t _ptr_hardware_id
;
9448 uint32_t size_hardware_id_1
= 0;
9449 uint32_t length_hardware_id_1
= 0;
9450 TALLOC_CTX
*_mem_save_hardware_id_0
;
9451 uint32_t _ptr_provider
;
9452 uint32_t size_provider_1
= 0;
9453 uint32_t length_provider_1
= 0;
9454 TALLOC_CTX
*_mem_save_provider_0
;
9455 uint32_t _ptr_print_processor
;
9456 uint32_t size_print_processor_1
= 0;
9457 uint32_t length_print_processor_1
= 0;
9458 TALLOC_CTX
*_mem_save_print_processor_0
;
9459 uint32_t _ptr_vendor_setup
;
9460 uint32_t size_vendor_setup_1
= 0;
9461 uint32_t length_vendor_setup_1
= 0;
9462 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9463 uint32_t _ptr_color_profiles
;
9464 TALLOC_CTX
*_mem_save_color_profiles_0
;
9465 uint32_t _ptr_inf_path
;
9466 uint32_t size_inf_path_1
= 0;
9467 uint32_t length_inf_path_1
= 0;
9468 TALLOC_CTX
*_mem_save_inf_path_0
;
9469 uint32_t _ptr_core_driver_dependencies
;
9470 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9471 if (ndr_flags
& NDR_SCALARS
) {
9472 NDR_CHECK(ndr_pull_align(ndr
, 8));
9473 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9475 if (_ptr_driver_name
) {
9476 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9478 r
->driver_name
= NULL
;
9480 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9481 if (_ptr_architecture
) {
9482 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9484 r
->architecture
= NULL
;
9486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9487 if (_ptr_driver_path
) {
9488 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9490 r
->driver_path
= NULL
;
9492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9493 if (_ptr_data_file
) {
9494 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9496 r
->data_file
= NULL
;
9498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9499 if (_ptr_config_file
) {
9500 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9502 r
->config_file
= NULL
;
9504 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9505 if (_ptr_help_file
) {
9506 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9508 r
->help_file
= NULL
;
9510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9511 if (_ptr_monitor_name
) {
9512 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9514 r
->monitor_name
= NULL
;
9516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9517 if (_ptr_default_datatype
) {
9518 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9520 r
->default_datatype
= NULL
;
9522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9524 if (_ptr_dependent_files
) {
9525 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9527 r
->dependent_files
= NULL
;
9529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9531 if (_ptr_previous_names
) {
9532 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9534 r
->previous_names
= NULL
;
9536 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9537 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9539 if (_ptr_manufacturer_name
) {
9540 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9542 r
->manufacturer_name
= NULL
;
9544 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9545 if (_ptr_manufacturer_url
) {
9546 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9548 r
->manufacturer_url
= NULL
;
9550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9551 if (_ptr_hardware_id
) {
9552 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9554 r
->hardware_id
= NULL
;
9556 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9557 if (_ptr_provider
) {
9558 NDR_PULL_ALLOC(ndr
, r
->provider
);
9562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9563 if (_ptr_print_processor
) {
9564 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9566 r
->print_processor
= NULL
;
9568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9569 if (_ptr_vendor_setup
) {
9570 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9572 r
->vendor_setup
= NULL
;
9574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9576 if (_ptr_color_profiles
) {
9577 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9579 r
->color_profiles
= NULL
;
9581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9582 if (_ptr_inf_path
) {
9583 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9589 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9590 if (_ptr_core_driver_dependencies
) {
9591 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9593 r
->core_driver_dependencies
= NULL
;
9595 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9596 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9598 if (ndr_flags
& NDR_BUFFERS
) {
9599 if (r
->driver_name
) {
9600 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9601 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9602 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9603 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9604 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
9605 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
9606 if (length_driver_name_1
> size_driver_name_1
) {
9607 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
9609 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
9610 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
9611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9613 if (r
->architecture
) {
9614 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9615 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9616 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9617 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9618 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
9619 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
9620 if (length_architecture_1
> size_architecture_1
) {
9621 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
9623 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
9624 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
9625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9627 if (r
->driver_path
) {
9628 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9629 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9632 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
9633 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
9634 if (length_driver_path_1
> size_driver_path_1
) {
9635 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
9637 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
9638 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
9639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9642 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9643 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9644 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9645 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9646 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
9647 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
9648 if (length_data_file_1
> size_data_file_1
) {
9649 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
9651 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
9652 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
9653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9655 if (r
->config_file
) {
9656 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9657 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9658 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9659 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9660 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
9661 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
9662 if (length_config_file_1
> size_config_file_1
) {
9663 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
9665 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
9666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
9667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9670 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9671 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9672 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9673 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9674 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
9675 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
9676 if (length_help_file_1
> size_help_file_1
) {
9677 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
9679 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
9680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
9681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9683 if (r
->monitor_name
) {
9684 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9685 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9688 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
9689 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
9690 if (length_monitor_name_1
> size_monitor_name_1
) {
9691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
9693 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
9695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9697 if (r
->default_datatype
) {
9698 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9699 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9700 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9701 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9702 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
9703 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
9704 if (length_default_datatype_1
> size_default_datatype_1
) {
9705 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
9707 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
9708 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
9709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9711 if (r
->dependent_files
) {
9712 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9713 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9714 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9717 if (r
->previous_names
) {
9718 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9719 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9720 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9723 if (r
->manufacturer_name
) {
9724 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9725 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9726 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9727 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9728 size_manufacturer_name_1
= ndr_get_array_size(ndr
, &r
->manufacturer_name
);
9729 length_manufacturer_name_1
= ndr_get_array_length(ndr
, &r
->manufacturer_name
);
9730 if (length_manufacturer_name_1
> size_manufacturer_name_1
) {
9731 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_name_1
, length_manufacturer_name_1
);
9733 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_name_1
, sizeof(uint16_t)));
9734 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, length_manufacturer_name_1
, sizeof(uint16_t), CH_UTF16
));
9735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9737 if (r
->manufacturer_url
) {
9738 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9739 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9740 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9741 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9742 size_manufacturer_url_1
= ndr_get_array_size(ndr
, &r
->manufacturer_url
);
9743 length_manufacturer_url_1
= ndr_get_array_length(ndr
, &r
->manufacturer_url
);
9744 if (length_manufacturer_url_1
> size_manufacturer_url_1
) {
9745 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_url_1
, length_manufacturer_url_1
);
9747 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_url_1
, sizeof(uint16_t)));
9748 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, length_manufacturer_url_1
, sizeof(uint16_t), CH_UTF16
));
9749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9751 if (r
->hardware_id
) {
9752 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9753 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9754 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9755 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9756 size_hardware_id_1
= ndr_get_array_size(ndr
, &r
->hardware_id
);
9757 length_hardware_id_1
= ndr_get_array_length(ndr
, &r
->hardware_id
);
9758 if (length_hardware_id_1
> size_hardware_id_1
) {
9759 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_hardware_id_1
, length_hardware_id_1
);
9761 NDR_CHECK(ndr_check_string_terminator(ndr
, length_hardware_id_1
, sizeof(uint16_t)));
9762 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, length_hardware_id_1
, sizeof(uint16_t), CH_UTF16
));
9763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9766 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9767 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9768 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9769 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9770 size_provider_1
= ndr_get_array_size(ndr
, &r
->provider
);
9771 length_provider_1
= ndr_get_array_length(ndr
, &r
->provider
);
9772 if (length_provider_1
> size_provider_1
) {
9773 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_provider_1
, length_provider_1
);
9775 NDR_CHECK(ndr_check_string_terminator(ndr
, length_provider_1
, sizeof(uint16_t)));
9776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, length_provider_1
, sizeof(uint16_t), CH_UTF16
));
9777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9779 if (r
->print_processor
) {
9780 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9781 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9782 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9783 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9784 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
9785 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
9786 if (length_print_processor_1
> size_print_processor_1
) {
9787 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
9789 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
9790 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
9791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9793 if (r
->vendor_setup
) {
9794 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9795 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9796 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9797 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9798 size_vendor_setup_1
= ndr_get_array_size(ndr
, &r
->vendor_setup
);
9799 length_vendor_setup_1
= ndr_get_array_length(ndr
, &r
->vendor_setup
);
9800 if (length_vendor_setup_1
> size_vendor_setup_1
) {
9801 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_vendor_setup_1
, length_vendor_setup_1
);
9803 NDR_CHECK(ndr_check_string_terminator(ndr
, length_vendor_setup_1
, sizeof(uint16_t)));
9804 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, length_vendor_setup_1
, sizeof(uint16_t), CH_UTF16
));
9805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9807 if (r
->color_profiles
) {
9808 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9809 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9810 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9814 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9815 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9818 size_inf_path_1
= ndr_get_array_size(ndr
, &r
->inf_path
);
9819 length_inf_path_1
= ndr_get_array_length(ndr
, &r
->inf_path
);
9820 if (length_inf_path_1
> size_inf_path_1
) {
9821 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_inf_path_1
, length_inf_path_1
);
9823 NDR_CHECK(ndr_check_string_terminator(ndr
, length_inf_path_1
, sizeof(uint16_t)));
9824 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, length_inf_path_1
, sizeof(uint16_t), CH_UTF16
));
9825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9827 if (r
->core_driver_dependencies
) {
9828 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9829 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9830 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9834 return NDR_ERR_SUCCESS
;
9837 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9839 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9841 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9842 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9844 if (r
->driver_name
) {
9845 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9848 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9850 if (r
->architecture
) {
9851 ndr_print_string(ndr
, "architecture", r
->architecture
);
9854 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9856 if (r
->driver_path
) {
9857 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9860 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9863 ndr_print_string(ndr
, "data_file", r
->data_file
);
9866 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9868 if (r
->config_file
) {
9869 ndr_print_string(ndr
, "config_file", r
->config_file
);
9872 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9875 ndr_print_string(ndr
, "help_file", r
->help_file
);
9878 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9880 if (r
->monitor_name
) {
9881 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9884 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9886 if (r
->default_datatype
) {
9887 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9890 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
);
9891 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9893 if (r
->dependent_files
) {
9894 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9897 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
);
9898 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9900 if (r
->previous_names
) {
9901 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9904 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9905 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9906 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9908 if (r
->manufacturer_name
) {
9909 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9912 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9914 if (r
->manufacturer_url
) {
9915 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9918 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9920 if (r
->hardware_id
) {
9921 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9924 ndr_print_ptr(ndr
, "provider", r
->provider
);
9927 ndr_print_string(ndr
, "provider", r
->provider
);
9930 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
9932 if (r
->print_processor
) {
9933 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
9936 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
9938 if (r
->vendor_setup
) {
9939 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
9942 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
);
9943 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
9945 if (r
->color_profiles
) {
9946 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
9949 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
9952 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
9955 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
9956 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
);
9957 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9959 if (r
->core_driver_dependencies
) {
9960 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9963 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
9964 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
9968 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
9970 if (ndr_flags
& NDR_SCALARS
) {
9971 int level
= ndr_push_get_switch_value(ndr
, r
);
9972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
9975 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
9979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
9983 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
9987 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
9991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
9995 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
9999 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
10002 if (ndr_flags
& NDR_BUFFERS
) {
10003 int level
= ndr_push_get_switch_value(ndr
, r
);
10007 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10013 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10019 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10025 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10031 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10037 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10042 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
10045 return NDR_ERR_SUCCESS
;
10048 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10052 TALLOC_CTX
*_mem_save_info1_0
;
10053 uint32_t _ptr_info1
;
10054 TALLOC_CTX
*_mem_save_info2_0
;
10055 uint32_t _ptr_info2
;
10056 TALLOC_CTX
*_mem_save_info3_0
;
10057 uint32_t _ptr_info3
;
10058 TALLOC_CTX
*_mem_save_info4_0
;
10059 uint32_t _ptr_info4
;
10060 TALLOC_CTX
*_mem_save_info6_0
;
10061 uint32_t _ptr_info6
;
10062 TALLOC_CTX
*_mem_save_info8_0
;
10063 uint32_t _ptr_info8
;
10064 level
= ndr_pull_get_switch_value(ndr
, r
);
10065 if (ndr_flags
& NDR_SCALARS
) {
10066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10067 if (_level
!= level
) {
10068 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
10072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10074 NDR_PULL_ALLOC(ndr
, r
->info1
);
10081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10083 NDR_PULL_ALLOC(ndr
, r
->info2
);
10090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10092 NDR_PULL_ALLOC(ndr
, r
->info3
);
10099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10101 NDR_PULL_ALLOC(ndr
, r
->info4
);
10108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10110 NDR_PULL_ALLOC(ndr
, r
->info6
);
10117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10119 NDR_PULL_ALLOC(ndr
, r
->info8
);
10126 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
10129 if (ndr_flags
& NDR_BUFFERS
) {
10133 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10134 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10135 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10142 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10143 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10144 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10151 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10152 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10153 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10160 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10161 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10162 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10169 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10170 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10171 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10178 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10179 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10180 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10186 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
10189 return NDR_ERR_SUCCESS
;
10192 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10195 level
= ndr_print_get_switch_value(ndr
, r
);
10196 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10199 ndr_print_ptr(ndr
, "info1", r
->info1
);
10202 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10208 ndr_print_ptr(ndr
, "info2", r
->info2
);
10211 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10217 ndr_print_ptr(ndr
, "info3", r
->info3
);
10220 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10226 ndr_print_ptr(ndr
, "info4", r
->info4
);
10229 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10235 ndr_print_ptr(ndr
, "info6", r
->info6
);
10238 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10244 ndr_print_ptr(ndr
, "info8", r
->info8
);
10247 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10253 ndr_print_bad_level(ndr
, name
, level
);
10257 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10259 if (ndr_flags
& NDR_SCALARS
) {
10260 NDR_CHECK(ndr_push_align(ndr
, 4));
10261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10262 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10263 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10265 if (ndr_flags
& NDR_BUFFERS
) {
10266 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10268 return NDR_ERR_SUCCESS
;
10271 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10273 if (ndr_flags
& NDR_SCALARS
) {
10274 NDR_CHECK(ndr_pull_align(ndr
, 4));
10275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10276 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10277 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10279 if (ndr_flags
& NDR_BUFFERS
) {
10280 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10282 return NDR_ERR_SUCCESS
;
10285 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10287 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10289 ndr_print_uint32(ndr
, "level", r
->level
);
10290 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10291 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10295 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10297 if (ndr_flags
& NDR_SCALARS
) {
10298 NDR_CHECK(ndr_push_align(ndr
, 4));
10300 uint32_t _flags_save_string
= ndr
->flags
;
10301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10302 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10303 ndr
->flags
= _flags_save_string
;
10306 if (ndr_flags
& NDR_BUFFERS
) {
10308 uint32_t _flags_save_string
= ndr
->flags
;
10309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10310 if (r
->driver_name
) {
10311 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10312 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10313 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10315 ndr
->flags
= _flags_save_string
;
10318 return NDR_ERR_SUCCESS
;
10321 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10323 uint32_t _ptr_driver_name
;
10324 TALLOC_CTX
*_mem_save_driver_name_0
;
10325 if (ndr_flags
& NDR_SCALARS
) {
10326 NDR_CHECK(ndr_pull_align(ndr
, 4));
10328 uint32_t _flags_save_string
= ndr
->flags
;
10329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10331 if (_ptr_driver_name
) {
10332 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10333 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10335 r
->driver_name
= NULL
;
10337 ndr
->flags
= _flags_save_string
;
10340 if (ndr_flags
& NDR_BUFFERS
) {
10342 uint32_t _flags_save_string
= ndr
->flags
;
10343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10344 if (r
->driver_name
) {
10345 uint32_t _relative_save_offset
;
10346 _relative_save_offset
= ndr
->offset
;
10347 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10348 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10349 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10352 ndr
->offset
= _relative_save_offset
;
10354 ndr
->flags
= _flags_save_string
;
10357 return NDR_ERR_SUCCESS
;
10360 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10362 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
10364 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10366 if (r
->driver_name
) {
10367 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10373 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10375 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
10378 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
10380 if (ndr_flags
& NDR_SCALARS
) {
10381 NDR_CHECK(ndr_push_align(ndr
, 4));
10382 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10384 uint32_t _flags_save_string
= ndr
->flags
;
10385 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10386 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10387 ndr
->flags
= _flags_save_string
;
10390 uint32_t _flags_save_string
= ndr
->flags
;
10391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10392 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10393 ndr
->flags
= _flags_save_string
;
10396 uint32_t _flags_save_string
= ndr
->flags
;
10397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10398 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10399 ndr
->flags
= _flags_save_string
;
10402 uint32_t _flags_save_string
= ndr
->flags
;
10403 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10404 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10405 ndr
->flags
= _flags_save_string
;
10408 uint32_t _flags_save_string
= ndr
->flags
;
10409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10410 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10411 ndr
->flags
= _flags_save_string
;
10414 if (ndr_flags
& NDR_BUFFERS
) {
10416 uint32_t _flags_save_string
= ndr
->flags
;
10417 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10418 if (r
->driver_name
) {
10419 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10420 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10421 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10423 ndr
->flags
= _flags_save_string
;
10426 uint32_t _flags_save_string
= ndr
->flags
;
10427 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10428 if (r
->architecture
) {
10429 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
10430 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10431 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
10433 ndr
->flags
= _flags_save_string
;
10436 uint32_t _flags_save_string
= ndr
->flags
;
10437 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10438 if (r
->driver_path
) {
10439 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
10440 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10441 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
10443 ndr
->flags
= _flags_save_string
;
10446 uint32_t _flags_save_string
= ndr
->flags
;
10447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10448 if (r
->data_file
) {
10449 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
10450 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10451 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
10453 ndr
->flags
= _flags_save_string
;
10456 uint32_t _flags_save_string
= ndr
->flags
;
10457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10458 if (r
->config_file
) {
10459 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
10460 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10461 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
10463 ndr
->flags
= _flags_save_string
;
10466 return NDR_ERR_SUCCESS
;
10469 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10471 uint32_t _ptr_driver_name
;
10472 TALLOC_CTX
*_mem_save_driver_name_0
;
10473 uint32_t _ptr_architecture
;
10474 TALLOC_CTX
*_mem_save_architecture_0
;
10475 uint32_t _ptr_driver_path
;
10476 TALLOC_CTX
*_mem_save_driver_path_0
;
10477 uint32_t _ptr_data_file
;
10478 TALLOC_CTX
*_mem_save_data_file_0
;
10479 uint32_t _ptr_config_file
;
10480 TALLOC_CTX
*_mem_save_config_file_0
;
10481 if (ndr_flags
& NDR_SCALARS
) {
10482 NDR_CHECK(ndr_pull_align(ndr
, 4));
10483 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10485 uint32_t _flags_save_string
= ndr
->flags
;
10486 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10487 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10488 if (_ptr_driver_name
) {
10489 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10490 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10492 r
->driver_name
= NULL
;
10494 ndr
->flags
= _flags_save_string
;
10497 uint32_t _flags_save_string
= ndr
->flags
;
10498 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10500 if (_ptr_architecture
) {
10501 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10502 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10504 r
->architecture
= NULL
;
10506 ndr
->flags
= _flags_save_string
;
10509 uint32_t _flags_save_string
= ndr
->flags
;
10510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10511 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10512 if (_ptr_driver_path
) {
10513 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10514 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10516 r
->driver_path
= NULL
;
10518 ndr
->flags
= _flags_save_string
;
10521 uint32_t _flags_save_string
= ndr
->flags
;
10522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10524 if (_ptr_data_file
) {
10525 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10526 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10528 r
->data_file
= NULL
;
10530 ndr
->flags
= _flags_save_string
;
10533 uint32_t _flags_save_string
= ndr
->flags
;
10534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10536 if (_ptr_config_file
) {
10537 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10538 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10540 r
->config_file
= NULL
;
10542 ndr
->flags
= _flags_save_string
;
10545 if (ndr_flags
& NDR_BUFFERS
) {
10547 uint32_t _flags_save_string
= ndr
->flags
;
10548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10549 if (r
->driver_name
) {
10550 uint32_t _relative_save_offset
;
10551 _relative_save_offset
= ndr
->offset
;
10552 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10553 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10554 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10555 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10557 ndr
->offset
= _relative_save_offset
;
10559 ndr
->flags
= _flags_save_string
;
10562 uint32_t _flags_save_string
= ndr
->flags
;
10563 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10564 if (r
->architecture
) {
10565 uint32_t _relative_save_offset
;
10566 _relative_save_offset
= ndr
->offset
;
10567 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10568 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10569 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10570 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10572 ndr
->offset
= _relative_save_offset
;
10574 ndr
->flags
= _flags_save_string
;
10577 uint32_t _flags_save_string
= ndr
->flags
;
10578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10579 if (r
->driver_path
) {
10580 uint32_t _relative_save_offset
;
10581 _relative_save_offset
= ndr
->offset
;
10582 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10583 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10584 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10585 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10587 ndr
->offset
= _relative_save_offset
;
10589 ndr
->flags
= _flags_save_string
;
10592 uint32_t _flags_save_string
= ndr
->flags
;
10593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10594 if (r
->data_file
) {
10595 uint32_t _relative_save_offset
;
10596 _relative_save_offset
= ndr
->offset
;
10597 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10598 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10599 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10602 ndr
->offset
= _relative_save_offset
;
10604 ndr
->flags
= _flags_save_string
;
10607 uint32_t _flags_save_string
= ndr
->flags
;
10608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10609 if (r
->config_file
) {
10610 uint32_t _relative_save_offset
;
10611 _relative_save_offset
= ndr
->offset
;
10612 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10613 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10614 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10615 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10617 ndr
->offset
= _relative_save_offset
;
10619 ndr
->flags
= _flags_save_string
;
10622 return NDR_ERR_SUCCESS
;
10625 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10627 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10629 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10630 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10632 if (r
->driver_name
) {
10633 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10636 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10638 if (r
->architecture
) {
10639 ndr_print_string(ndr
, "architecture", r
->architecture
);
10642 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10644 if (r
->driver_path
) {
10645 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10648 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10650 if (r
->data_file
) {
10651 ndr_print_string(ndr
, "data_file", r
->data_file
);
10654 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10656 if (r
->config_file
) {
10657 ndr_print_string(ndr
, "config_file", r
->config_file
);
10663 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10665 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10668 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10670 if (ndr_flags
& NDR_SCALARS
) {
10671 NDR_CHECK(ndr_push_align(ndr
, 4));
10672 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10674 uint32_t _flags_save_string
= ndr
->flags
;
10675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10676 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10677 ndr
->flags
= _flags_save_string
;
10680 uint32_t _flags_save_string
= ndr
->flags
;
10681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10682 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10683 ndr
->flags
= _flags_save_string
;
10686 uint32_t _flags_save_string
= ndr
->flags
;
10687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10688 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10689 ndr
->flags
= _flags_save_string
;
10692 uint32_t _flags_save_string
= ndr
->flags
;
10693 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10694 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10695 ndr
->flags
= _flags_save_string
;
10698 uint32_t _flags_save_string
= ndr
->flags
;
10699 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10700 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10701 ndr
->flags
= _flags_save_string
;
10704 uint32_t _flags_save_string
= ndr
->flags
;
10705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10706 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10707 ndr
->flags
= _flags_save_string
;
10710 uint32_t _flags_save_string_array
= ndr
->flags
;
10711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10712 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10713 ndr
->flags
= _flags_save_string_array
;
10716 uint32_t _flags_save_string
= ndr
->flags
;
10717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10718 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10719 ndr
->flags
= _flags_save_string
;
10722 uint32_t _flags_save_string
= ndr
->flags
;
10723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10724 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10725 ndr
->flags
= _flags_save_string
;
10728 if (ndr_flags
& NDR_BUFFERS
) {
10730 uint32_t _flags_save_string
= ndr
->flags
;
10731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10732 if (r
->driver_name
) {
10733 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10734 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10735 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10737 ndr
->flags
= _flags_save_string
;
10740 uint32_t _flags_save_string
= ndr
->flags
;
10741 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10742 if (r
->architecture
) {
10743 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
10744 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10745 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
10747 ndr
->flags
= _flags_save_string
;
10750 uint32_t _flags_save_string
= ndr
->flags
;
10751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10752 if (r
->driver_path
) {
10753 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
10754 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10755 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
10757 ndr
->flags
= _flags_save_string
;
10760 uint32_t _flags_save_string
= ndr
->flags
;
10761 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10762 if (r
->data_file
) {
10763 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
10764 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10765 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
10767 ndr
->flags
= _flags_save_string
;
10770 uint32_t _flags_save_string
= ndr
->flags
;
10771 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10772 if (r
->config_file
) {
10773 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
10774 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10775 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
10777 ndr
->flags
= _flags_save_string
;
10780 uint32_t _flags_save_string
= ndr
->flags
;
10781 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10782 if (r
->help_file
) {
10783 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
10784 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10785 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
10787 ndr
->flags
= _flags_save_string
;
10790 uint32_t _flags_save_string_array
= ndr
->flags
;
10791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10792 if (r
->dependent_files
) {
10793 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
10794 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10795 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
10797 ndr
->flags
= _flags_save_string_array
;
10800 uint32_t _flags_save_string
= ndr
->flags
;
10801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10802 if (r
->monitor_name
) {
10803 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
10804 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10805 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
10807 ndr
->flags
= _flags_save_string
;
10810 uint32_t _flags_save_string
= ndr
->flags
;
10811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10812 if (r
->default_datatype
) {
10813 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
10814 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10815 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
10817 ndr
->flags
= _flags_save_string
;
10820 return NDR_ERR_SUCCESS
;
10823 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10825 uint32_t _ptr_driver_name
;
10826 TALLOC_CTX
*_mem_save_driver_name_0
;
10827 uint32_t _ptr_architecture
;
10828 TALLOC_CTX
*_mem_save_architecture_0
;
10829 uint32_t _ptr_driver_path
;
10830 TALLOC_CTX
*_mem_save_driver_path_0
;
10831 uint32_t _ptr_data_file
;
10832 TALLOC_CTX
*_mem_save_data_file_0
;
10833 uint32_t _ptr_config_file
;
10834 TALLOC_CTX
*_mem_save_config_file_0
;
10835 uint32_t _ptr_help_file
;
10836 TALLOC_CTX
*_mem_save_help_file_0
;
10837 uint32_t _ptr_dependent_files
;
10838 TALLOC_CTX
*_mem_save_dependent_files_0
;
10839 uint32_t _ptr_monitor_name
;
10840 TALLOC_CTX
*_mem_save_monitor_name_0
;
10841 uint32_t _ptr_default_datatype
;
10842 TALLOC_CTX
*_mem_save_default_datatype_0
;
10843 if (ndr_flags
& NDR_SCALARS
) {
10844 NDR_CHECK(ndr_pull_align(ndr
, 4));
10845 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10847 uint32_t _flags_save_string
= ndr
->flags
;
10848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10850 if (_ptr_driver_name
) {
10851 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10852 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10854 r
->driver_name
= NULL
;
10856 ndr
->flags
= _flags_save_string
;
10859 uint32_t _flags_save_string
= ndr
->flags
;
10860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10861 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10862 if (_ptr_architecture
) {
10863 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10864 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10866 r
->architecture
= NULL
;
10868 ndr
->flags
= _flags_save_string
;
10871 uint32_t _flags_save_string
= ndr
->flags
;
10872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10873 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10874 if (_ptr_driver_path
) {
10875 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10876 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10878 r
->driver_path
= NULL
;
10880 ndr
->flags
= _flags_save_string
;
10883 uint32_t _flags_save_string
= ndr
->flags
;
10884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10885 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10886 if (_ptr_data_file
) {
10887 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10888 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10890 r
->data_file
= NULL
;
10892 ndr
->flags
= _flags_save_string
;
10895 uint32_t _flags_save_string
= ndr
->flags
;
10896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10897 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10898 if (_ptr_config_file
) {
10899 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10900 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10902 r
->config_file
= NULL
;
10904 ndr
->flags
= _flags_save_string
;
10907 uint32_t _flags_save_string
= ndr
->flags
;
10908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10909 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10910 if (_ptr_help_file
) {
10911 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10912 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10914 r
->help_file
= NULL
;
10916 ndr
->flags
= _flags_save_string
;
10919 uint32_t _flags_save_string_array
= ndr
->flags
;
10920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10921 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10922 if (_ptr_dependent_files
) {
10923 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10924 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10926 r
->dependent_files
= NULL
;
10928 ndr
->flags
= _flags_save_string_array
;
10931 uint32_t _flags_save_string
= ndr
->flags
;
10932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10933 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10934 if (_ptr_monitor_name
) {
10935 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10936 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10938 r
->monitor_name
= NULL
;
10940 ndr
->flags
= _flags_save_string
;
10943 uint32_t _flags_save_string
= ndr
->flags
;
10944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10945 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10946 if (_ptr_default_datatype
) {
10947 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10948 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10950 r
->default_datatype
= NULL
;
10952 ndr
->flags
= _flags_save_string
;
10955 if (ndr_flags
& NDR_BUFFERS
) {
10957 uint32_t _flags_save_string
= ndr
->flags
;
10958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10959 if (r
->driver_name
) {
10960 uint32_t _relative_save_offset
;
10961 _relative_save_offset
= ndr
->offset
;
10962 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10963 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10964 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10965 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10967 ndr
->offset
= _relative_save_offset
;
10969 ndr
->flags
= _flags_save_string
;
10972 uint32_t _flags_save_string
= ndr
->flags
;
10973 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10974 if (r
->architecture
) {
10975 uint32_t _relative_save_offset
;
10976 _relative_save_offset
= ndr
->offset
;
10977 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10978 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10979 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10980 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10982 ndr
->offset
= _relative_save_offset
;
10984 ndr
->flags
= _flags_save_string
;
10987 uint32_t _flags_save_string
= ndr
->flags
;
10988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10989 if (r
->driver_path
) {
10990 uint32_t _relative_save_offset
;
10991 _relative_save_offset
= ndr
->offset
;
10992 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10993 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10994 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10995 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10997 ndr
->offset
= _relative_save_offset
;
10999 ndr
->flags
= _flags_save_string
;
11002 uint32_t _flags_save_string
= ndr
->flags
;
11003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11004 if (r
->data_file
) {
11005 uint32_t _relative_save_offset
;
11006 _relative_save_offset
= ndr
->offset
;
11007 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11008 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11009 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11010 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11012 ndr
->offset
= _relative_save_offset
;
11014 ndr
->flags
= _flags_save_string
;
11017 uint32_t _flags_save_string
= ndr
->flags
;
11018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11019 if (r
->config_file
) {
11020 uint32_t _relative_save_offset
;
11021 _relative_save_offset
= ndr
->offset
;
11022 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11023 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11024 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11025 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11027 ndr
->offset
= _relative_save_offset
;
11029 ndr
->flags
= _flags_save_string
;
11032 uint32_t _flags_save_string
= ndr
->flags
;
11033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11034 if (r
->help_file
) {
11035 uint32_t _relative_save_offset
;
11036 _relative_save_offset
= ndr
->offset
;
11037 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11038 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11039 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11040 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11042 ndr
->offset
= _relative_save_offset
;
11044 ndr
->flags
= _flags_save_string
;
11047 uint32_t _flags_save_string_array
= ndr
->flags
;
11048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11049 if (r
->dependent_files
) {
11050 uint32_t _relative_save_offset
;
11051 _relative_save_offset
= ndr
->offset
;
11052 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11053 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11054 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11055 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11057 ndr
->offset
= _relative_save_offset
;
11059 ndr
->flags
= _flags_save_string_array
;
11062 uint32_t _flags_save_string
= ndr
->flags
;
11063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11064 if (r
->monitor_name
) {
11065 uint32_t _relative_save_offset
;
11066 _relative_save_offset
= ndr
->offset
;
11067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11068 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11069 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11072 ndr
->offset
= _relative_save_offset
;
11074 ndr
->flags
= _flags_save_string
;
11077 uint32_t _flags_save_string
= ndr
->flags
;
11078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11079 if (r
->default_datatype
) {
11080 uint32_t _relative_save_offset
;
11081 _relative_save_offset
= ndr
->offset
;
11082 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11083 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11084 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11085 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11087 ndr
->offset
= _relative_save_offset
;
11089 ndr
->flags
= _flags_save_string
;
11092 return NDR_ERR_SUCCESS
;
11095 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11097 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11099 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11100 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11102 if (r
->driver_name
) {
11103 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11106 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11108 if (r
->architecture
) {
11109 ndr_print_string(ndr
, "architecture", r
->architecture
);
11112 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11114 if (r
->driver_path
) {
11115 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11118 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11120 if (r
->data_file
) {
11121 ndr_print_string(ndr
, "data_file", r
->data_file
);
11124 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11126 if (r
->config_file
) {
11127 ndr_print_string(ndr
, "config_file", r
->config_file
);
11130 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11132 if (r
->help_file
) {
11133 ndr_print_string(ndr
, "help_file", r
->help_file
);
11136 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11138 if (r
->dependent_files
) {
11139 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11142 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11144 if (r
->monitor_name
) {
11145 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11148 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11150 if (r
->default_datatype
) {
11151 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11157 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11159 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11162 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11164 if (ndr_flags
& NDR_SCALARS
) {
11165 NDR_CHECK(ndr_push_align(ndr
, 4));
11166 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11168 uint32_t _flags_save_string
= ndr
->flags
;
11169 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11170 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11171 ndr
->flags
= _flags_save_string
;
11174 uint32_t _flags_save_string
= ndr
->flags
;
11175 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11176 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11177 ndr
->flags
= _flags_save_string
;
11180 uint32_t _flags_save_string
= ndr
->flags
;
11181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11182 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11183 ndr
->flags
= _flags_save_string
;
11186 uint32_t _flags_save_string
= ndr
->flags
;
11187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11188 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11189 ndr
->flags
= _flags_save_string
;
11192 uint32_t _flags_save_string
= ndr
->flags
;
11193 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11194 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11195 ndr
->flags
= _flags_save_string
;
11198 uint32_t _flags_save_string
= ndr
->flags
;
11199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11200 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11201 ndr
->flags
= _flags_save_string
;
11204 uint32_t _flags_save_string_array
= ndr
->flags
;
11205 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11206 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11207 ndr
->flags
= _flags_save_string_array
;
11210 uint32_t _flags_save_string
= ndr
->flags
;
11211 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11212 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11213 ndr
->flags
= _flags_save_string
;
11216 uint32_t _flags_save_string
= ndr
->flags
;
11217 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11218 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11219 ndr
->flags
= _flags_save_string
;
11222 uint32_t _flags_save_string_array
= ndr
->flags
;
11223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11224 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11225 ndr
->flags
= _flags_save_string_array
;
11228 if (ndr_flags
& NDR_BUFFERS
) {
11230 uint32_t _flags_save_string
= ndr
->flags
;
11231 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11232 if (r
->driver_name
) {
11233 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11234 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11235 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11237 ndr
->flags
= _flags_save_string
;
11240 uint32_t _flags_save_string
= ndr
->flags
;
11241 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11242 if (r
->architecture
) {
11243 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11244 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11245 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11247 ndr
->flags
= _flags_save_string
;
11250 uint32_t _flags_save_string
= ndr
->flags
;
11251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11252 if (r
->driver_path
) {
11253 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11254 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11255 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11257 ndr
->flags
= _flags_save_string
;
11260 uint32_t _flags_save_string
= ndr
->flags
;
11261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11262 if (r
->data_file
) {
11263 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11264 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11265 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11267 ndr
->flags
= _flags_save_string
;
11270 uint32_t _flags_save_string
= ndr
->flags
;
11271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11272 if (r
->config_file
) {
11273 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11274 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11275 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11277 ndr
->flags
= _flags_save_string
;
11280 uint32_t _flags_save_string
= ndr
->flags
;
11281 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11282 if (r
->help_file
) {
11283 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11284 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11285 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11287 ndr
->flags
= _flags_save_string
;
11290 uint32_t _flags_save_string_array
= ndr
->flags
;
11291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11292 if (r
->dependent_files
) {
11293 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11294 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11295 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11297 ndr
->flags
= _flags_save_string_array
;
11300 uint32_t _flags_save_string
= ndr
->flags
;
11301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11302 if (r
->monitor_name
) {
11303 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11305 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11307 ndr
->flags
= _flags_save_string
;
11310 uint32_t _flags_save_string
= ndr
->flags
;
11311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11312 if (r
->default_datatype
) {
11313 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11314 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11315 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
11317 ndr
->flags
= _flags_save_string
;
11320 uint32_t _flags_save_string_array
= ndr
->flags
;
11321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11322 if (r
->previous_names
) {
11323 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
11324 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11325 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
11327 ndr
->flags
= _flags_save_string_array
;
11330 return NDR_ERR_SUCCESS
;
11333 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
11335 uint32_t _ptr_driver_name
;
11336 TALLOC_CTX
*_mem_save_driver_name_0
;
11337 uint32_t _ptr_architecture
;
11338 TALLOC_CTX
*_mem_save_architecture_0
;
11339 uint32_t _ptr_driver_path
;
11340 TALLOC_CTX
*_mem_save_driver_path_0
;
11341 uint32_t _ptr_data_file
;
11342 TALLOC_CTX
*_mem_save_data_file_0
;
11343 uint32_t _ptr_config_file
;
11344 TALLOC_CTX
*_mem_save_config_file_0
;
11345 uint32_t _ptr_help_file
;
11346 TALLOC_CTX
*_mem_save_help_file_0
;
11347 uint32_t _ptr_dependent_files
;
11348 TALLOC_CTX
*_mem_save_dependent_files_0
;
11349 uint32_t _ptr_monitor_name
;
11350 TALLOC_CTX
*_mem_save_monitor_name_0
;
11351 uint32_t _ptr_default_datatype
;
11352 TALLOC_CTX
*_mem_save_default_datatype_0
;
11353 uint32_t _ptr_previous_names
;
11354 TALLOC_CTX
*_mem_save_previous_names_0
;
11355 if (ndr_flags
& NDR_SCALARS
) {
11356 NDR_CHECK(ndr_pull_align(ndr
, 4));
11357 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11359 uint32_t _flags_save_string
= ndr
->flags
;
11360 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11362 if (_ptr_driver_name
) {
11363 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11364 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11366 r
->driver_name
= NULL
;
11368 ndr
->flags
= _flags_save_string
;
11371 uint32_t _flags_save_string
= ndr
->flags
;
11372 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11373 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11374 if (_ptr_architecture
) {
11375 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11376 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11378 r
->architecture
= NULL
;
11380 ndr
->flags
= _flags_save_string
;
11383 uint32_t _flags_save_string
= ndr
->flags
;
11384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11385 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11386 if (_ptr_driver_path
) {
11387 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11388 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11390 r
->driver_path
= NULL
;
11392 ndr
->flags
= _flags_save_string
;
11395 uint32_t _flags_save_string
= ndr
->flags
;
11396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11398 if (_ptr_data_file
) {
11399 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11400 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11402 r
->data_file
= NULL
;
11404 ndr
->flags
= _flags_save_string
;
11407 uint32_t _flags_save_string
= ndr
->flags
;
11408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11409 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11410 if (_ptr_config_file
) {
11411 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11412 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11414 r
->config_file
= NULL
;
11416 ndr
->flags
= _flags_save_string
;
11419 uint32_t _flags_save_string
= ndr
->flags
;
11420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11421 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11422 if (_ptr_help_file
) {
11423 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11424 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11426 r
->help_file
= NULL
;
11428 ndr
->flags
= _flags_save_string
;
11431 uint32_t _flags_save_string_array
= ndr
->flags
;
11432 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11434 if (_ptr_dependent_files
) {
11435 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11436 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11438 r
->dependent_files
= NULL
;
11440 ndr
->flags
= _flags_save_string_array
;
11443 uint32_t _flags_save_string
= ndr
->flags
;
11444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11446 if (_ptr_monitor_name
) {
11447 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11448 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11450 r
->monitor_name
= NULL
;
11452 ndr
->flags
= _flags_save_string
;
11455 uint32_t _flags_save_string
= ndr
->flags
;
11456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11458 if (_ptr_default_datatype
) {
11459 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11460 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11462 r
->default_datatype
= NULL
;
11464 ndr
->flags
= _flags_save_string
;
11467 uint32_t _flags_save_string_array
= ndr
->flags
;
11468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11470 if (_ptr_previous_names
) {
11471 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11472 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11474 r
->previous_names
= NULL
;
11476 ndr
->flags
= _flags_save_string_array
;
11479 if (ndr_flags
& NDR_BUFFERS
) {
11481 uint32_t _flags_save_string
= ndr
->flags
;
11482 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11483 if (r
->driver_name
) {
11484 uint32_t _relative_save_offset
;
11485 _relative_save_offset
= ndr
->offset
;
11486 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11487 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11488 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11489 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11490 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11491 ndr
->offset
= _relative_save_offset
;
11493 ndr
->flags
= _flags_save_string
;
11496 uint32_t _flags_save_string
= ndr
->flags
;
11497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11498 if (r
->architecture
) {
11499 uint32_t _relative_save_offset
;
11500 _relative_save_offset
= ndr
->offset
;
11501 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11502 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11503 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11504 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11506 ndr
->offset
= _relative_save_offset
;
11508 ndr
->flags
= _flags_save_string
;
11511 uint32_t _flags_save_string
= ndr
->flags
;
11512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11513 if (r
->driver_path
) {
11514 uint32_t _relative_save_offset
;
11515 _relative_save_offset
= ndr
->offset
;
11516 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11517 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11518 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11519 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11521 ndr
->offset
= _relative_save_offset
;
11523 ndr
->flags
= _flags_save_string
;
11526 uint32_t _flags_save_string
= ndr
->flags
;
11527 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11528 if (r
->data_file
) {
11529 uint32_t _relative_save_offset
;
11530 _relative_save_offset
= ndr
->offset
;
11531 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11532 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11533 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11534 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11536 ndr
->offset
= _relative_save_offset
;
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 if (r
->config_file
) {
11544 uint32_t _relative_save_offset
;
11545 _relative_save_offset
= ndr
->offset
;
11546 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11547 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11548 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11549 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11551 ndr
->offset
= _relative_save_offset
;
11553 ndr
->flags
= _flags_save_string
;
11556 uint32_t _flags_save_string
= ndr
->flags
;
11557 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11558 if (r
->help_file
) {
11559 uint32_t _relative_save_offset
;
11560 _relative_save_offset
= ndr
->offset
;
11561 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11562 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11563 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11564 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11566 ndr
->offset
= _relative_save_offset
;
11568 ndr
->flags
= _flags_save_string
;
11571 uint32_t _flags_save_string_array
= ndr
->flags
;
11572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11573 if (r
->dependent_files
) {
11574 uint32_t _relative_save_offset
;
11575 _relative_save_offset
= ndr
->offset
;
11576 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11577 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11578 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11579 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11580 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11581 ndr
->offset
= _relative_save_offset
;
11583 ndr
->flags
= _flags_save_string_array
;
11586 uint32_t _flags_save_string
= ndr
->flags
;
11587 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11588 if (r
->monitor_name
) {
11589 uint32_t _relative_save_offset
;
11590 _relative_save_offset
= ndr
->offset
;
11591 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11592 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11593 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11594 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11596 ndr
->offset
= _relative_save_offset
;
11598 ndr
->flags
= _flags_save_string
;
11601 uint32_t _flags_save_string
= ndr
->flags
;
11602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11603 if (r
->default_datatype
) {
11604 uint32_t _relative_save_offset
;
11605 _relative_save_offset
= ndr
->offset
;
11606 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11607 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11608 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11609 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11610 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11611 ndr
->offset
= _relative_save_offset
;
11613 ndr
->flags
= _flags_save_string
;
11616 uint32_t _flags_save_string_array
= ndr
->flags
;
11617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11618 if (r
->previous_names
) {
11619 uint32_t _relative_save_offset
;
11620 _relative_save_offset
= ndr
->offset
;
11621 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11622 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11623 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11624 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11626 ndr
->offset
= _relative_save_offset
;
11628 ndr
->flags
= _flags_save_string_array
;
11631 return NDR_ERR_SUCCESS
;
11634 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11636 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11638 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11639 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11641 if (r
->driver_name
) {
11642 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11645 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11647 if (r
->architecture
) {
11648 ndr_print_string(ndr
, "architecture", r
->architecture
);
11651 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11653 if (r
->driver_path
) {
11654 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11657 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11659 if (r
->data_file
) {
11660 ndr_print_string(ndr
, "data_file", r
->data_file
);
11663 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11665 if (r
->config_file
) {
11666 ndr_print_string(ndr
, "config_file", r
->config_file
);
11669 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11671 if (r
->help_file
) {
11672 ndr_print_string(ndr
, "help_file", r
->help_file
);
11675 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11677 if (r
->dependent_files
) {
11678 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11681 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11683 if (r
->monitor_name
) {
11684 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11687 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11689 if (r
->default_datatype
) {
11690 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11693 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11695 if (r
->previous_names
) {
11696 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11702 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11704 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11707 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11709 if (ndr_flags
& NDR_SCALARS
) {
11710 NDR_CHECK(ndr_push_align(ndr
, 4));
11711 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11713 uint32_t _flags_save_string
= ndr
->flags
;
11714 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11715 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11722 ndr
->flags
= _flags_save_string
;
11725 uint32_t _flags_save_string
= ndr
->flags
;
11726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11727 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11728 ndr
->flags
= _flags_save_string
;
11731 uint32_t _flags_save_string
= ndr
->flags
;
11732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11733 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11734 ndr
->flags
= _flags_save_string
;
11737 uint32_t _flags_save_string
= ndr
->flags
;
11738 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11739 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11740 ndr
->flags
= _flags_save_string
;
11742 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11746 if (ndr_flags
& NDR_BUFFERS
) {
11748 uint32_t _flags_save_string
= ndr
->flags
;
11749 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11750 if (r
->driver_name
) {
11751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11752 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11755 ndr
->flags
= _flags_save_string
;
11758 uint32_t _flags_save_string
= ndr
->flags
;
11759 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11760 if (r
->architecture
) {
11761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11762 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11765 ndr
->flags
= _flags_save_string
;
11768 uint32_t _flags_save_string
= ndr
->flags
;
11769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11770 if (r
->driver_path
) {
11771 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11772 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11773 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11775 ndr
->flags
= _flags_save_string
;
11778 uint32_t _flags_save_string
= ndr
->flags
;
11779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11780 if (r
->data_file
) {
11781 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11782 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11783 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11785 ndr
->flags
= _flags_save_string
;
11788 uint32_t _flags_save_string
= ndr
->flags
;
11789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11790 if (r
->config_file
) {
11791 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11792 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11793 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11795 ndr
->flags
= _flags_save_string
;
11798 return NDR_ERR_SUCCESS
;
11801 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11803 uint32_t _ptr_driver_name
;
11804 TALLOC_CTX
*_mem_save_driver_name_0
;
11805 uint32_t _ptr_architecture
;
11806 TALLOC_CTX
*_mem_save_architecture_0
;
11807 uint32_t _ptr_driver_path
;
11808 TALLOC_CTX
*_mem_save_driver_path_0
;
11809 uint32_t _ptr_data_file
;
11810 TALLOC_CTX
*_mem_save_data_file_0
;
11811 uint32_t _ptr_config_file
;
11812 TALLOC_CTX
*_mem_save_config_file_0
;
11813 if (ndr_flags
& NDR_SCALARS
) {
11814 NDR_CHECK(ndr_pull_align(ndr
, 4));
11815 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11817 uint32_t _flags_save_string
= ndr
->flags
;
11818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11820 if (_ptr_driver_name
) {
11821 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11822 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11824 r
->driver_name
= NULL
;
11826 ndr
->flags
= _flags_save_string
;
11829 uint32_t _flags_save_string
= ndr
->flags
;
11830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11832 if (_ptr_architecture
) {
11833 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11834 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11836 r
->architecture
= NULL
;
11838 ndr
->flags
= _flags_save_string
;
11841 uint32_t _flags_save_string
= ndr
->flags
;
11842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11844 if (_ptr_driver_path
) {
11845 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11846 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11848 r
->driver_path
= NULL
;
11850 ndr
->flags
= _flags_save_string
;
11853 uint32_t _flags_save_string
= ndr
->flags
;
11854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11855 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11856 if (_ptr_data_file
) {
11857 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11858 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11860 r
->data_file
= NULL
;
11862 ndr
->flags
= _flags_save_string
;
11865 uint32_t _flags_save_string
= ndr
->flags
;
11866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11868 if (_ptr_config_file
) {
11869 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11870 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11872 r
->config_file
= NULL
;
11874 ndr
->flags
= _flags_save_string
;
11876 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11878 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11880 if (ndr_flags
& NDR_BUFFERS
) {
11882 uint32_t _flags_save_string
= ndr
->flags
;
11883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11884 if (r
->driver_name
) {
11885 uint32_t _relative_save_offset
;
11886 _relative_save_offset
= ndr
->offset
;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11888 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11889 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11892 ndr
->offset
= _relative_save_offset
;
11894 ndr
->flags
= _flags_save_string
;
11897 uint32_t _flags_save_string
= ndr
->flags
;
11898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11899 if (r
->architecture
) {
11900 uint32_t _relative_save_offset
;
11901 _relative_save_offset
= ndr
->offset
;
11902 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11903 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11904 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11905 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11907 ndr
->offset
= _relative_save_offset
;
11909 ndr
->flags
= _flags_save_string
;
11912 uint32_t _flags_save_string
= ndr
->flags
;
11913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11914 if (r
->driver_path
) {
11915 uint32_t _relative_save_offset
;
11916 _relative_save_offset
= ndr
->offset
;
11917 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11918 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11919 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11920 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11922 ndr
->offset
= _relative_save_offset
;
11924 ndr
->flags
= _flags_save_string
;
11927 uint32_t _flags_save_string
= ndr
->flags
;
11928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11929 if (r
->data_file
) {
11930 uint32_t _relative_save_offset
;
11931 _relative_save_offset
= ndr
->offset
;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11933 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11934 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11935 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11937 ndr
->offset
= _relative_save_offset
;
11939 ndr
->flags
= _flags_save_string
;
11942 uint32_t _flags_save_string
= ndr
->flags
;
11943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11944 if (r
->config_file
) {
11945 uint32_t _relative_save_offset
;
11946 _relative_save_offset
= ndr
->offset
;
11947 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11948 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11949 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11950 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11952 ndr
->offset
= _relative_save_offset
;
11954 ndr
->flags
= _flags_save_string
;
11957 return NDR_ERR_SUCCESS
;
11960 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
11962 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
11964 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11965 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11967 if (r
->driver_name
) {
11968 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11971 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11973 if (r
->architecture
) {
11974 ndr_print_string(ndr
, "architecture", r
->architecture
);
11977 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11979 if (r
->driver_path
) {
11980 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11983 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11985 if (r
->data_file
) {
11986 ndr_print_string(ndr
, "data_file", r
->data_file
);
11989 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11991 if (r
->config_file
) {
11992 ndr_print_string(ndr
, "config_file", r
->config_file
);
11995 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
11996 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
11997 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12001 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12003 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12006 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12008 if (ndr_flags
& NDR_SCALARS
) {
12009 NDR_CHECK(ndr_push_align(ndr
, 8));
12010 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12012 uint32_t _flags_save_string
= ndr
->flags
;
12013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12014 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12015 ndr
->flags
= _flags_save_string
;
12018 uint32_t _flags_save_string
= ndr
->flags
;
12019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12020 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12021 ndr
->flags
= _flags_save_string
;
12024 uint32_t _flags_save_string
= ndr
->flags
;
12025 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12026 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12027 ndr
->flags
= _flags_save_string
;
12030 uint32_t _flags_save_string
= ndr
->flags
;
12031 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12032 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12033 ndr
->flags
= _flags_save_string
;
12036 uint32_t _flags_save_string
= ndr
->flags
;
12037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12038 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12039 ndr
->flags
= _flags_save_string
;
12042 uint32_t _flags_save_string
= ndr
->flags
;
12043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12044 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12045 ndr
->flags
= _flags_save_string
;
12048 uint32_t _flags_save_string_array
= ndr
->flags
;
12049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12050 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12051 ndr
->flags
= _flags_save_string_array
;
12054 uint32_t _flags_save_string
= ndr
->flags
;
12055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12056 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12057 ndr
->flags
= _flags_save_string
;
12060 uint32_t _flags_save_string
= ndr
->flags
;
12061 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12062 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12063 ndr
->flags
= _flags_save_string
;
12066 uint32_t _flags_save_string_array
= ndr
->flags
;
12067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12068 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12069 ndr
->flags
= _flags_save_string_array
;
12071 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12072 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12074 uint32_t _flags_save_string
= ndr
->flags
;
12075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12076 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12077 ndr
->flags
= _flags_save_string
;
12080 uint32_t _flags_save_string
= ndr
->flags
;
12081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12082 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12083 ndr
->flags
= _flags_save_string
;
12086 uint32_t _flags_save_string
= ndr
->flags
;
12087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12088 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12089 ndr
->flags
= _flags_save_string
;
12092 uint32_t _flags_save_string
= ndr
->flags
;
12093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12094 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12095 ndr
->flags
= _flags_save_string
;
12098 if (ndr_flags
& NDR_BUFFERS
) {
12100 uint32_t _flags_save_string
= ndr
->flags
;
12101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12102 if (r
->driver_name
) {
12103 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12104 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12105 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12107 ndr
->flags
= _flags_save_string
;
12110 uint32_t _flags_save_string
= ndr
->flags
;
12111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12112 if (r
->architecture
) {
12113 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12114 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12115 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12117 ndr
->flags
= _flags_save_string
;
12120 uint32_t _flags_save_string
= ndr
->flags
;
12121 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12122 if (r
->driver_path
) {
12123 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12124 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12125 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12127 ndr
->flags
= _flags_save_string
;
12130 uint32_t _flags_save_string
= ndr
->flags
;
12131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12132 if (r
->data_file
) {
12133 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12134 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12135 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12137 ndr
->flags
= _flags_save_string
;
12140 uint32_t _flags_save_string
= ndr
->flags
;
12141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12142 if (r
->config_file
) {
12143 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12144 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12145 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12147 ndr
->flags
= _flags_save_string
;
12150 uint32_t _flags_save_string
= ndr
->flags
;
12151 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12152 if (r
->help_file
) {
12153 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
12154 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12155 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
12157 ndr
->flags
= _flags_save_string
;
12160 uint32_t _flags_save_string_array
= ndr
->flags
;
12161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12162 if (r
->dependent_files
) {
12163 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
12164 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12165 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
12167 ndr
->flags
= _flags_save_string_array
;
12170 uint32_t _flags_save_string
= ndr
->flags
;
12171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12172 if (r
->monitor_name
) {
12173 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
12174 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12175 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12177 ndr
->flags
= _flags_save_string
;
12180 uint32_t _flags_save_string
= ndr
->flags
;
12181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12182 if (r
->default_datatype
) {
12183 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12184 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12185 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12187 ndr
->flags
= _flags_save_string
;
12190 uint32_t _flags_save_string_array
= ndr
->flags
;
12191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12192 if (r
->previous_names
) {
12193 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12194 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12195 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12197 ndr
->flags
= _flags_save_string_array
;
12200 uint32_t _flags_save_string
= ndr
->flags
;
12201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12202 if (r
->manufacturer_name
) {
12203 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
12204 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12205 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
12207 ndr
->flags
= _flags_save_string
;
12210 uint32_t _flags_save_string
= ndr
->flags
;
12211 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12212 if (r
->manufacturer_url
) {
12213 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
12214 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12215 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
12217 ndr
->flags
= _flags_save_string
;
12220 uint32_t _flags_save_string
= ndr
->flags
;
12221 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12222 if (r
->hardware_id
) {
12223 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
12224 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12225 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
12227 ndr
->flags
= _flags_save_string
;
12230 uint32_t _flags_save_string
= ndr
->flags
;
12231 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12233 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
12234 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12235 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
12237 ndr
->flags
= _flags_save_string
;
12240 return NDR_ERR_SUCCESS
;
12243 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12245 uint32_t _ptr_driver_name
;
12246 TALLOC_CTX
*_mem_save_driver_name_0
;
12247 uint32_t _ptr_architecture
;
12248 TALLOC_CTX
*_mem_save_architecture_0
;
12249 uint32_t _ptr_driver_path
;
12250 TALLOC_CTX
*_mem_save_driver_path_0
;
12251 uint32_t _ptr_data_file
;
12252 TALLOC_CTX
*_mem_save_data_file_0
;
12253 uint32_t _ptr_config_file
;
12254 TALLOC_CTX
*_mem_save_config_file_0
;
12255 uint32_t _ptr_help_file
;
12256 TALLOC_CTX
*_mem_save_help_file_0
;
12257 uint32_t _ptr_dependent_files
;
12258 TALLOC_CTX
*_mem_save_dependent_files_0
;
12259 uint32_t _ptr_monitor_name
;
12260 TALLOC_CTX
*_mem_save_monitor_name_0
;
12261 uint32_t _ptr_default_datatype
;
12262 TALLOC_CTX
*_mem_save_default_datatype_0
;
12263 uint32_t _ptr_previous_names
;
12264 TALLOC_CTX
*_mem_save_previous_names_0
;
12265 uint32_t _ptr_manufacturer_name
;
12266 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12267 uint32_t _ptr_manufacturer_url
;
12268 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12269 uint32_t _ptr_hardware_id
;
12270 TALLOC_CTX
*_mem_save_hardware_id_0
;
12271 uint32_t _ptr_provider
;
12272 TALLOC_CTX
*_mem_save_provider_0
;
12273 if (ndr_flags
& NDR_SCALARS
) {
12274 NDR_CHECK(ndr_pull_align(ndr
, 8));
12275 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12277 uint32_t _flags_save_string
= ndr
->flags
;
12278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12280 if (_ptr_driver_name
) {
12281 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12282 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12284 r
->driver_name
= NULL
;
12286 ndr
->flags
= _flags_save_string
;
12289 uint32_t _flags_save_string
= ndr
->flags
;
12290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12292 if (_ptr_architecture
) {
12293 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12294 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12296 r
->architecture
= NULL
;
12298 ndr
->flags
= _flags_save_string
;
12301 uint32_t _flags_save_string
= ndr
->flags
;
12302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12304 if (_ptr_driver_path
) {
12305 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12306 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12308 r
->driver_path
= NULL
;
12310 ndr
->flags
= _flags_save_string
;
12313 uint32_t _flags_save_string
= ndr
->flags
;
12314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12316 if (_ptr_data_file
) {
12317 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12318 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12320 r
->data_file
= NULL
;
12322 ndr
->flags
= _flags_save_string
;
12325 uint32_t _flags_save_string
= ndr
->flags
;
12326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12328 if (_ptr_config_file
) {
12329 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12330 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12332 r
->config_file
= NULL
;
12334 ndr
->flags
= _flags_save_string
;
12337 uint32_t _flags_save_string
= ndr
->flags
;
12338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12340 if (_ptr_help_file
) {
12341 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12342 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12344 r
->help_file
= NULL
;
12346 ndr
->flags
= _flags_save_string
;
12349 uint32_t _flags_save_string_array
= ndr
->flags
;
12350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12352 if (_ptr_dependent_files
) {
12353 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12354 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12356 r
->dependent_files
= NULL
;
12358 ndr
->flags
= _flags_save_string_array
;
12361 uint32_t _flags_save_string
= ndr
->flags
;
12362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12364 if (_ptr_monitor_name
) {
12365 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12366 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12368 r
->monitor_name
= NULL
;
12370 ndr
->flags
= _flags_save_string
;
12373 uint32_t _flags_save_string
= ndr
->flags
;
12374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12376 if (_ptr_default_datatype
) {
12377 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12378 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12380 r
->default_datatype
= NULL
;
12382 ndr
->flags
= _flags_save_string
;
12385 uint32_t _flags_save_string_array
= ndr
->flags
;
12386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12388 if (_ptr_previous_names
) {
12389 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12390 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12392 r
->previous_names
= NULL
;
12394 ndr
->flags
= _flags_save_string_array
;
12396 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12397 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12399 uint32_t _flags_save_string
= ndr
->flags
;
12400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12402 if (_ptr_manufacturer_name
) {
12403 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12404 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12406 r
->manufacturer_name
= NULL
;
12408 ndr
->flags
= _flags_save_string
;
12411 uint32_t _flags_save_string
= ndr
->flags
;
12412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12413 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12414 if (_ptr_manufacturer_url
) {
12415 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12416 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12418 r
->manufacturer_url
= NULL
;
12420 ndr
->flags
= _flags_save_string
;
12423 uint32_t _flags_save_string
= ndr
->flags
;
12424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12425 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12426 if (_ptr_hardware_id
) {
12427 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12428 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12430 r
->hardware_id
= NULL
;
12432 ndr
->flags
= _flags_save_string
;
12435 uint32_t _flags_save_string
= ndr
->flags
;
12436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12438 if (_ptr_provider
) {
12439 NDR_PULL_ALLOC(ndr
, r
->provider
);
12440 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12442 r
->provider
= NULL
;
12444 ndr
->flags
= _flags_save_string
;
12447 if (ndr_flags
& NDR_BUFFERS
) {
12449 uint32_t _flags_save_string
= ndr
->flags
;
12450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12451 if (r
->driver_name
) {
12452 uint32_t _relative_save_offset
;
12453 _relative_save_offset
= ndr
->offset
;
12454 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12455 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12456 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12457 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12459 ndr
->offset
= _relative_save_offset
;
12461 ndr
->flags
= _flags_save_string
;
12464 uint32_t _flags_save_string
= ndr
->flags
;
12465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12466 if (r
->architecture
) {
12467 uint32_t _relative_save_offset
;
12468 _relative_save_offset
= ndr
->offset
;
12469 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12470 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12471 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12472 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12474 ndr
->offset
= _relative_save_offset
;
12476 ndr
->flags
= _flags_save_string
;
12479 uint32_t _flags_save_string
= ndr
->flags
;
12480 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12481 if (r
->driver_path
) {
12482 uint32_t _relative_save_offset
;
12483 _relative_save_offset
= ndr
->offset
;
12484 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12485 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12486 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12487 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12489 ndr
->offset
= _relative_save_offset
;
12491 ndr
->flags
= _flags_save_string
;
12494 uint32_t _flags_save_string
= ndr
->flags
;
12495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12496 if (r
->data_file
) {
12497 uint32_t _relative_save_offset
;
12498 _relative_save_offset
= ndr
->offset
;
12499 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12500 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12501 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12502 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12504 ndr
->offset
= _relative_save_offset
;
12506 ndr
->flags
= _flags_save_string
;
12509 uint32_t _flags_save_string
= ndr
->flags
;
12510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12511 if (r
->config_file
) {
12512 uint32_t _relative_save_offset
;
12513 _relative_save_offset
= ndr
->offset
;
12514 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12515 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12516 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12517 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12519 ndr
->offset
= _relative_save_offset
;
12521 ndr
->flags
= _flags_save_string
;
12524 uint32_t _flags_save_string
= ndr
->flags
;
12525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12526 if (r
->help_file
) {
12527 uint32_t _relative_save_offset
;
12528 _relative_save_offset
= ndr
->offset
;
12529 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12530 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12531 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12532 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12534 ndr
->offset
= _relative_save_offset
;
12536 ndr
->flags
= _flags_save_string
;
12539 uint32_t _flags_save_string_array
= ndr
->flags
;
12540 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12541 if (r
->dependent_files
) {
12542 uint32_t _relative_save_offset
;
12543 _relative_save_offset
= ndr
->offset
;
12544 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12545 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12546 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12547 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12549 ndr
->offset
= _relative_save_offset
;
12551 ndr
->flags
= _flags_save_string_array
;
12554 uint32_t _flags_save_string
= ndr
->flags
;
12555 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12556 if (r
->monitor_name
) {
12557 uint32_t _relative_save_offset
;
12558 _relative_save_offset
= ndr
->offset
;
12559 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12560 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12561 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12562 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12563 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12564 ndr
->offset
= _relative_save_offset
;
12566 ndr
->flags
= _flags_save_string
;
12569 uint32_t _flags_save_string
= ndr
->flags
;
12570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12571 if (r
->default_datatype
) {
12572 uint32_t _relative_save_offset
;
12573 _relative_save_offset
= ndr
->offset
;
12574 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12575 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12576 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12577 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12579 ndr
->offset
= _relative_save_offset
;
12581 ndr
->flags
= _flags_save_string
;
12584 uint32_t _flags_save_string_array
= ndr
->flags
;
12585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12586 if (r
->previous_names
) {
12587 uint32_t _relative_save_offset
;
12588 _relative_save_offset
= ndr
->offset
;
12589 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12590 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12591 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12592 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12594 ndr
->offset
= _relative_save_offset
;
12596 ndr
->flags
= _flags_save_string_array
;
12599 uint32_t _flags_save_string
= ndr
->flags
;
12600 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12601 if (r
->manufacturer_name
) {
12602 uint32_t _relative_save_offset
;
12603 _relative_save_offset
= ndr
->offset
;
12604 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12605 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12606 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12607 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12609 ndr
->offset
= _relative_save_offset
;
12611 ndr
->flags
= _flags_save_string
;
12614 uint32_t _flags_save_string
= ndr
->flags
;
12615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12616 if (r
->manufacturer_url
) {
12617 uint32_t _relative_save_offset
;
12618 _relative_save_offset
= ndr
->offset
;
12619 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12620 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12621 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12622 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12623 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12624 ndr
->offset
= _relative_save_offset
;
12626 ndr
->flags
= _flags_save_string
;
12629 uint32_t _flags_save_string
= ndr
->flags
;
12630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12631 if (r
->hardware_id
) {
12632 uint32_t _relative_save_offset
;
12633 _relative_save_offset
= ndr
->offset
;
12634 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12635 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12636 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12637 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12639 ndr
->offset
= _relative_save_offset
;
12641 ndr
->flags
= _flags_save_string
;
12644 uint32_t _flags_save_string
= ndr
->flags
;
12645 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12647 uint32_t _relative_save_offset
;
12648 _relative_save_offset
= ndr
->offset
;
12649 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12650 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12651 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12652 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12654 ndr
->offset
= _relative_save_offset
;
12656 ndr
->flags
= _flags_save_string
;
12659 return NDR_ERR_SUCCESS
;
12662 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12664 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12666 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12667 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12669 if (r
->driver_name
) {
12670 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12673 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12675 if (r
->architecture
) {
12676 ndr_print_string(ndr
, "architecture", r
->architecture
);
12679 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12681 if (r
->driver_path
) {
12682 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12685 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12687 if (r
->data_file
) {
12688 ndr_print_string(ndr
, "data_file", r
->data_file
);
12691 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12693 if (r
->config_file
) {
12694 ndr_print_string(ndr
, "config_file", r
->config_file
);
12697 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12699 if (r
->help_file
) {
12700 ndr_print_string(ndr
, "help_file", r
->help_file
);
12703 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12705 if (r
->dependent_files
) {
12706 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12709 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12711 if (r
->monitor_name
) {
12712 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12715 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12717 if (r
->default_datatype
) {
12718 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12721 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12723 if (r
->previous_names
) {
12724 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12727 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12728 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12729 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12731 if (r
->manufacturer_name
) {
12732 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12735 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12737 if (r
->manufacturer_url
) {
12738 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12741 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12743 if (r
->hardware_id
) {
12744 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12747 ndr_print_ptr(ndr
, "provider", r
->provider
);
12750 ndr_print_string(ndr
, "provider", r
->provider
);
12756 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12758 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12761 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12763 if (ndr_flags
& NDR_SCALARS
) {
12764 NDR_CHECK(ndr_push_align(ndr
, 8));
12765 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12767 uint32_t _flags_save_string
= ndr
->flags
;
12768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12769 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
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_push_relative_ptr1(ndr
, r
->architecture
));
12776 ndr
->flags
= _flags_save_string
;
12779 uint32_t _flags_save_string
= ndr
->flags
;
12780 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12781 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
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_push_relative_ptr1(ndr
, r
->data_file
));
12788 ndr
->flags
= _flags_save_string
;
12791 uint32_t _flags_save_string
= ndr
->flags
;
12792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12793 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12794 ndr
->flags
= _flags_save_string
;
12797 uint32_t _flags_save_string
= ndr
->flags
;
12798 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12799 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12800 ndr
->flags
= _flags_save_string
;
12803 uint32_t _flags_save_string
= ndr
->flags
;
12804 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12805 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12806 ndr
->flags
= _flags_save_string
;
12809 uint32_t _flags_save_string
= ndr
->flags
;
12810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12811 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12812 ndr
->flags
= _flags_save_string
;
12815 uint32_t _flags_save_string_array
= ndr
->flags
;
12816 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12817 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12818 ndr
->flags
= _flags_save_string_array
;
12821 uint32_t _flags_save_string_array
= ndr
->flags
;
12822 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12823 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12824 ndr
->flags
= _flags_save_string_array
;
12826 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12827 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12829 uint32_t _flags_save_string
= ndr
->flags
;
12830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12831 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12832 ndr
->flags
= _flags_save_string
;
12835 uint32_t _flags_save_string
= ndr
->flags
;
12836 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12837 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12838 ndr
->flags
= _flags_save_string
;
12841 uint32_t _flags_save_string
= ndr
->flags
;
12842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12843 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12844 ndr
->flags
= _flags_save_string
;
12847 uint32_t _flags_save_string
= ndr
->flags
;
12848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12849 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12856 ndr
->flags
= _flags_save_string
;
12859 uint32_t _flags_save_string
= ndr
->flags
;
12860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12861 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12862 ndr
->flags
= _flags_save_string
;
12865 uint32_t _flags_save_string_array
= ndr
->flags
;
12866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12867 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12868 ndr
->flags
= _flags_save_string_array
;
12871 uint32_t _flags_save_string
= ndr
->flags
;
12872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12873 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12874 ndr
->flags
= _flags_save_string
;
12876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12878 uint32_t _flags_save_string_array
= ndr
->flags
;
12879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12880 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12881 ndr
->flags
= _flags_save_string_array
;
12883 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12884 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12886 if (ndr_flags
& NDR_BUFFERS
) {
12888 uint32_t _flags_save_string
= ndr
->flags
;
12889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12890 if (r
->driver_name
) {
12891 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12892 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12893 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
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
->architecture
) {
12901 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12902 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12903 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12905 ndr
->flags
= _flags_save_string
;
12908 uint32_t _flags_save_string
= ndr
->flags
;
12909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12910 if (r
->driver_path
) {
12911 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12912 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12913 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12915 ndr
->flags
= _flags_save_string
;
12918 uint32_t _flags_save_string
= ndr
->flags
;
12919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12920 if (r
->data_file
) {
12921 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12922 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12923 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
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
->config_file
) {
12931 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12932 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12933 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12935 ndr
->flags
= _flags_save_string
;
12938 uint32_t _flags_save_string
= ndr
->flags
;
12939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12940 if (r
->help_file
) {
12941 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
12942 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12943 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
12945 ndr
->flags
= _flags_save_string
;
12948 uint32_t _flags_save_string
= ndr
->flags
;
12949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12950 if (r
->monitor_name
) {
12951 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
12952 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12953 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12955 ndr
->flags
= _flags_save_string
;
12958 uint32_t _flags_save_string
= ndr
->flags
;
12959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12960 if (r
->default_datatype
) {
12961 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12962 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12963 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12965 ndr
->flags
= _flags_save_string
;
12968 uint32_t _flags_save_string_array
= ndr
->flags
;
12969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12970 if (r
->dependent_files
) {
12971 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
12972 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12973 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
12975 ndr
->flags
= _flags_save_string_array
;
12978 uint32_t _flags_save_string_array
= ndr
->flags
;
12979 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12980 if (r
->previous_names
) {
12981 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12982 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12983 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
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 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
12992 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12993 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
12995 ndr
->flags
= _flags_save_string
;
12998 uint32_t _flags_save_string
= ndr
->flags
;
12999 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13000 if (r
->manufacturer_url
) {
13001 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
13002 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13003 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
13005 ndr
->flags
= _flags_save_string
;
13008 uint32_t _flags_save_string
= ndr
->flags
;
13009 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13010 if (r
->hardware_id
) {
13011 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
13012 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13013 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
13015 ndr
->flags
= _flags_save_string
;
13018 uint32_t _flags_save_string
= ndr
->flags
;
13019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13021 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
13022 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
13023 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
13025 ndr
->flags
= _flags_save_string
;
13028 uint32_t _flags_save_string
= ndr
->flags
;
13029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13030 if (r
->print_processor
) {
13031 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
13032 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
13033 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
13035 ndr
->flags
= _flags_save_string
;
13038 uint32_t _flags_save_string
= ndr
->flags
;
13039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13040 if (r
->vendor_setup
) {
13041 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->vendor_setup
));
13042 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
13043 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->vendor_setup
));
13045 ndr
->flags
= _flags_save_string
;
13048 uint32_t _flags_save_string_array
= ndr
->flags
;
13049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13050 if (r
->color_profiles
) {
13051 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->color_profiles
));
13052 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
13053 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->color_profiles
));
13055 ndr
->flags
= _flags_save_string_array
;
13058 uint32_t _flags_save_string
= ndr
->flags
;
13059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13061 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_path
));
13062 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
13063 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_path
));
13065 ndr
->flags
= _flags_save_string
;
13068 uint32_t _flags_save_string_array
= ndr
->flags
;
13069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13070 if (r
->core_driver_dependencies
) {
13071 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->core_driver_dependencies
));
13072 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
13073 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->core_driver_dependencies
));
13075 ndr
->flags
= _flags_save_string_array
;
13078 return NDR_ERR_SUCCESS
;
13081 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
13083 uint32_t _ptr_driver_name
;
13084 TALLOC_CTX
*_mem_save_driver_name_0
;
13085 uint32_t _ptr_architecture
;
13086 TALLOC_CTX
*_mem_save_architecture_0
;
13087 uint32_t _ptr_driver_path
;
13088 TALLOC_CTX
*_mem_save_driver_path_0
;
13089 uint32_t _ptr_data_file
;
13090 TALLOC_CTX
*_mem_save_data_file_0
;
13091 uint32_t _ptr_config_file
;
13092 TALLOC_CTX
*_mem_save_config_file_0
;
13093 uint32_t _ptr_help_file
;
13094 TALLOC_CTX
*_mem_save_help_file_0
;
13095 uint32_t _ptr_monitor_name
;
13096 TALLOC_CTX
*_mem_save_monitor_name_0
;
13097 uint32_t _ptr_default_datatype
;
13098 TALLOC_CTX
*_mem_save_default_datatype_0
;
13099 uint32_t _ptr_dependent_files
;
13100 TALLOC_CTX
*_mem_save_dependent_files_0
;
13101 uint32_t _ptr_previous_names
;
13102 TALLOC_CTX
*_mem_save_previous_names_0
;
13103 uint32_t _ptr_manufacturer_name
;
13104 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13105 uint32_t _ptr_manufacturer_url
;
13106 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13107 uint32_t _ptr_hardware_id
;
13108 TALLOC_CTX
*_mem_save_hardware_id_0
;
13109 uint32_t _ptr_provider
;
13110 TALLOC_CTX
*_mem_save_provider_0
;
13111 uint32_t _ptr_print_processor
;
13112 TALLOC_CTX
*_mem_save_print_processor_0
;
13113 uint32_t _ptr_vendor_setup
;
13114 TALLOC_CTX
*_mem_save_vendor_setup_0
;
13115 uint32_t _ptr_color_profiles
;
13116 TALLOC_CTX
*_mem_save_color_profiles_0
;
13117 uint32_t _ptr_inf_path
;
13118 TALLOC_CTX
*_mem_save_inf_path_0
;
13119 uint32_t _ptr_core_driver_dependencies
;
13120 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
13121 if (ndr_flags
& NDR_SCALARS
) {
13122 NDR_CHECK(ndr_pull_align(ndr
, 8));
13123 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13125 uint32_t _flags_save_string
= ndr
->flags
;
13126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13128 if (_ptr_driver_name
) {
13129 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13130 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13132 r
->driver_name
= NULL
;
13134 ndr
->flags
= _flags_save_string
;
13137 uint32_t _flags_save_string
= ndr
->flags
;
13138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13139 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13140 if (_ptr_architecture
) {
13141 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13142 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13144 r
->architecture
= NULL
;
13146 ndr
->flags
= _flags_save_string
;
13149 uint32_t _flags_save_string
= ndr
->flags
;
13150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13152 if (_ptr_driver_path
) {
13153 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13154 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13156 r
->driver_path
= NULL
;
13158 ndr
->flags
= _flags_save_string
;
13161 uint32_t _flags_save_string
= ndr
->flags
;
13162 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13164 if (_ptr_data_file
) {
13165 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13166 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13168 r
->data_file
= NULL
;
13170 ndr
->flags
= _flags_save_string
;
13173 uint32_t _flags_save_string
= ndr
->flags
;
13174 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13176 if (_ptr_config_file
) {
13177 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13178 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13180 r
->config_file
= NULL
;
13182 ndr
->flags
= _flags_save_string
;
13185 uint32_t _flags_save_string
= ndr
->flags
;
13186 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13188 if (_ptr_help_file
) {
13189 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13190 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13192 r
->help_file
= NULL
;
13194 ndr
->flags
= _flags_save_string
;
13197 uint32_t _flags_save_string
= ndr
->flags
;
13198 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13200 if (_ptr_monitor_name
) {
13201 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13202 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13204 r
->monitor_name
= NULL
;
13206 ndr
->flags
= _flags_save_string
;
13209 uint32_t _flags_save_string
= ndr
->flags
;
13210 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13212 if (_ptr_default_datatype
) {
13213 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13214 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13216 r
->default_datatype
= NULL
;
13218 ndr
->flags
= _flags_save_string
;
13221 uint32_t _flags_save_string_array
= ndr
->flags
;
13222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13224 if (_ptr_dependent_files
) {
13225 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13226 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13228 r
->dependent_files
= NULL
;
13230 ndr
->flags
= _flags_save_string_array
;
13233 uint32_t _flags_save_string_array
= ndr
->flags
;
13234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13236 if (_ptr_previous_names
) {
13237 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13238 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13240 r
->previous_names
= NULL
;
13242 ndr
->flags
= _flags_save_string_array
;
13244 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13245 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13247 uint32_t _flags_save_string
= ndr
->flags
;
13248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13250 if (_ptr_manufacturer_name
) {
13251 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13252 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13254 r
->manufacturer_name
= NULL
;
13256 ndr
->flags
= _flags_save_string
;
13259 uint32_t _flags_save_string
= ndr
->flags
;
13260 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13262 if (_ptr_manufacturer_url
) {
13263 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13264 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13266 r
->manufacturer_url
= NULL
;
13268 ndr
->flags
= _flags_save_string
;
13271 uint32_t _flags_save_string
= ndr
->flags
;
13272 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13274 if (_ptr_hardware_id
) {
13275 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13276 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13278 r
->hardware_id
= NULL
;
13280 ndr
->flags
= _flags_save_string
;
13283 uint32_t _flags_save_string
= ndr
->flags
;
13284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13286 if (_ptr_provider
) {
13287 NDR_PULL_ALLOC(ndr
, r
->provider
);
13288 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13290 r
->provider
= NULL
;
13292 ndr
->flags
= _flags_save_string
;
13295 uint32_t _flags_save_string
= ndr
->flags
;
13296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
13298 if (_ptr_print_processor
) {
13299 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
13300 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
13302 r
->print_processor
= NULL
;
13304 ndr
->flags
= _flags_save_string
;
13307 uint32_t _flags_save_string
= ndr
->flags
;
13308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
13310 if (_ptr_vendor_setup
) {
13311 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
13312 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
13314 r
->vendor_setup
= NULL
;
13316 ndr
->flags
= _flags_save_string
;
13319 uint32_t _flags_save_string_array
= ndr
->flags
;
13320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13321 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
13322 if (_ptr_color_profiles
) {
13323 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
13324 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
13326 r
->color_profiles
= NULL
;
13328 ndr
->flags
= _flags_save_string_array
;
13331 uint32_t _flags_save_string
= ndr
->flags
;
13332 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
13334 if (_ptr_inf_path
) {
13335 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
13336 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
13338 r
->inf_path
= NULL
;
13340 ndr
->flags
= _flags_save_string
;
13342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
13344 uint32_t _flags_save_string_array
= ndr
->flags
;
13345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13346 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
13347 if (_ptr_core_driver_dependencies
) {
13348 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
13349 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
13351 r
->core_driver_dependencies
= NULL
;
13353 ndr
->flags
= _flags_save_string_array
;
13355 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
13356 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
13358 if (ndr_flags
& NDR_BUFFERS
) {
13360 uint32_t _flags_save_string
= ndr
->flags
;
13361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13362 if (r
->driver_name
) {
13363 uint32_t _relative_save_offset
;
13364 _relative_save_offset
= ndr
->offset
;
13365 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13366 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13367 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13368 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13370 ndr
->offset
= _relative_save_offset
;
13372 ndr
->flags
= _flags_save_string
;
13375 uint32_t _flags_save_string
= ndr
->flags
;
13376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13377 if (r
->architecture
) {
13378 uint32_t _relative_save_offset
;
13379 _relative_save_offset
= ndr
->offset
;
13380 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13381 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13382 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13383 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13385 ndr
->offset
= _relative_save_offset
;
13387 ndr
->flags
= _flags_save_string
;
13390 uint32_t _flags_save_string
= ndr
->flags
;
13391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13392 if (r
->driver_path
) {
13393 uint32_t _relative_save_offset
;
13394 _relative_save_offset
= ndr
->offset
;
13395 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13396 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13397 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13398 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13400 ndr
->offset
= _relative_save_offset
;
13402 ndr
->flags
= _flags_save_string
;
13405 uint32_t _flags_save_string
= ndr
->flags
;
13406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13407 if (r
->data_file
) {
13408 uint32_t _relative_save_offset
;
13409 _relative_save_offset
= ndr
->offset
;
13410 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13411 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13412 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13413 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13415 ndr
->offset
= _relative_save_offset
;
13417 ndr
->flags
= _flags_save_string
;
13420 uint32_t _flags_save_string
= ndr
->flags
;
13421 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13422 if (r
->config_file
) {
13423 uint32_t _relative_save_offset
;
13424 _relative_save_offset
= ndr
->offset
;
13425 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13426 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13427 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13428 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13430 ndr
->offset
= _relative_save_offset
;
13432 ndr
->flags
= _flags_save_string
;
13435 uint32_t _flags_save_string
= ndr
->flags
;
13436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13437 if (r
->help_file
) {
13438 uint32_t _relative_save_offset
;
13439 _relative_save_offset
= ndr
->offset
;
13440 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13441 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13442 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13443 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13445 ndr
->offset
= _relative_save_offset
;
13447 ndr
->flags
= _flags_save_string
;
13450 uint32_t _flags_save_string
= ndr
->flags
;
13451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13452 if (r
->monitor_name
) {
13453 uint32_t _relative_save_offset
;
13454 _relative_save_offset
= ndr
->offset
;
13455 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13456 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13457 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13458 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13460 ndr
->offset
= _relative_save_offset
;
13462 ndr
->flags
= _flags_save_string
;
13465 uint32_t _flags_save_string
= ndr
->flags
;
13466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13467 if (r
->default_datatype
) {
13468 uint32_t _relative_save_offset
;
13469 _relative_save_offset
= ndr
->offset
;
13470 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13471 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13472 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13473 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13475 ndr
->offset
= _relative_save_offset
;
13477 ndr
->flags
= _flags_save_string
;
13480 uint32_t _flags_save_string_array
= ndr
->flags
;
13481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13482 if (r
->dependent_files
) {
13483 uint32_t _relative_save_offset
;
13484 _relative_save_offset
= ndr
->offset
;
13485 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13486 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13487 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13488 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13490 ndr
->offset
= _relative_save_offset
;
13492 ndr
->flags
= _flags_save_string_array
;
13495 uint32_t _flags_save_string_array
= ndr
->flags
;
13496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13497 if (r
->previous_names
) {
13498 uint32_t _relative_save_offset
;
13499 _relative_save_offset
= ndr
->offset
;
13500 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13501 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13502 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13503 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13505 ndr
->offset
= _relative_save_offset
;
13507 ndr
->flags
= _flags_save_string_array
;
13510 uint32_t _flags_save_string
= ndr
->flags
;
13511 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13512 if (r
->manufacturer_name
) {
13513 uint32_t _relative_save_offset
;
13514 _relative_save_offset
= ndr
->offset
;
13515 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13516 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13517 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13518 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13520 ndr
->offset
= _relative_save_offset
;
13522 ndr
->flags
= _flags_save_string
;
13525 uint32_t _flags_save_string
= ndr
->flags
;
13526 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13527 if (r
->manufacturer_url
) {
13528 uint32_t _relative_save_offset
;
13529 _relative_save_offset
= ndr
->offset
;
13530 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13531 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13532 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13533 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13535 ndr
->offset
= _relative_save_offset
;
13537 ndr
->flags
= _flags_save_string
;
13540 uint32_t _flags_save_string
= ndr
->flags
;
13541 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13542 if (r
->hardware_id
) {
13543 uint32_t _relative_save_offset
;
13544 _relative_save_offset
= ndr
->offset
;
13545 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13546 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13547 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13548 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13549 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13550 ndr
->offset
= _relative_save_offset
;
13552 ndr
->flags
= _flags_save_string
;
13555 uint32_t _flags_save_string
= ndr
->flags
;
13556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13558 uint32_t _relative_save_offset
;
13559 _relative_save_offset
= ndr
->offset
;
13560 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13561 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13562 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13563 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13565 ndr
->offset
= _relative_save_offset
;
13567 ndr
->flags
= _flags_save_string
;
13570 uint32_t _flags_save_string
= ndr
->flags
;
13571 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13572 if (r
->print_processor
) {
13573 uint32_t _relative_save_offset
;
13574 _relative_save_offset
= ndr
->offset
;
13575 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13576 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13577 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13578 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13580 ndr
->offset
= _relative_save_offset
;
13582 ndr
->flags
= _flags_save_string
;
13585 uint32_t _flags_save_string
= ndr
->flags
;
13586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13587 if (r
->vendor_setup
) {
13588 uint32_t _relative_save_offset
;
13589 _relative_save_offset
= ndr
->offset
;
13590 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13591 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13592 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13593 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13595 ndr
->offset
= _relative_save_offset
;
13597 ndr
->flags
= _flags_save_string
;
13600 uint32_t _flags_save_string_array
= ndr
->flags
;
13601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13602 if (r
->color_profiles
) {
13603 uint32_t _relative_save_offset
;
13604 _relative_save_offset
= ndr
->offset
;
13605 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13606 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13607 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13608 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13610 ndr
->offset
= _relative_save_offset
;
13612 ndr
->flags
= _flags_save_string_array
;
13615 uint32_t _flags_save_string
= ndr
->flags
;
13616 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13618 uint32_t _relative_save_offset
;
13619 _relative_save_offset
= ndr
->offset
;
13620 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13621 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13622 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13623 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13624 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13625 ndr
->offset
= _relative_save_offset
;
13627 ndr
->flags
= _flags_save_string
;
13630 uint32_t _flags_save_string_array
= ndr
->flags
;
13631 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13632 if (r
->core_driver_dependencies
) {
13633 uint32_t _relative_save_offset
;
13634 _relative_save_offset
= ndr
->offset
;
13635 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13636 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13637 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13638 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13640 ndr
->offset
= _relative_save_offset
;
13642 ndr
->flags
= _flags_save_string_array
;
13645 return NDR_ERR_SUCCESS
;
13648 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13650 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13652 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13653 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13655 if (r
->driver_name
) {
13656 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13659 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13661 if (r
->architecture
) {
13662 ndr_print_string(ndr
, "architecture", r
->architecture
);
13665 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13667 if (r
->driver_path
) {
13668 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13671 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13673 if (r
->data_file
) {
13674 ndr_print_string(ndr
, "data_file", r
->data_file
);
13677 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13679 if (r
->config_file
) {
13680 ndr_print_string(ndr
, "config_file", r
->config_file
);
13683 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13685 if (r
->help_file
) {
13686 ndr_print_string(ndr
, "help_file", r
->help_file
);
13689 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13691 if (r
->monitor_name
) {
13692 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13695 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13697 if (r
->default_datatype
) {
13698 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13701 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13703 if (r
->dependent_files
) {
13704 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13707 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13709 if (r
->previous_names
) {
13710 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13713 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13714 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13715 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13717 if (r
->manufacturer_name
) {
13718 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13721 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13723 if (r
->manufacturer_url
) {
13724 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13727 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13729 if (r
->hardware_id
) {
13730 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13733 ndr_print_ptr(ndr
, "provider", r
->provider
);
13736 ndr_print_string(ndr
, "provider", r
->provider
);
13739 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13741 if (r
->print_processor
) {
13742 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13745 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13747 if (r
->vendor_setup
) {
13748 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13751 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13753 if (r
->color_profiles
) {
13754 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13757 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13760 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13763 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13764 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13766 if (r
->core_driver_dependencies
) {
13767 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13770 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13771 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13775 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13777 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13780 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13783 return NDR_ERR_SUCCESS
;
13786 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13791 return NDR_ERR_SUCCESS
;
13794 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13796 const char *val
= NULL
;
13799 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13800 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13801 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13802 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13803 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13805 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13808 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13810 if (ndr_flags
& NDR_SCALARS
) {
13811 NDR_CHECK(ndr_push_align(ndr
, 4));
13813 uint32_t _flags_save_string
= ndr
->flags
;
13814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13815 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13816 ndr
->flags
= _flags_save_string
;
13818 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13821 if (ndr_flags
& NDR_BUFFERS
) {
13823 uint32_t _flags_save_string
= ndr
->flags
;
13824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13825 if (r
->file_name
) {
13826 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->file_name
));
13827 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13828 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->file_name
));
13830 ndr
->flags
= _flags_save_string
;
13833 return NDR_ERR_SUCCESS
;
13836 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13838 uint32_t _ptr_file_name
;
13839 TALLOC_CTX
*_mem_save_file_name_0
;
13840 if (ndr_flags
& NDR_SCALARS
) {
13841 NDR_CHECK(ndr_pull_align(ndr
, 4));
13843 uint32_t _flags_save_string
= ndr
->flags
;
13844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13846 if (_ptr_file_name
) {
13847 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13848 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13850 r
->file_name
= NULL
;
13852 ndr
->flags
= _flags_save_string
;
13854 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13857 if (ndr_flags
& NDR_BUFFERS
) {
13859 uint32_t _flags_save_string
= ndr
->flags
;
13860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13861 if (r
->file_name
) {
13862 uint32_t _relative_save_offset
;
13863 _relative_save_offset
= ndr
->offset
;
13864 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13865 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13866 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13867 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13869 ndr
->offset
= _relative_save_offset
;
13871 ndr
->flags
= _flags_save_string
;
13874 return NDR_ERR_SUCCESS
;
13877 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13879 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13881 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13883 if (r
->file_name
) {
13884 ndr_print_string(ndr
, "file_name", r
->file_name
);
13887 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13888 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13892 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13894 uint32_t cntr_file_info_1
;
13895 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13897 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13898 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13900 if (r
->driver_name
) {
13901 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13904 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13906 if (r
->architecture
) {
13907 ndr_print_string(ndr
, "architecture", r
->architecture
);
13910 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13912 if (r
->file_info
) {
13913 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13915 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13917 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13918 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13925 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13926 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13928 if (r
->monitor_name
) {
13929 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13932 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13934 if (r
->default_datatype
) {
13935 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13938 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13940 if (r
->previous_names
) {
13941 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13944 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13945 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13946 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13948 if (r
->manufacturer_name
) {
13949 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13952 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13954 if (r
->manufacturer_url
) {
13955 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13958 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13960 if (r
->hardware_id
) {
13961 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13964 ndr_print_ptr(ndr
, "provider", r
->provider
);
13967 ndr_print_string(ndr
, "provider", r
->provider
);
13973 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13975 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
13978 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
13980 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13982 uint32_t _flags_save_UNION
= ndr
->flags
;
13983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
13984 if (ndr_flags
& NDR_SCALARS
) {
13985 int level
= ndr_push_get_switch_value(ndr
, r
);
13988 NDR_CHECK(ndr_push_align(ndr
, 4));
13989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13990 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13994 NDR_CHECK(ndr_push_align(ndr
, 4));
13995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13996 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14000 NDR_CHECK(ndr_push_align(ndr
, 4));
14001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14002 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14006 NDR_CHECK(ndr_push_align(ndr
, 4));
14007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14008 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14012 NDR_CHECK(ndr_push_align(ndr
, 4));
14013 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14014 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14018 NDR_CHECK(ndr_push_align(ndr
, 8));
14019 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14020 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14024 NDR_CHECK(ndr_push_align(ndr
, 8));
14025 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14026 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14030 NDR_CHECK(ndr_push_align(ndr
, 8));
14031 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14032 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14040 if (ndr_flags
& NDR_BUFFERS
) {
14041 int level
= ndr_push_get_switch_value(ndr
, r
);
14042 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14045 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14049 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14053 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14057 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14061 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14065 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14069 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14073 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14081 ndr
->flags
= _flags_save_UNION
;
14083 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14084 return NDR_ERR_SUCCESS
;
14087 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
14089 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14092 uint32_t _flags_save_UNION
= ndr
->flags
;
14093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14094 level
= ndr_pull_get_switch_value(ndr
, r
);
14095 if (ndr_flags
& NDR_SCALARS
) {
14098 NDR_CHECK(ndr_pull_align(ndr
, 4));
14099 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14100 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14104 NDR_CHECK(ndr_pull_align(ndr
, 4));
14105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14106 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14110 NDR_CHECK(ndr_pull_align(ndr
, 4));
14111 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14112 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14116 NDR_CHECK(ndr_pull_align(ndr
, 4));
14117 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14118 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14122 NDR_CHECK(ndr_pull_align(ndr
, 4));
14123 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14124 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14128 NDR_CHECK(ndr_pull_align(ndr
, 8));
14129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14130 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14134 NDR_CHECK(ndr_pull_align(ndr
, 8));
14135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14136 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14140 NDR_CHECK(ndr_pull_align(ndr
, 8));
14141 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14142 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14150 if (ndr_flags
& NDR_BUFFERS
) {
14151 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14154 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14158 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14162 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14166 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14170 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14174 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14178 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14182 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14190 ndr
->flags
= _flags_save_UNION
;
14192 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14193 return NDR_ERR_SUCCESS
;
14196 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
14200 uint32_t _flags_save_UNION
= ndr
->flags
;
14201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14202 level
= ndr_print_get_switch_value(ndr
, r
);
14203 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
14206 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
14210 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
14214 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
14218 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
14222 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
14226 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
14230 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
14234 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
14241 ndr
->flags
= _flags_save_UNION
;
14245 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14247 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
14248 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
14251 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
14253 if (ndr_flags
& NDR_SCALARS
) {
14254 NDR_CHECK(ndr_push_align(ndr
, 4));
14256 uint32_t _flags_save_string
= ndr
->flags
;
14257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14258 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14259 ndr
->flags
= _flags_save_string
;
14262 if (ndr_flags
& NDR_BUFFERS
) {
14264 return NDR_ERR_SUCCESS
;
14267 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
14269 if (ndr_flags
& NDR_SCALARS
) {
14270 NDR_CHECK(ndr_pull_align(ndr
, 4));
14272 uint32_t _flags_save_string
= ndr
->flags
;
14273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14274 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14275 ndr
->flags
= _flags_save_string
;
14278 if (ndr_flags
& NDR_BUFFERS
) {
14280 return NDR_ERR_SUCCESS
;
14283 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
14285 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
14287 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14291 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14293 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
14296 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
14298 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14300 uint32_t _flags_save_UNION
= ndr
->flags
;
14301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14302 if (ndr_flags
& NDR_SCALARS
) {
14303 int level
= ndr_push_get_switch_value(ndr
, r
);
14306 NDR_CHECK(ndr_push_align(ndr
, 4));
14307 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14308 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14312 NDR_CHECK(ndr_push_align(ndr
, 4));
14313 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14314 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14319 if (ndr_flags
& NDR_BUFFERS
) {
14320 int level
= ndr_push_get_switch_value(ndr
, r
);
14321 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14331 ndr
->flags
= _flags_save_UNION
;
14333 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14334 return NDR_ERR_SUCCESS
;
14337 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
14339 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14342 uint32_t _flags_save_UNION
= ndr
->flags
;
14343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14344 level
= ndr_pull_get_switch_value(ndr
, r
);
14345 if (ndr_flags
& NDR_SCALARS
) {
14348 NDR_CHECK(ndr_pull_align(ndr
, 4));
14349 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14350 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14354 NDR_CHECK(ndr_pull_align(ndr
, 4));
14355 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14356 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14361 if (ndr_flags
& NDR_BUFFERS
) {
14362 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14372 ndr
->flags
= _flags_save_UNION
;
14374 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14375 return NDR_ERR_SUCCESS
;
14378 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
14382 uint32_t _flags_save_UNION
= ndr
->flags
;
14383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14384 level
= ndr_print_get_switch_value(ndr
, r
);
14385 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
14388 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14392 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14396 ndr
->flags
= _flags_save_UNION
;
14400 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14402 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
14403 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
14406 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
14408 if (ndr_flags
& NDR_SCALARS
) {
14409 NDR_CHECK(ndr_push_align(ndr
, 4));
14411 uint32_t _flags_save_string
= ndr
->flags
;
14412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14413 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
14414 ndr
->flags
= _flags_save_string
;
14417 if (ndr_flags
& NDR_BUFFERS
) {
14419 uint32_t _flags_save_string
= ndr
->flags
;
14420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14421 if (r
->print_processor_name
) {
14422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor_name
));
14423 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
14424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor_name
));
14426 ndr
->flags
= _flags_save_string
;
14429 return NDR_ERR_SUCCESS
;
14432 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
14434 uint32_t _ptr_print_processor_name
;
14435 TALLOC_CTX
*_mem_save_print_processor_name_0
;
14436 if (ndr_flags
& NDR_SCALARS
) {
14437 NDR_CHECK(ndr_pull_align(ndr
, 4));
14439 uint32_t _flags_save_string
= ndr
->flags
;
14440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14441 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
14442 if (_ptr_print_processor_name
) {
14443 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
14444 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
14446 r
->print_processor_name
= NULL
;
14448 ndr
->flags
= _flags_save_string
;
14451 if (ndr_flags
& NDR_BUFFERS
) {
14453 uint32_t _flags_save_string
= ndr
->flags
;
14454 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14455 if (r
->print_processor_name
) {
14456 uint32_t _relative_save_offset
;
14457 _relative_save_offset
= ndr
->offset
;
14458 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
14459 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14460 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
14461 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
14462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
14463 ndr
->offset
= _relative_save_offset
;
14465 ndr
->flags
= _flags_save_string
;
14468 return NDR_ERR_SUCCESS
;
14471 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
14473 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
14475 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
14477 if (r
->print_processor_name
) {
14478 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
14484 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14486 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
14489 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
14491 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14493 uint32_t _flags_save_UNION
= ndr
->flags
;
14494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14495 if (ndr_flags
& NDR_SCALARS
) {
14496 int level
= ndr_push_get_switch_value(ndr
, r
);
14499 NDR_CHECK(ndr_push_align(ndr
, 4));
14500 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14501 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14509 if (ndr_flags
& NDR_BUFFERS
) {
14510 int level
= ndr_push_get_switch_value(ndr
, r
);
14511 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14514 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14522 ndr
->flags
= _flags_save_UNION
;
14524 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14525 return NDR_ERR_SUCCESS
;
14528 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
14530 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14533 uint32_t _flags_save_UNION
= ndr
->flags
;
14534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14535 level
= ndr_pull_get_switch_value(ndr
, r
);
14536 if (ndr_flags
& NDR_SCALARS
) {
14539 NDR_CHECK(ndr_pull_align(ndr
, 4));
14540 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14541 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14549 if (ndr_flags
& NDR_BUFFERS
) {
14550 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14553 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14561 ndr
->flags
= _flags_save_UNION
;
14563 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14564 return NDR_ERR_SUCCESS
;
14567 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14571 uint32_t _flags_save_UNION
= ndr
->flags
;
14572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14573 level
= ndr_print_get_switch_value(ndr
, r
);
14574 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14577 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14584 ndr
->flags
= _flags_save_UNION
;
14588 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14590 if (ndr_flags
& NDR_SCALARS
) {
14591 NDR_CHECK(ndr_push_align(ndr
, 4));
14593 uint32_t _flags_save_string
= ndr
->flags
;
14594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14595 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14596 ndr
->flags
= _flags_save_string
;
14599 if (ndr_flags
& NDR_BUFFERS
) {
14601 return NDR_ERR_SUCCESS
;
14604 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14606 if (ndr_flags
& NDR_SCALARS
) {
14607 NDR_CHECK(ndr_pull_align(ndr
, 4));
14609 uint32_t _flags_save_string
= ndr
->flags
;
14610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14611 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14612 ndr
->flags
= _flags_save_string
;
14615 if (ndr_flags
& NDR_BUFFERS
) {
14617 return NDR_ERR_SUCCESS
;
14620 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14622 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14624 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14628 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14630 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14633 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14635 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14637 uint32_t _flags_save_UNION
= ndr
->flags
;
14638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14639 if (ndr_flags
& NDR_SCALARS
) {
14640 int level
= ndr_push_get_switch_value(ndr
, r
);
14643 NDR_CHECK(ndr_push_align(ndr
, 4));
14644 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14645 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14649 NDR_CHECK(ndr_push_align(ndr
, 4));
14650 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14651 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14656 if (ndr_flags
& NDR_BUFFERS
) {
14657 int level
= ndr_push_get_switch_value(ndr
, r
);
14658 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14668 ndr
->flags
= _flags_save_UNION
;
14670 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14671 return NDR_ERR_SUCCESS
;
14674 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14676 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14679 uint32_t _flags_save_UNION
= ndr
->flags
;
14680 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14681 level
= ndr_pull_get_switch_value(ndr
, r
);
14682 if (ndr_flags
& NDR_SCALARS
) {
14685 NDR_CHECK(ndr_pull_align(ndr
, 4));
14686 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14687 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14691 NDR_CHECK(ndr_pull_align(ndr
, 4));
14692 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14693 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14698 if (ndr_flags
& NDR_BUFFERS
) {
14699 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14709 ndr
->flags
= _flags_save_UNION
;
14711 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14712 return NDR_ERR_SUCCESS
;
14715 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14719 uint32_t _flags_save_UNION
= ndr
->flags
;
14720 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14721 level
= ndr_print_get_switch_value(ndr
, r
);
14722 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14725 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14729 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14733 ndr
->flags
= _flags_save_UNION
;
14737 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14739 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
14740 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14743 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14745 if (ndr_flags
& NDR_SCALARS
) {
14746 NDR_CHECK(ndr_push_align(ndr
, 4));
14747 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14751 if (ndr_flags
& NDR_BUFFERS
) {
14752 if (r
->document_name
) {
14753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14756 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14758 if (r
->output_file
) {
14759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14762 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14768 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14771 return NDR_ERR_SUCCESS
;
14774 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14776 uint32_t _ptr_document_name
;
14777 uint32_t size_document_name_1
= 0;
14778 uint32_t length_document_name_1
= 0;
14779 TALLOC_CTX
*_mem_save_document_name_0
;
14780 uint32_t _ptr_output_file
;
14781 uint32_t size_output_file_1
= 0;
14782 uint32_t length_output_file_1
= 0;
14783 TALLOC_CTX
*_mem_save_output_file_0
;
14784 uint32_t _ptr_datatype
;
14785 uint32_t size_datatype_1
= 0;
14786 uint32_t length_datatype_1
= 0;
14787 TALLOC_CTX
*_mem_save_datatype_0
;
14788 if (ndr_flags
& NDR_SCALARS
) {
14789 NDR_CHECK(ndr_pull_align(ndr
, 4));
14790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14791 if (_ptr_document_name
) {
14792 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14794 r
->document_name
= NULL
;
14796 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14797 if (_ptr_output_file
) {
14798 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14800 r
->output_file
= NULL
;
14802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14803 if (_ptr_datatype
) {
14804 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14806 r
->datatype
= NULL
;
14809 if (ndr_flags
& NDR_BUFFERS
) {
14810 if (r
->document_name
) {
14811 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14812 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14813 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14814 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14815 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
14816 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
14817 if (length_document_name_1
> size_document_name_1
) {
14818 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
14820 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
14821 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
14822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14824 if (r
->output_file
) {
14825 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14826 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14827 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14828 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14829 size_output_file_1
= ndr_get_array_size(ndr
, &r
->output_file
);
14830 length_output_file_1
= ndr_get_array_length(ndr
, &r
->output_file
);
14831 if (length_output_file_1
> size_output_file_1
) {
14832 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_output_file_1
, length_output_file_1
);
14834 NDR_CHECK(ndr_check_string_terminator(ndr
, length_output_file_1
, sizeof(uint16_t)));
14835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, length_output_file_1
, sizeof(uint16_t), CH_UTF16
));
14836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14839 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14840 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14843 size_datatype_1
= ndr_get_array_size(ndr
, &r
->datatype
);
14844 length_datatype_1
= ndr_get_array_length(ndr
, &r
->datatype
);
14845 if (length_datatype_1
> size_datatype_1
) {
14846 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
14848 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
14849 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
14850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14853 return NDR_ERR_SUCCESS
;
14856 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14858 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14860 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14862 if (r
->document_name
) {
14863 ndr_print_string(ndr
, "document_name", r
->document_name
);
14866 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14868 if (r
->output_file
) {
14869 ndr_print_string(ndr
, "output_file", r
->output_file
);
14872 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14875 ndr_print_string(ndr
, "datatype", r
->datatype
);
14881 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14883 if (ndr_flags
& NDR_SCALARS
) {
14884 int level
= ndr_push_get_switch_value(ndr
, r
);
14885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14888 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14902 if (ndr_flags
& NDR_BUFFERS
) {
14903 int level
= ndr_push_get_switch_value(ndr
, r
);
14907 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14922 return NDR_ERR_SUCCESS
;
14925 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14929 TALLOC_CTX
*_mem_save_info1_0
;
14930 uint32_t _ptr_info1
;
14931 level
= ndr_pull_get_switch_value(ndr
, r
);
14932 if (ndr_flags
& NDR_SCALARS
) {
14933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14934 if (_level
!= level
) {
14935 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14939 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14941 NDR_PULL_ALLOC(ndr
, r
->info1
);
14958 if (ndr_flags
& NDR_BUFFERS
) {
14962 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14963 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14964 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14965 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14980 return NDR_ERR_SUCCESS
;
14983 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14986 level
= ndr_print_get_switch_value(ndr
, r
);
14987 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
14990 ndr_print_ptr(ndr
, "info1", r
->info1
);
14993 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
15010 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
15012 if (ndr_flags
& NDR_SCALARS
) {
15013 NDR_CHECK(ndr_push_align(ndr
, 4));
15014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15020 uint32_t _flags_save_string
= ndr
->flags
;
15021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15023 struct ndr_push
*_ndr_extra_string
;
15024 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15025 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15026 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15028 ndr
->flags
= _flags_save_string
;
15031 if (ndr_flags
& NDR_BUFFERS
) {
15033 return NDR_ERR_SUCCESS
;
15036 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
15038 if (ndr_flags
& NDR_SCALARS
) {
15039 NDR_CHECK(ndr_pull_align(ndr
, 4));
15040 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15043 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
15046 uint32_t _flags_save_string
= ndr
->flags
;
15047 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15049 struct ndr_pull
*_ndr_extra_string
;
15050 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15051 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15052 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15054 ndr
->flags
= _flags_save_string
;
15057 if (ndr_flags
& NDR_BUFFERS
) {
15059 return NDR_ERR_SUCCESS
;
15062 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
15064 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
15066 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
);
15067 ndr_print_uint32(ndr
, "major", r
->major
);
15068 ndr_print_uint32(ndr
, "minor", r
->minor
);
15069 ndr_print_uint32(ndr
, "build", r
->build
);
15070 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
15071 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15075 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15077 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
15080 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
15082 if (ndr_flags
& NDR_SCALARS
) {
15083 NDR_CHECK(ndr_push_align(ndr
, 4));
15084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15090 uint32_t _flags_save_string
= ndr
->flags
;
15091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15093 struct ndr_push
*_ndr_extra_string
;
15094 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15095 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15096 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15098 ndr
->flags
= _flags_save_string
;
15100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
15101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
15103 if (ndr_flags
& NDR_BUFFERS
) {
15105 return NDR_ERR_SUCCESS
;
15108 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
15110 if (ndr_flags
& NDR_SCALARS
) {
15111 NDR_CHECK(ndr_pull_align(ndr
, 4));
15112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15113 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15114 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
15118 uint32_t _flags_save_string
= ndr
->flags
;
15119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15121 struct ndr_pull
*_ndr_extra_string
;
15122 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15123 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15124 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15126 ndr
->flags
= _flags_save_string
;
15128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
15129 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
15131 if (ndr_flags
& NDR_BUFFERS
) {
15133 return NDR_ERR_SUCCESS
;
15136 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
15138 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
15140 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
);
15141 ndr_print_uint32(ndr
, "major", r
->major
);
15142 ndr_print_uint32(ndr
, "minor", r
->minor
);
15143 ndr_print_uint32(ndr
, "build", r
->build
);
15144 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
15145 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15146 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
15147 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
15151 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15153 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
15156 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
15158 if (ndr_flags
& NDR_SCALARS
) {
15159 int level
= ndr_push_get_switch_value(ndr
, r
);
15166 uint32_t _flags_save_string
= ndr
->flags
;
15167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15168 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
15169 ndr
->flags
= _flags_save_string
;
15175 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15176 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15177 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
15178 ndr
->flags
= _flags_save_DATA_BLOB
;
15183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
15186 case REG_MULTI_SZ
: {
15188 uint32_t _flags_save_string_array
= ndr
->flags
;
15189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15190 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
15191 ndr
->flags
= _flags_save_string_array
;
15197 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15198 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15199 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
15200 ndr
->flags
= _flags_save_DATA_BLOB
;
15206 if (ndr_flags
& NDR_BUFFERS
) {
15207 int level
= ndr_push_get_switch_value(ndr
, r
);
15229 return NDR_ERR_SUCCESS
;
15232 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
15235 level
= ndr_pull_get_switch_value(ndr
, r
);
15236 if (ndr_flags
& NDR_SCALARS
) {
15243 uint32_t _flags_save_string
= ndr
->flags
;
15244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15245 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
15246 ndr
->flags
= _flags_save_string
;
15252 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15254 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
15255 ndr
->flags
= _flags_save_DATA_BLOB
;
15260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
15263 case REG_MULTI_SZ
: {
15265 uint32_t _flags_save_string_array
= ndr
->flags
;
15266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15267 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
15268 ndr
->flags
= _flags_save_string_array
;
15274 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15276 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
15277 ndr
->flags
= _flags_save_DATA_BLOB
;
15283 if (ndr_flags
& NDR_BUFFERS
) {
15305 return NDR_ERR_SUCCESS
;
15308 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
15311 level
= ndr_print_get_switch_value(ndr
, r
);
15312 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
15318 ndr_print_string(ndr
, "string", r
->string
);
15322 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
15326 ndr_print_uint32(ndr
, "value", r
->value
);
15330 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
15334 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
15340 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15342 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
15345 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
15347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15348 return NDR_ERR_SUCCESS
;
15351 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
15354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15356 return NDR_ERR_SUCCESS
;
15359 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
15361 const char *val
= NULL
;
15364 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
15365 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
15366 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
15368 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15371 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
15373 if (ndr_flags
& NDR_SCALARS
) {
15374 NDR_CHECK(ndr_push_align(ndr
, 4));
15375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
15376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
15378 if (ndr_flags
& NDR_BUFFERS
) {
15380 return NDR_ERR_SUCCESS
;
15383 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
15385 if (ndr_flags
& NDR_SCALARS
) {
15386 NDR_CHECK(ndr_pull_align(ndr
, 4));
15387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
15388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
15390 if (ndr_flags
& NDR_BUFFERS
) {
15392 return NDR_ERR_SUCCESS
;
15395 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
15397 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
15399 ndr_print_uint32(ndr
, "width", r
->width
);
15400 ndr_print_uint32(ndr
, "height", r
->height
);
15404 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
15406 if (ndr_flags
& NDR_SCALARS
) {
15407 NDR_CHECK(ndr_push_align(ndr
, 4));
15408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
15409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
15410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
15411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
15413 if (ndr_flags
& NDR_BUFFERS
) {
15415 return NDR_ERR_SUCCESS
;
15418 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
15420 if (ndr_flags
& NDR_SCALARS
) {
15421 NDR_CHECK(ndr_pull_align(ndr
, 4));
15422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
15423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
15424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
15425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
15427 if (ndr_flags
& NDR_BUFFERS
) {
15429 return NDR_ERR_SUCCESS
;
15432 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
15434 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
15436 ndr_print_uint32(ndr
, "left", r
->left
);
15437 ndr_print_uint32(ndr
, "top", r
->top
);
15438 ndr_print_uint32(ndr
, "right", r
->right
);
15439 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
15443 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
15445 if (ndr_flags
& NDR_SCALARS
) {
15446 NDR_CHECK(ndr_push_align(ndr
, 4));
15447 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15449 uint32_t _flags_save_string
= ndr
->flags
;
15450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15451 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15452 ndr
->flags
= _flags_save_string
;
15454 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15455 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15457 if (ndr_flags
& NDR_BUFFERS
) {
15459 uint32_t _flags_save_string
= ndr
->flags
;
15460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15461 if (r
->form_name
) {
15462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
15463 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
15466 ndr
->flags
= _flags_save_string
;
15469 return NDR_ERR_SUCCESS
;
15472 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
15474 uint32_t _ptr_form_name
;
15475 TALLOC_CTX
*_mem_save_form_name_0
;
15476 if (ndr_flags
& NDR_SCALARS
) {
15477 NDR_CHECK(ndr_pull_align(ndr
, 4));
15478 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15480 uint32_t _flags_save_string
= ndr
->flags
;
15481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15482 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15483 if (_ptr_form_name
) {
15484 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15485 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15487 r
->form_name
= NULL
;
15489 ndr
->flags
= _flags_save_string
;
15491 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15492 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15494 if (ndr_flags
& NDR_BUFFERS
) {
15496 uint32_t _flags_save_string
= ndr
->flags
;
15497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15498 if (r
->form_name
) {
15499 uint32_t _relative_save_offset
;
15500 _relative_save_offset
= ndr
->offset
;
15501 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15502 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15503 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15504 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15506 ndr
->offset
= _relative_save_offset
;
15508 ndr
->flags
= _flags_save_string
;
15511 return NDR_ERR_SUCCESS
;
15514 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
15516 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
15518 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15519 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15521 if (r
->form_name
) {
15522 ndr_print_string(ndr
, "form_name", r
->form_name
);
15525 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15526 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15530 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15532 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
15535 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15538 return NDR_ERR_SUCCESS
;
15541 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15546 return NDR_ERR_SUCCESS
;
15549 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15551 ndr_print_uint32(ndr
, name
, r
);
15553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
15554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
15555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
15559 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
15561 if (ndr_flags
& NDR_SCALARS
) {
15562 NDR_CHECK(ndr_push_align(ndr
, 4));
15563 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15565 uint32_t _flags_save_string
= ndr
->flags
;
15566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15567 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15568 ndr
->flags
= _flags_save_string
;
15570 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15571 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15573 uint32_t _flags_save_string
= ndr
->flags
;
15574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15575 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
15576 ndr
->flags
= _flags_save_string
;
15578 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15580 uint32_t _flags_save_string
= ndr
->flags
;
15581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15582 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
15583 ndr
->flags
= _flags_save_string
;
15585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15587 uint32_t _flags_save_string
= ndr
->flags
;
15588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
15590 ndr
->flags
= _flags_save_string
;
15592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15594 if (ndr_flags
& NDR_BUFFERS
) {
15596 uint32_t _flags_save_string
= ndr
->flags
;
15597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15598 if (r
->form_name
) {
15599 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
15600 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15601 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
15603 ndr
->flags
= _flags_save_string
;
15606 uint32_t _flags_save_string
= ndr
->flags
;
15607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->keyword
));
15610 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->keyword
));
15613 ndr
->flags
= _flags_save_string
;
15616 uint32_t _flags_save_string
= ndr
->flags
;
15617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->mui_dll
));
15620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->mui_dll
));
15623 ndr
->flags
= _flags_save_string
;
15626 uint32_t _flags_save_string
= ndr
->flags
;
15627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15628 if (r
->display_name
) {
15629 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->display_name
));
15630 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15631 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->display_name
));
15633 ndr
->flags
= _flags_save_string
;
15636 return NDR_ERR_SUCCESS
;
15639 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15641 uint32_t _ptr_form_name
;
15642 TALLOC_CTX
*_mem_save_form_name_0
;
15643 uint32_t _ptr_keyword
;
15644 TALLOC_CTX
*_mem_save_keyword_0
;
15645 uint32_t _ptr_mui_dll
;
15646 TALLOC_CTX
*_mem_save_mui_dll_0
;
15647 uint32_t _ptr_display_name
;
15648 TALLOC_CTX
*_mem_save_display_name_0
;
15649 if (ndr_flags
& NDR_SCALARS
) {
15650 NDR_CHECK(ndr_pull_align(ndr
, 4));
15651 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15653 uint32_t _flags_save_string
= ndr
->flags
;
15654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15656 if (_ptr_form_name
) {
15657 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15658 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15660 r
->form_name
= NULL
;
15662 ndr
->flags
= _flags_save_string
;
15664 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15665 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15667 uint32_t _flags_save_string
= ndr
->flags
;
15668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15670 if (_ptr_keyword
) {
15671 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15672 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15676 ndr
->flags
= _flags_save_string
;
15678 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15680 uint32_t _flags_save_string
= ndr
->flags
;
15681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15682 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15683 if (_ptr_mui_dll
) {
15684 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15685 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15689 ndr
->flags
= _flags_save_string
;
15691 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15693 uint32_t _flags_save_string
= ndr
->flags
;
15694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15696 if (_ptr_display_name
) {
15697 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15698 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15700 r
->display_name
= NULL
;
15702 ndr
->flags
= _flags_save_string
;
15704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15706 if (ndr_flags
& NDR_BUFFERS
) {
15708 uint32_t _flags_save_string
= ndr
->flags
;
15709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15710 if (r
->form_name
) {
15711 uint32_t _relative_save_offset
;
15712 _relative_save_offset
= ndr
->offset
;
15713 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15714 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15715 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15716 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15718 ndr
->offset
= _relative_save_offset
;
15720 ndr
->flags
= _flags_save_string
;
15723 uint32_t _flags_save_string
= ndr
->flags
;
15724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15726 uint32_t _relative_save_offset
;
15727 _relative_save_offset
= ndr
->offset
;
15728 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15729 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15730 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15731 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15733 ndr
->offset
= _relative_save_offset
;
15735 ndr
->flags
= _flags_save_string
;
15738 uint32_t _flags_save_string
= ndr
->flags
;
15739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15741 uint32_t _relative_save_offset
;
15742 _relative_save_offset
= ndr
->offset
;
15743 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15744 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15745 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15746 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15748 ndr
->offset
= _relative_save_offset
;
15750 ndr
->flags
= _flags_save_string
;
15753 uint32_t _flags_save_string
= ndr
->flags
;
15754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15755 if (r
->display_name
) {
15756 uint32_t _relative_save_offset
;
15757 _relative_save_offset
= ndr
->offset
;
15758 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15759 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15760 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15763 ndr
->offset
= _relative_save_offset
;
15765 ndr
->flags
= _flags_save_string
;
15768 return NDR_ERR_SUCCESS
;
15771 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15773 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15775 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15776 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15778 if (r
->form_name
) {
15779 ndr_print_string(ndr
, "form_name", r
->form_name
);
15782 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15783 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15784 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15787 ndr_print_string(ndr
, "keyword", r
->keyword
);
15790 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15791 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15794 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15797 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15798 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15800 if (r
->display_name
) {
15801 ndr_print_string(ndr
, "display_name", r
->display_name
);
15804 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15808 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15810 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15813 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15815 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15817 uint32_t _flags_save_UNION
= ndr
->flags
;
15818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15819 if (ndr_flags
& NDR_SCALARS
) {
15820 int level
= ndr_push_get_switch_value(ndr
, r
);
15823 NDR_CHECK(ndr_push_align(ndr
, 4));
15824 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15825 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15829 NDR_CHECK(ndr_push_align(ndr
, 4));
15830 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15831 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15839 if (ndr_flags
& NDR_BUFFERS
) {
15840 int level
= ndr_push_get_switch_value(ndr
, r
);
15841 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15844 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15848 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15856 ndr
->flags
= _flags_save_UNION
;
15858 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15859 return NDR_ERR_SUCCESS
;
15862 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15864 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15867 uint32_t _flags_save_UNION
= ndr
->flags
;
15868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15869 level
= ndr_pull_get_switch_value(ndr
, r
);
15870 if (ndr_flags
& NDR_SCALARS
) {
15873 NDR_CHECK(ndr_pull_align(ndr
, 4));
15874 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15875 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15879 NDR_CHECK(ndr_pull_align(ndr
, 4));
15880 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15881 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15889 if (ndr_flags
& NDR_BUFFERS
) {
15890 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15893 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15897 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15905 ndr
->flags
= _flags_save_UNION
;
15907 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15908 return NDR_ERR_SUCCESS
;
15911 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15915 uint32_t _flags_save_UNION
= ndr
->flags
;
15916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15917 level
= ndr_print_get_switch_value(ndr
, r
);
15918 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15921 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15925 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15932 ndr
->flags
= _flags_save_UNION
;
15936 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15938 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15939 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15942 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15944 if (ndr_flags
& NDR_SCALARS
) {
15945 NDR_CHECK(ndr_push_align(ndr
, 4));
15946 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15947 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15948 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15949 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15951 if (ndr_flags
& NDR_BUFFERS
) {
15952 if (r
->form_name
) {
15953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15956 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15959 return NDR_ERR_SUCCESS
;
15962 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15964 uint32_t _ptr_form_name
;
15965 uint32_t size_form_name_1
= 0;
15966 uint32_t length_form_name_1
= 0;
15967 TALLOC_CTX
*_mem_save_form_name_0
;
15968 if (ndr_flags
& NDR_SCALARS
) {
15969 NDR_CHECK(ndr_pull_align(ndr
, 4));
15970 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15972 if (_ptr_form_name
) {
15973 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15975 r
->form_name
= NULL
;
15977 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15978 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15980 if (ndr_flags
& NDR_BUFFERS
) {
15981 if (r
->form_name
) {
15982 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15983 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15984 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15985 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15986 size_form_name_1
= ndr_get_array_size(ndr
, &r
->form_name
);
15987 length_form_name_1
= ndr_get_array_length(ndr
, &r
->form_name
);
15988 if (length_form_name_1
> size_form_name_1
) {
15989 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_1
, length_form_name_1
);
15991 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_1
, sizeof(uint16_t)));
15992 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, length_form_name_1
, sizeof(uint16_t), CH_UTF16
));
15993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15996 return NDR_ERR_SUCCESS
;
15999 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
16001 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
16003 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16004 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16006 if (r
->form_name
) {
16007 ndr_print_string(ndr
, "form_name", r
->form_name
);
16010 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16011 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16015 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
16017 if (ndr_flags
& NDR_SCALARS
) {
16018 NDR_CHECK(ndr_push_align(ndr
, 4));
16019 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16021 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16022 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16023 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
16024 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
16026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16027 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
16028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
16030 if (ndr_flags
& NDR_BUFFERS
) {
16031 if (r
->form_name
) {
16032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16035 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16041 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
16044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16047 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16049 if (r
->display_name
) {
16050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16053 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16056 return NDR_ERR_SUCCESS
;
16059 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
16061 uint32_t _ptr_form_name
;
16062 uint32_t size_form_name_1
= 0;
16063 uint32_t length_form_name_1
= 0;
16064 TALLOC_CTX
*_mem_save_form_name_0
;
16065 uint32_t _ptr_keyword
;
16066 uint32_t size_keyword_1
= 0;
16067 uint32_t length_keyword_1
= 0;
16068 TALLOC_CTX
*_mem_save_keyword_0
;
16069 uint32_t _ptr_mui_dll
;
16070 uint32_t size_mui_dll_1
= 0;
16071 uint32_t length_mui_dll_1
= 0;
16072 TALLOC_CTX
*_mem_save_mui_dll_0
;
16073 uint32_t _ptr_display_name
;
16074 uint32_t size_display_name_1
= 0;
16075 uint32_t length_display_name_1
= 0;
16076 TALLOC_CTX
*_mem_save_display_name_0
;
16077 if (ndr_flags
& NDR_SCALARS
) {
16078 NDR_CHECK(ndr_pull_align(ndr
, 4));
16079 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16080 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16081 if (_ptr_form_name
) {
16082 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16084 r
->form_name
= NULL
;
16086 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16087 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16089 if (_ptr_keyword
) {
16090 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16094 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16096 if (_ptr_mui_dll
) {
16097 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16103 if (_ptr_display_name
) {
16104 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16106 r
->display_name
= NULL
;
16108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
16110 if (ndr_flags
& NDR_BUFFERS
) {
16111 if (r
->form_name
) {
16112 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16113 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16116 size_form_name_1
= ndr_get_array_size(ndr
, &r
->form_name
);
16117 length_form_name_1
= ndr_get_array_length(ndr
, &r
->form_name
);
16118 if (length_form_name_1
> size_form_name_1
) {
16119 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_1
, length_form_name_1
);
16121 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_1
, sizeof(uint16_t)));
16122 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, length_form_name_1
, sizeof(uint16_t), CH_UTF16
));
16123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16126 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16127 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16128 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
16129 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
16130 size_keyword_1
= ndr_get_array_size(ndr
, &r
->keyword
);
16131 length_keyword_1
= ndr_get_array_length(ndr
, &r
->keyword
);
16132 if (length_keyword_1
> size_keyword_1
) {
16133 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_keyword_1
, length_keyword_1
);
16135 NDR_CHECK(ndr_check_string_terminator(ndr
, length_keyword_1
, sizeof(uint8_t)));
16136 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, length_keyword_1
, sizeof(uint8_t), CH_DOS
));
16137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16140 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16141 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
16143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
16144 size_mui_dll_1
= ndr_get_array_size(ndr
, &r
->mui_dll
);
16145 length_mui_dll_1
= ndr_get_array_length(ndr
, &r
->mui_dll
);
16146 if (length_mui_dll_1
> size_mui_dll_1
) {
16147 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_mui_dll_1
, length_mui_dll_1
);
16149 NDR_CHECK(ndr_check_string_terminator(ndr
, length_mui_dll_1
, sizeof(uint16_t)));
16150 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, length_mui_dll_1
, sizeof(uint16_t), CH_UTF16
));
16151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16153 if (r
->display_name
) {
16154 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16155 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16156 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
16157 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
16158 size_display_name_1
= ndr_get_array_size(ndr
, &r
->display_name
);
16159 length_display_name_1
= ndr_get_array_length(ndr
, &r
->display_name
);
16160 if (length_display_name_1
> size_display_name_1
) {
16161 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_display_name_1
, length_display_name_1
);
16163 NDR_CHECK(ndr_check_string_terminator(ndr
, length_display_name_1
, sizeof(uint16_t)));
16164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, length_display_name_1
, sizeof(uint16_t), CH_UTF16
));
16165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16168 return NDR_ERR_SUCCESS
;
16171 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
16173 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
16175 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16176 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16178 if (r
->form_name
) {
16179 ndr_print_string(ndr
, "form_name", r
->form_name
);
16182 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16183 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16184 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16187 ndr_print_string(ndr
, "keyword", r
->keyword
);
16190 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16191 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16194 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16197 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16198 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16200 if (r
->display_name
) {
16201 ndr_print_string(ndr
, "display_name", r
->display_name
);
16204 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
16208 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
16210 if (ndr_flags
& NDR_SCALARS
) {
16211 int level
= ndr_push_get_switch_value(ndr
, r
);
16212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
16215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
16219 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
16223 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16226 if (ndr_flags
& NDR_BUFFERS
) {
16227 int level
= ndr_push_get_switch_value(ndr
, r
);
16231 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16237 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16242 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16245 return NDR_ERR_SUCCESS
;
16248 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
16252 TALLOC_CTX
*_mem_save_info1_0
;
16253 uint32_t _ptr_info1
;
16254 TALLOC_CTX
*_mem_save_info2_0
;
16255 uint32_t _ptr_info2
;
16256 level
= ndr_pull_get_switch_value(ndr
, r
);
16257 if (ndr_flags
& NDR_SCALARS
) {
16258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16259 if (_level
!= level
) {
16260 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
16264 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16266 NDR_PULL_ALLOC(ndr
, r
->info1
);
16273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
16275 NDR_PULL_ALLOC(ndr
, r
->info2
);
16282 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16285 if (ndr_flags
& NDR_BUFFERS
) {
16289 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16290 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16291 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16298 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16299 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
16300 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
16306 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16309 return NDR_ERR_SUCCESS
;
16312 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
16315 level
= ndr_print_get_switch_value(ndr
, r
);
16316 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
16319 ndr_print_ptr(ndr
, "info1", r
->info1
);
16322 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
16328 ndr_print_ptr(ndr
, "info2", r
->info2
);
16331 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
16337 ndr_print_bad_level(ndr
, name
, level
);
16341 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
16343 if (ndr_flags
& NDR_SCALARS
) {
16344 NDR_CHECK(ndr_push_align(ndr
, 4));
16346 uint32_t _flags_save_string
= ndr
->flags
;
16347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16348 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16349 ndr
->flags
= _flags_save_string
;
16352 if (ndr_flags
& NDR_BUFFERS
) {
16354 uint32_t _flags_save_string
= ndr
->flags
;
16355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16356 if (r
->port_name
) {
16357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
16358 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16359 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
16361 ndr
->flags
= _flags_save_string
;
16364 return NDR_ERR_SUCCESS
;
16367 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
16369 uint32_t _ptr_port_name
;
16370 TALLOC_CTX
*_mem_save_port_name_0
;
16371 if (ndr_flags
& NDR_SCALARS
) {
16372 NDR_CHECK(ndr_pull_align(ndr
, 4));
16374 uint32_t _flags_save_string
= ndr
->flags
;
16375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16377 if (_ptr_port_name
) {
16378 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16379 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16381 r
->port_name
= NULL
;
16383 ndr
->flags
= _flags_save_string
;
16386 if (ndr_flags
& NDR_BUFFERS
) {
16388 uint32_t _flags_save_string
= ndr
->flags
;
16389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16390 if (r
->port_name
) {
16391 uint32_t _relative_save_offset
;
16392 _relative_save_offset
= ndr
->offset
;
16393 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16394 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16395 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16396 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16398 ndr
->offset
= _relative_save_offset
;
16400 ndr
->flags
= _flags_save_string
;
16403 return NDR_ERR_SUCCESS
;
16406 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
16408 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
16410 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16412 if (r
->port_name
) {
16413 ndr_print_string(ndr
, "port_name", r
->port_name
);
16419 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16421 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
16424 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16427 return NDR_ERR_SUCCESS
;
16430 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16435 return NDR_ERR_SUCCESS
;
16438 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16440 ndr_print_uint32(ndr
, name
, r
);
16442 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
16443 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
16444 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
16445 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
16449 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
16451 if (ndr_flags
& NDR_SCALARS
) {
16452 NDR_CHECK(ndr_push_align(ndr
, 4));
16454 uint32_t _flags_save_string
= ndr
->flags
;
16455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16456 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16457 ndr
->flags
= _flags_save_string
;
16460 uint32_t _flags_save_string
= ndr
->flags
;
16461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16462 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16463 ndr
->flags
= _flags_save_string
;
16466 uint32_t _flags_save_string
= ndr
->flags
;
16467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16468 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
16469 ndr
->flags
= _flags_save_string
;
16471 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
16472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16474 if (ndr_flags
& NDR_BUFFERS
) {
16476 uint32_t _flags_save_string
= ndr
->flags
;
16477 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16478 if (r
->port_name
) {
16479 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
16480 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16481 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
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 if (r
->monitor_name
) {
16489 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
16490 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16491 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
16493 ndr
->flags
= _flags_save_string
;
16496 uint32_t _flags_save_string
= ndr
->flags
;
16497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16498 if (r
->description
) {
16499 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
16500 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
16501 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
16503 ndr
->flags
= _flags_save_string
;
16506 return NDR_ERR_SUCCESS
;
16509 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
16511 uint32_t _ptr_port_name
;
16512 TALLOC_CTX
*_mem_save_port_name_0
;
16513 uint32_t _ptr_monitor_name
;
16514 TALLOC_CTX
*_mem_save_monitor_name_0
;
16515 uint32_t _ptr_description
;
16516 TALLOC_CTX
*_mem_save_description_0
;
16517 if (ndr_flags
& NDR_SCALARS
) {
16518 NDR_CHECK(ndr_pull_align(ndr
, 4));
16520 uint32_t _flags_save_string
= ndr
->flags
;
16521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16523 if (_ptr_port_name
) {
16524 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16525 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16527 r
->port_name
= NULL
;
16529 ndr
->flags
= _flags_save_string
;
16532 uint32_t _flags_save_string
= ndr
->flags
;
16533 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16535 if (_ptr_monitor_name
) {
16536 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16537 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16539 r
->monitor_name
= NULL
;
16541 ndr
->flags
= _flags_save_string
;
16544 uint32_t _flags_save_string
= ndr
->flags
;
16545 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
16547 if (_ptr_description
) {
16548 NDR_PULL_ALLOC(ndr
, r
->description
);
16549 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
16551 r
->description
= NULL
;
16553 ndr
->flags
= _flags_save_string
;
16555 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
16556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16558 if (ndr_flags
& NDR_BUFFERS
) {
16560 uint32_t _flags_save_string
= ndr
->flags
;
16561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16562 if (r
->port_name
) {
16563 uint32_t _relative_save_offset
;
16564 _relative_save_offset
= ndr
->offset
;
16565 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16566 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16567 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16568 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16570 ndr
->offset
= _relative_save_offset
;
16572 ndr
->flags
= _flags_save_string
;
16575 uint32_t _flags_save_string
= ndr
->flags
;
16576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16577 if (r
->monitor_name
) {
16578 uint32_t _relative_save_offset
;
16579 _relative_save_offset
= ndr
->offset
;
16580 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16581 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16582 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16583 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16585 ndr
->offset
= _relative_save_offset
;
16587 ndr
->flags
= _flags_save_string
;
16590 uint32_t _flags_save_string
= ndr
->flags
;
16591 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16592 if (r
->description
) {
16593 uint32_t _relative_save_offset
;
16594 _relative_save_offset
= ndr
->offset
;
16595 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
16596 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16597 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
16598 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
16599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
16600 ndr
->offset
= _relative_save_offset
;
16602 ndr
->flags
= _flags_save_string
;
16605 return NDR_ERR_SUCCESS
;
16608 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
16610 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
16612 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16614 if (r
->port_name
) {
16615 ndr_print_string(ndr
, "port_name", r
->port_name
);
16618 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16620 if (r
->monitor_name
) {
16621 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16624 ndr_print_ptr(ndr
, "description", r
->description
);
16626 if (r
->description
) {
16627 ndr_print_string(ndr
, "description", r
->description
);
16630 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
16631 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16635 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16637 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
16640 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
16642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16643 return NDR_ERR_SUCCESS
;
16646 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16651 return NDR_ERR_SUCCESS
;
16654 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16656 const char *val
= NULL
;
16659 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16660 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16661 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16662 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16663 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16664 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16665 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16666 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16667 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16668 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16669 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16670 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16671 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16673 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16676 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16679 return NDR_ERR_SUCCESS
;
16682 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16685 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16687 return NDR_ERR_SUCCESS
;
16690 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16692 const char *val
= NULL
;
16695 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16696 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16697 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16699 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16702 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16704 if (ndr_flags
& NDR_SCALARS
) {
16705 NDR_CHECK(ndr_push_align(ndr
, 4));
16706 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16708 uint32_t _flags_save_string
= ndr
->flags
;
16709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16710 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16711 ndr
->flags
= _flags_save_string
;
16713 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16715 if (ndr_flags
& NDR_BUFFERS
) {
16717 uint32_t _flags_save_string
= ndr
->flags
;
16718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16719 if (r
->status_string
) {
16720 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->status_string
));
16721 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16722 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->status_string
));
16724 ndr
->flags
= _flags_save_string
;
16727 return NDR_ERR_SUCCESS
;
16730 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16732 uint32_t _ptr_status_string
;
16733 TALLOC_CTX
*_mem_save_status_string_0
;
16734 if (ndr_flags
& NDR_SCALARS
) {
16735 NDR_CHECK(ndr_pull_align(ndr
, 4));
16736 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16738 uint32_t _flags_save_string
= ndr
->flags
;
16739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16740 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16741 if (_ptr_status_string
) {
16742 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16743 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16745 r
->status_string
= NULL
;
16747 ndr
->flags
= _flags_save_string
;
16749 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16751 if (ndr_flags
& NDR_BUFFERS
) {
16753 uint32_t _flags_save_string
= ndr
->flags
;
16754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16755 if (r
->status_string
) {
16756 uint32_t _relative_save_offset
;
16757 _relative_save_offset
= ndr
->offset
;
16758 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16759 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16760 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16763 ndr
->offset
= _relative_save_offset
;
16765 ndr
->flags
= _flags_save_string
;
16768 return NDR_ERR_SUCCESS
;
16771 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16773 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16775 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16776 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16778 if (r
->status_string
) {
16779 ndr_print_string(ndr
, "status_string", r
->status_string
);
16782 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16786 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16788 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16791 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16793 if (ndr_flags
& NDR_SCALARS
) {
16794 NDR_CHECK(ndr_push_align(ndr
, 4));
16796 uint32_t _flags_save_string
= ndr
->flags
;
16797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16798 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16799 ndr
->flags
= _flags_save_string
;
16801 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
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
->port_name
) {
16808 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
16809 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16810 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
16812 ndr
->flags
= _flags_save_string
;
16815 return NDR_ERR_SUCCESS
;
16818 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16820 uint32_t _ptr_port_name
;
16821 TALLOC_CTX
*_mem_save_port_name_0
;
16822 if (ndr_flags
& NDR_SCALARS
) {
16823 NDR_CHECK(ndr_pull_align(ndr
, 4));
16825 uint32_t _flags_save_string
= ndr
->flags
;
16826 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16828 if (_ptr_port_name
) {
16829 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16830 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16832 r
->port_name
= NULL
;
16834 ndr
->flags
= _flags_save_string
;
16836 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16838 if (ndr_flags
& NDR_BUFFERS
) {
16840 uint32_t _flags_save_string
= ndr
->flags
;
16841 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16842 if (r
->port_name
) {
16843 uint32_t _relative_save_offset
;
16844 _relative_save_offset
= ndr
->offset
;
16845 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16846 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16847 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16848 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16850 ndr
->offset
= _relative_save_offset
;
16852 ndr
->flags
= _flags_save_string
;
16855 return NDR_ERR_SUCCESS
;
16858 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16860 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16862 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16864 if (r
->port_name
) {
16865 ndr_print_string(ndr
, "port_name", r
->port_name
);
16868 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16872 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16874 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16877 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16879 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16881 uint32_t _flags_save_UNION
= ndr
->flags
;
16882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16883 if (ndr_flags
& NDR_SCALARS
) {
16884 int level
= ndr_push_get_switch_value(ndr
, r
);
16887 NDR_CHECK(ndr_push_align(ndr
, 4));
16888 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16889 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16893 NDR_CHECK(ndr_push_align(ndr
, 4));
16894 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16895 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16899 NDR_CHECK(ndr_push_align(ndr
, 4));
16900 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16901 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16905 NDR_CHECK(ndr_push_align(ndr
, 4));
16906 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16907 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16915 if (ndr_flags
& NDR_BUFFERS
) {
16916 int level
= ndr_push_get_switch_value(ndr
, r
);
16917 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16920 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16924 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16928 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16932 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16940 ndr
->flags
= _flags_save_UNION
;
16942 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16943 return NDR_ERR_SUCCESS
;
16946 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16948 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16951 uint32_t _flags_save_UNION
= ndr
->flags
;
16952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16953 level
= ndr_pull_get_switch_value(ndr
, r
);
16954 if (ndr_flags
& NDR_SCALARS
) {
16957 NDR_CHECK(ndr_pull_align(ndr
, 4));
16958 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16959 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16963 NDR_CHECK(ndr_pull_align(ndr
, 4));
16964 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16965 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16969 NDR_CHECK(ndr_pull_align(ndr
, 4));
16970 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16971 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16975 NDR_CHECK(ndr_pull_align(ndr
, 4));
16976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16977 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16985 if (ndr_flags
& NDR_BUFFERS
) {
16986 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16989 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16993 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16997 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17001 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17009 ndr
->flags
= _flags_save_UNION
;
17011 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17012 return NDR_ERR_SUCCESS
;
17015 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
17019 uint32_t _flags_save_UNION
= ndr
->flags
;
17020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17021 level
= ndr_print_get_switch_value(ndr
, r
);
17022 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
17025 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
17029 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
17033 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
17037 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
17044 ndr
->flags
= _flags_save_UNION
;
17048 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
17050 if (ndr_flags
& NDR_SCALARS
) {
17051 NDR_CHECK(ndr_push_align(ndr
, 4));
17053 uint32_t _flags_save_string
= ndr
->flags
;
17054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17055 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17056 ndr
->flags
= _flags_save_string
;
17059 if (ndr_flags
& NDR_BUFFERS
) {
17061 uint32_t _flags_save_string
= ndr
->flags
;
17062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17063 if (r
->monitor_name
) {
17064 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17065 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17066 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17068 ndr
->flags
= _flags_save_string
;
17071 return NDR_ERR_SUCCESS
;
17074 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
17076 uint32_t _ptr_monitor_name
;
17077 TALLOC_CTX
*_mem_save_monitor_name_0
;
17078 if (ndr_flags
& NDR_SCALARS
) {
17079 NDR_CHECK(ndr_pull_align(ndr
, 4));
17081 uint32_t _flags_save_string
= ndr
->flags
;
17082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17084 if (_ptr_monitor_name
) {
17085 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17086 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17088 r
->monitor_name
= NULL
;
17090 ndr
->flags
= _flags_save_string
;
17093 if (ndr_flags
& NDR_BUFFERS
) {
17095 uint32_t _flags_save_string
= ndr
->flags
;
17096 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17097 if (r
->monitor_name
) {
17098 uint32_t _relative_save_offset
;
17099 _relative_save_offset
= ndr
->offset
;
17100 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17101 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17102 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17103 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17105 ndr
->offset
= _relative_save_offset
;
17107 ndr
->flags
= _flags_save_string
;
17110 return NDR_ERR_SUCCESS
;
17113 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
17115 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
17117 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17119 if (r
->monitor_name
) {
17120 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17126 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17128 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
17131 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
17133 if (ndr_flags
& NDR_SCALARS
) {
17134 NDR_CHECK(ndr_push_align(ndr
, 4));
17136 uint32_t _flags_save_string
= ndr
->flags
;
17137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17138 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17139 ndr
->flags
= _flags_save_string
;
17142 uint32_t _flags_save_string
= ndr
->flags
;
17143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17144 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
17145 ndr
->flags
= _flags_save_string
;
17148 uint32_t _flags_save_string
= ndr
->flags
;
17149 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17150 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
17151 ndr
->flags
= _flags_save_string
;
17154 if (ndr_flags
& NDR_BUFFERS
) {
17156 uint32_t _flags_save_string
= ndr
->flags
;
17157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17158 if (r
->monitor_name
) {
17159 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17160 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17161 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17163 ndr
->flags
= _flags_save_string
;
17166 uint32_t _flags_save_string
= ndr
->flags
;
17167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17168 if (r
->environment
) {
17169 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->environment
));
17170 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
17171 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->environment
));
17173 ndr
->flags
= _flags_save_string
;
17176 uint32_t _flags_save_string
= ndr
->flags
;
17177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17179 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dll_name
));
17180 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
17181 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dll_name
));
17183 ndr
->flags
= _flags_save_string
;
17186 return NDR_ERR_SUCCESS
;
17189 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
17191 uint32_t _ptr_monitor_name
;
17192 TALLOC_CTX
*_mem_save_monitor_name_0
;
17193 uint32_t _ptr_environment
;
17194 TALLOC_CTX
*_mem_save_environment_0
;
17195 uint32_t _ptr_dll_name
;
17196 TALLOC_CTX
*_mem_save_dll_name_0
;
17197 if (ndr_flags
& NDR_SCALARS
) {
17198 NDR_CHECK(ndr_pull_align(ndr
, 4));
17200 uint32_t _flags_save_string
= ndr
->flags
;
17201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17203 if (_ptr_monitor_name
) {
17204 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17205 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17207 r
->monitor_name
= NULL
;
17209 ndr
->flags
= _flags_save_string
;
17212 uint32_t _flags_save_string
= ndr
->flags
;
17213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
17215 if (_ptr_environment
) {
17216 NDR_PULL_ALLOC(ndr
, r
->environment
);
17217 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
17219 r
->environment
= NULL
;
17221 ndr
->flags
= _flags_save_string
;
17224 uint32_t _flags_save_string
= ndr
->flags
;
17225 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17226 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
17227 if (_ptr_dll_name
) {
17228 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
17229 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
17231 r
->dll_name
= NULL
;
17233 ndr
->flags
= _flags_save_string
;
17236 if (ndr_flags
& NDR_BUFFERS
) {
17238 uint32_t _flags_save_string
= ndr
->flags
;
17239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17240 if (r
->monitor_name
) {
17241 uint32_t _relative_save_offset
;
17242 _relative_save_offset
= ndr
->offset
;
17243 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17244 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17245 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17246 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17247 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17248 ndr
->offset
= _relative_save_offset
;
17250 ndr
->flags
= _flags_save_string
;
17253 uint32_t _flags_save_string
= ndr
->flags
;
17254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17255 if (r
->environment
) {
17256 uint32_t _relative_save_offset
;
17257 _relative_save_offset
= ndr
->offset
;
17258 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
17259 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17260 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
17261 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
17262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
17263 ndr
->offset
= _relative_save_offset
;
17265 ndr
->flags
= _flags_save_string
;
17268 uint32_t _flags_save_string
= ndr
->flags
;
17269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17271 uint32_t _relative_save_offset
;
17272 _relative_save_offset
= ndr
->offset
;
17273 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
17274 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17275 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
17276 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
17277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
17278 ndr
->offset
= _relative_save_offset
;
17280 ndr
->flags
= _flags_save_string
;
17283 return NDR_ERR_SUCCESS
;
17286 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
17288 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
17290 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17292 if (r
->monitor_name
) {
17293 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17296 ndr_print_ptr(ndr
, "environment", r
->environment
);
17298 if (r
->environment
) {
17299 ndr_print_string(ndr
, "environment", r
->environment
);
17302 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
17305 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
17311 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17313 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
17316 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
17318 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17320 uint32_t _flags_save_UNION
= ndr
->flags
;
17321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17322 if (ndr_flags
& NDR_SCALARS
) {
17323 int level
= ndr_push_get_switch_value(ndr
, r
);
17326 NDR_CHECK(ndr_push_align(ndr
, 4));
17327 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17328 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17332 NDR_CHECK(ndr_push_align(ndr
, 4));
17333 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17334 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17342 if (ndr_flags
& NDR_BUFFERS
) {
17343 int level
= ndr_push_get_switch_value(ndr
, r
);
17344 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17347 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17351 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17359 ndr
->flags
= _flags_save_UNION
;
17361 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17362 return NDR_ERR_SUCCESS
;
17365 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
17367 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17370 uint32_t _flags_save_UNION
= ndr
->flags
;
17371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17372 level
= ndr_pull_get_switch_value(ndr
, r
);
17373 if (ndr_flags
& NDR_SCALARS
) {
17376 NDR_CHECK(ndr_pull_align(ndr
, 4));
17377 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17378 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17382 NDR_CHECK(ndr_pull_align(ndr
, 4));
17383 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17384 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17392 if (ndr_flags
& NDR_BUFFERS
) {
17393 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17396 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17400 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17408 ndr
->flags
= _flags_save_UNION
;
17410 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17411 return NDR_ERR_SUCCESS
;
17414 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
17418 uint32_t _flags_save_UNION
= ndr
->flags
;
17419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17420 level
= ndr_print_get_switch_value(ndr
, r
);
17421 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
17424 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
17428 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
17435 ndr
->flags
= _flags_save_UNION
;
17439 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17441 if (ndr_flags
& NDR_SCALARS
) {
17442 NDR_CHECK(ndr_push_align(ndr
, 4));
17444 uint32_t _flags_save_string
= ndr
->flags
;
17445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17446 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
17447 ndr
->flags
= _flags_save_string
;
17450 if (ndr_flags
& NDR_BUFFERS
) {
17452 uint32_t _flags_save_string
= ndr
->flags
;
17453 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17454 if (r
->name_array
) {
17455 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name_array
));
17456 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
17457 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name_array
));
17459 ndr
->flags
= _flags_save_string
;
17462 return NDR_ERR_SUCCESS
;
17465 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
17467 uint32_t _ptr_name_array
;
17468 TALLOC_CTX
*_mem_save_name_array_0
;
17469 if (ndr_flags
& NDR_SCALARS
) {
17470 NDR_CHECK(ndr_pull_align(ndr
, 4));
17472 uint32_t _flags_save_string
= ndr
->flags
;
17473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
17475 if (_ptr_name_array
) {
17476 NDR_PULL_ALLOC(ndr
, r
->name_array
);
17477 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
17479 r
->name_array
= NULL
;
17481 ndr
->flags
= _flags_save_string
;
17484 if (ndr_flags
& NDR_BUFFERS
) {
17486 uint32_t _flags_save_string
= ndr
->flags
;
17487 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17488 if (r
->name_array
) {
17489 uint32_t _relative_save_offset
;
17490 _relative_save_offset
= ndr
->offset
;
17491 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
17492 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17493 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
17494 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
17495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
17496 ndr
->offset
= _relative_save_offset
;
17498 ndr
->flags
= _flags_save_string
;
17501 return NDR_ERR_SUCCESS
;
17504 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17506 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
17508 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
17510 if (r
->name_array
) {
17511 ndr_print_string(ndr
, "name_array", r
->name_array
);
17517 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17519 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
17522 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
17524 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17526 uint32_t _flags_save_UNION
= ndr
->flags
;
17527 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17528 if (ndr_flags
& NDR_SCALARS
) {
17529 int level
= ndr_push_get_switch_value(ndr
, r
);
17532 NDR_CHECK(ndr_push_align(ndr
, 4));
17533 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17534 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17542 if (ndr_flags
& NDR_BUFFERS
) {
17543 int level
= ndr_push_get_switch_value(ndr
, r
);
17544 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17547 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17555 ndr
->flags
= _flags_save_UNION
;
17557 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17558 return NDR_ERR_SUCCESS
;
17561 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
17563 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17566 uint32_t _flags_save_UNION
= ndr
->flags
;
17567 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17568 level
= ndr_pull_get_switch_value(ndr
, r
);
17569 if (ndr_flags
& NDR_SCALARS
) {
17572 NDR_CHECK(ndr_pull_align(ndr
, 4));
17573 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17574 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17582 if (ndr_flags
& NDR_BUFFERS
) {
17583 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17586 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17594 ndr
->flags
= _flags_save_UNION
;
17596 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17597 return NDR_ERR_SUCCESS
;
17600 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
17604 uint32_t _flags_save_UNION
= ndr
->flags
;
17605 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17606 level
= ndr_print_get_switch_value(ndr
, r
);
17607 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
17610 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
17617 ndr
->flags
= _flags_save_UNION
;
17621 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17624 return NDR_ERR_SUCCESS
;
17627 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17632 return NDR_ERR_SUCCESS
;
17635 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17637 ndr_print_uint32(ndr
, name
, r
);
17639 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
17640 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
17641 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
17642 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
17643 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
17644 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
17645 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
17646 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
17647 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
17648 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
17649 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
17650 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
17651 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
17652 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
17653 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
17654 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
17655 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
17656 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
17657 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
17658 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
17659 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
17663 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
17665 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17666 return NDR_ERR_SUCCESS
;
17669 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
17672 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17674 return NDR_ERR_SUCCESS
;
17677 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
17679 const char *val
= NULL
;
17682 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17683 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17684 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17685 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
17686 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17687 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
17688 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17689 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17690 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17691 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
17692 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
17693 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17694 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17695 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17696 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
17697 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
17698 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17699 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
17700 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17701 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
17702 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17703 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17704 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17705 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17707 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17710 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
17712 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17713 return NDR_ERR_SUCCESS
;
17716 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
17719 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17721 return NDR_ERR_SUCCESS
;
17724 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
17726 const char *val
= NULL
;
17729 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17730 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17731 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17732 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17733 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17734 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17735 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17736 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17737 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17738 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17739 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17740 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17741 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17742 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17743 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17744 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17745 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17746 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17747 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
17748 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17749 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17750 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17751 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17752 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17753 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17754 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17755 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17756 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17758 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17761 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17763 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17764 return NDR_ERR_SUCCESS
;
17767 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17770 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17772 return NDR_ERR_SUCCESS
;
17775 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17777 const char *val
= NULL
;
17780 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17781 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17783 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17786 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
17788 if (ndr_flags
& NDR_SCALARS
) {
17789 int level
= ndr_push_get_switch_value(ndr
, r
);
17791 case PRINTER_NOTIFY_TYPE
: {
17792 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17795 case JOB_NOTIFY_TYPE
: {
17796 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17800 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17805 if (ndr_flags
& NDR_BUFFERS
) {
17806 int level
= ndr_push_get_switch_value(ndr
, r
);
17808 case PRINTER_NOTIFY_TYPE
:
17811 case JOB_NOTIFY_TYPE
:
17819 return NDR_ERR_SUCCESS
;
17822 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
17825 level
= ndr_pull_get_switch_value(ndr
, r
);
17826 if (ndr_flags
& NDR_SCALARS
) {
17828 case PRINTER_NOTIFY_TYPE
: {
17829 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17832 case JOB_NOTIFY_TYPE
: {
17833 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17837 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17842 if (ndr_flags
& NDR_BUFFERS
) {
17844 case PRINTER_NOTIFY_TYPE
:
17847 case JOB_NOTIFY_TYPE
:
17855 return NDR_ERR_SUCCESS
;
17858 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
17860 uint32_t cntr_fields_1
;
17861 if (ndr_flags
& NDR_SCALARS
) {
17862 NDR_CHECK(ndr_push_align(ndr
, 4));
17863 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17864 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17868 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17870 if (ndr_flags
& NDR_BUFFERS
) {
17872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17873 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17874 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17875 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17879 return NDR_ERR_SUCCESS
;
17882 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17884 uint32_t _ptr_fields
;
17885 uint32_t size_fields_1
= 0;
17886 uint32_t cntr_fields_1
;
17887 TALLOC_CTX
*_mem_save_fields_0
;
17888 TALLOC_CTX
*_mem_save_fields_1
;
17889 if (ndr_flags
& NDR_SCALARS
) {
17890 NDR_CHECK(ndr_pull_align(ndr
, 4));
17891 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17892 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17898 NDR_PULL_ALLOC(ndr
, r
->fields
);
17903 if (ndr_flags
& NDR_BUFFERS
) {
17905 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17906 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17907 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17908 size_fields_1
= ndr_get_array_size(ndr
, &r
->fields
);
17909 NDR_PULL_ALLOC_N(ndr
, r
->fields
, size_fields_1
);
17910 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17911 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17912 for (cntr_fields_1
= 0; cntr_fields_1
< size_fields_1
; cntr_fields_1
++) {
17913 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17914 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17920 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17923 return NDR_ERR_SUCCESS
;
17926 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17928 uint32_t cntr_fields_1
;
17929 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17931 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17932 ndr_print_uint16(ndr
, "u1", r
->u1
);
17933 ndr_print_uint32(ndr
, "u2", r
->u2
);
17934 ndr_print_uint32(ndr
, "u3", r
->u3
);
17935 ndr_print_uint32(ndr
, "count", r
->count
);
17936 ndr_print_ptr(ndr
, "fields", r
->fields
);
17939 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17941 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17943 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17944 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
17945 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
17955 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17958 return NDR_ERR_SUCCESS
;
17961 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17966 return NDR_ERR_SUCCESS
;
17969 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17971 ndr_print_uint32(ndr
, name
, r
);
17973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17977 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17979 uint32_t cntr_types_1
;
17980 if (ndr_flags
& NDR_SCALARS
) {
17981 NDR_CHECK(ndr_push_align(ndr
, 4));
17982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17983 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17985 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17987 if (ndr_flags
& NDR_BUFFERS
) {
17989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17990 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17991 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17993 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17994 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17998 return NDR_ERR_SUCCESS
;
18001 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
18003 uint32_t _ptr_types
;
18004 uint32_t size_types_1
= 0;
18005 uint32_t cntr_types_1
;
18006 TALLOC_CTX
*_mem_save_types_0
;
18007 TALLOC_CTX
*_mem_save_types_1
;
18008 if (ndr_flags
& NDR_SCALARS
) {
18009 NDR_CHECK(ndr_pull_align(ndr
, 4));
18010 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18011 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
18012 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18013 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
18015 NDR_PULL_ALLOC(ndr
, r
->types
);
18020 if (ndr_flags
& NDR_BUFFERS
) {
18022 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18023 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18024 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
18025 size_types_1
= ndr_get_array_size(ndr
, &r
->types
);
18026 NDR_PULL_ALLOC_N(ndr
, r
->types
, size_types_1
);
18027 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
18028 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18029 for (cntr_types_1
= 0; cntr_types_1
< size_types_1
; cntr_types_1
++) {
18030 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18032 for (cntr_types_1
= 0; cntr_types_1
< size_types_1
; cntr_types_1
++) {
18033 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
18036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
18039 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
18042 return NDR_ERR_SUCCESS
;
18045 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
18047 uint32_t cntr_types_1
;
18048 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
18050 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18051 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
18052 ndr_print_uint32(ndr
, "count", r
->count
);
18053 ndr_print_ptr(ndr
, "types", r
->types
);
18056 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
18058 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
18060 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
18061 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
18071 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
18073 if (ndr_flags
& NDR_SCALARS
) {
18074 NDR_CHECK(ndr_push_align(ndr
, 4));
18075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
18078 if (ndr_flags
& NDR_BUFFERS
) {
18080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
18081 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
18084 return NDR_ERR_SUCCESS
;
18087 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
18089 uint32_t _ptr_string
;
18090 uint32_t size_string_1
= 0;
18091 TALLOC_CTX
*_mem_save_string_0
;
18092 if (ndr_flags
& NDR_SCALARS
) {
18093 NDR_CHECK(ndr_pull_align(ndr
, 4));
18094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
18097 NDR_PULL_ALLOC(ndr
, r
->string
);
18102 if (ndr_flags
& NDR_BUFFERS
) {
18104 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18105 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
18106 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
18107 size_string_1
= ndr_get_array_size(ndr
, &r
->string
);
18108 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, size_string_1
, sizeof(uint16_t), CH_UTF16
));
18109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
18112 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
18115 return NDR_ERR_SUCCESS
;
18118 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
18120 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
18122 ndr_print_uint32(ndr
, "size", r
->size
);
18123 ndr_print_ptr(ndr
, "string", r
->string
);
18126 ndr_print_string(ndr
, "string", r
->string
);
18132 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
18134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18135 return NDR_ERR_SUCCESS
;
18138 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
18141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18143 return NDR_ERR_SUCCESS
;
18146 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
18148 const char *val
= NULL
;
18151 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
18152 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
18153 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
18154 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
18155 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18157 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18160 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
18162 if (ndr_flags
& NDR_SCALARS
) {
18163 int level
= ndr_push_get_switch_value(ndr
, r
);
18164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18167 uint32_t cntr_integer_0
;
18168 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
18174 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18178 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18182 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18186 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18190 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18193 if (ndr_flags
& NDR_BUFFERS
) {
18194 int level
= ndr_push_get_switch_value(ndr
, r
);
18200 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18204 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18208 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18212 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18216 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18219 return NDR_ERR_SUCCESS
;
18222 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
18226 uint32_t size_integer_0
= 0;
18227 uint32_t cntr_integer_0
;
18228 level
= ndr_pull_get_switch_value(ndr
, r
);
18229 if (ndr_flags
& NDR_SCALARS
) {
18230 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18231 if (_level
!= level
) {
18232 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18236 size_integer_0
= 2;
18237 for (cntr_integer_0
= 0; cntr_integer_0
< size_integer_0
; cntr_integer_0
++) {
18238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
18243 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18247 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18251 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18255 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18259 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18262 if (ndr_flags
& NDR_BUFFERS
) {
18268 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18272 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18276 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18280 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18284 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18287 return NDR_ERR_SUCCESS
;
18290 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
18293 uint32_t cntr_integer_0
;
18294 level
= ndr_print_get_switch_value(ndr
, r
);
18295 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
18298 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
18300 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
18302 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
18303 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
18311 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
18315 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
18319 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
18323 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
18327 ndr_print_bad_level(ndr
, name
, level
);
18331 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
18333 if (ndr_flags
& NDR_SCALARS
) {
18334 NDR_CHECK(ndr_push_align(ndr
, 4));
18335 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18336 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
18337 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18338 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
18339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
18340 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18341 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18343 if (ndr_flags
& NDR_BUFFERS
) {
18344 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18346 return NDR_ERR_SUCCESS
;
18349 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
18351 if (ndr_flags
& NDR_SCALARS
) {
18352 NDR_CHECK(ndr_pull_align(ndr
, 4));
18353 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18354 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
18355 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18356 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
18357 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
18358 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18359 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18361 if (ndr_flags
& NDR_BUFFERS
) {
18362 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18364 return NDR_ERR_SUCCESS
;
18367 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
18369 ndr_print_struct(ndr
, name
, "spoolss_Notify");
18371 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18372 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
18373 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
18374 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
18375 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
18376 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
18377 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
18381 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
18383 uint32_t cntr_notifies_0
;
18384 if (ndr_flags
& NDR_SCALARS
) {
18385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18386 NDR_CHECK(ndr_push_align(ndr
, 4));
18387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18390 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18391 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18394 if (ndr_flags
& NDR_BUFFERS
) {
18395 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18396 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18399 return NDR_ERR_SUCCESS
;
18402 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
18404 uint32_t size_notifies_0
= 0;
18405 uint32_t cntr_notifies_0
;
18406 TALLOC_CTX
*_mem_save_notifies_0
;
18407 if (ndr_flags
& NDR_SCALARS
) {
18408 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
18409 NDR_CHECK(ndr_pull_align(ndr
, 4));
18410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18413 size_notifies_0
= ndr_get_array_size(ndr
, &r
->notifies
);
18414 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, size_notifies_0
);
18415 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18416 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18417 for (cntr_notifies_0
= 0; cntr_notifies_0
< size_notifies_0
; cntr_notifies_0
++) {
18418 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18422 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
18425 if (ndr_flags
& NDR_BUFFERS
) {
18426 size_notifies_0
= ndr_get_array_size(ndr
, &r
->notifies
);
18427 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18428 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18429 for (cntr_notifies_0
= 0; cntr_notifies_0
< size_notifies_0
; cntr_notifies_0
++) {
18430 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18434 return NDR_ERR_SUCCESS
;
18437 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
18439 uint32_t cntr_notifies_0
;
18440 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
18442 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18443 ndr_print_uint32(ndr
, "flags", r
->flags
);
18444 ndr_print_uint32(ndr
, "count", r
->count
);
18445 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
18447 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
18449 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
18450 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
18458 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
18460 if (ndr_flags
& NDR_SCALARS
) {
18461 int level
= ndr_push_get_switch_value(ndr
, r
);
18462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18465 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
18469 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18472 if (ndr_flags
& NDR_BUFFERS
) {
18473 int level
= ndr_push_get_switch_value(ndr
, r
);
18477 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18482 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18485 return NDR_ERR_SUCCESS
;
18488 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
18492 TALLOC_CTX
*_mem_save_info0_0
;
18493 uint32_t _ptr_info0
;
18494 level
= ndr_pull_get_switch_value(ndr
, r
);
18495 if (ndr_flags
& NDR_SCALARS
) {
18496 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18497 if (_level
!= level
) {
18498 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
18504 NDR_PULL_ALLOC(ndr
, r
->info0
);
18511 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18514 if (ndr_flags
& NDR_BUFFERS
) {
18518 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18519 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
18520 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
18526 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18529 return NDR_ERR_SUCCESS
;
18532 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
18535 level
= ndr_print_get_switch_value(ndr
, r
);
18536 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
18539 ndr_print_ptr(ndr
, "info0", r
->info0
);
18542 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
18548 ndr_print_bad_level(ndr
, name
, level
);
18552 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18555 return NDR_ERR_SUCCESS
;
18558 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18561 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18563 return NDR_ERR_SUCCESS
;
18566 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18568 ndr_print_uint32(ndr
, name
, r
);
18570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
18571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
18572 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
18576 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
18578 if (ndr_flags
& NDR_SCALARS
) {
18579 NDR_CHECK(ndr_push_align(ndr
, 4));
18580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18584 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18585 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18586 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18588 if (ndr_flags
& NDR_BUFFERS
) {
18590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18593 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18599 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18602 return NDR_ERR_SUCCESS
;
18605 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
18607 uint32_t _ptr_client
;
18608 uint32_t size_client_1
= 0;
18609 uint32_t length_client_1
= 0;
18610 TALLOC_CTX
*_mem_save_client_0
;
18611 uint32_t _ptr_user
;
18612 uint32_t size_user_1
= 0;
18613 uint32_t length_user_1
= 0;
18614 TALLOC_CTX
*_mem_save_user_0
;
18615 if (ndr_flags
& NDR_SCALARS
) {
18616 NDR_CHECK(ndr_pull_align(ndr
, 4));
18617 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18618 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18620 NDR_PULL_ALLOC(ndr
, r
->client
);
18624 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18626 NDR_PULL_ALLOC(ndr
, r
->user
);
18630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18631 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18632 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18633 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18635 if (ndr_flags
& NDR_BUFFERS
) {
18637 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18638 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18640 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18641 size_client_1
= ndr_get_array_size(ndr
, &r
->client
);
18642 length_client_1
= ndr_get_array_length(ndr
, &r
->client
);
18643 if (length_client_1
> size_client_1
) {
18644 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_1
, length_client_1
);
18646 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_1
, sizeof(uint16_t)));
18647 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, length_client_1
, sizeof(uint16_t), CH_UTF16
));
18648 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18651 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18652 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18653 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18654 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18655 size_user_1
= ndr_get_array_size(ndr
, &r
->user
);
18656 length_user_1
= ndr_get_array_length(ndr
, &r
->user
);
18657 if (length_user_1
> size_user_1
) {
18658 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_1
, length_user_1
);
18660 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_1
, sizeof(uint16_t)));
18661 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, length_user_1
, sizeof(uint16_t), CH_UTF16
));
18662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18665 return NDR_ERR_SUCCESS
;
18668 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
18670 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
18672 ndr_print_uint32(ndr
, "size", r
->size
);
18673 ndr_print_ptr(ndr
, "client", r
->client
);
18676 ndr_print_string(ndr
, "client", r
->client
);
18679 ndr_print_ptr(ndr
, "user", r
->user
);
18682 ndr_print_string(ndr
, "user", r
->user
);
18685 ndr_print_uint32(ndr
, "build", r
->build
);
18686 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18687 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18688 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18692 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
18694 if (ndr_flags
& NDR_SCALARS
) {
18695 NDR_CHECK(ndr_push_align(ndr
, 4));
18696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
18698 if (ndr_flags
& NDR_BUFFERS
) {
18700 return NDR_ERR_SUCCESS
;
18703 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
18705 if (ndr_flags
& NDR_SCALARS
) {
18706 NDR_CHECK(ndr_pull_align(ndr
, 4));
18707 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
18709 if (ndr_flags
& NDR_BUFFERS
) {
18711 return NDR_ERR_SUCCESS
;
18714 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
18716 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
18718 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
18722 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
18724 if (ndr_flags
& NDR_SCALARS
) {
18725 NDR_CHECK(ndr_push_align(ndr
, 4));
18726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
18729 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18730 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18732 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18733 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18734 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18735 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
18737 if (ndr_flags
& NDR_BUFFERS
) {
18739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18742 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18748 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18751 return NDR_ERR_SUCCESS
;
18754 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
18756 uint32_t _ptr_client
;
18757 uint32_t size_client_1
= 0;
18758 uint32_t length_client_1
= 0;
18759 TALLOC_CTX
*_mem_save_client_0
;
18760 uint32_t _ptr_user
;
18761 uint32_t size_user_1
= 0;
18762 uint32_t length_user_1
= 0;
18763 TALLOC_CTX
*_mem_save_user_0
;
18764 if (ndr_flags
& NDR_SCALARS
) {
18765 NDR_CHECK(ndr_pull_align(ndr
, 4));
18766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18768 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
18769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18771 NDR_PULL_ALLOC(ndr
, r
->client
);
18775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18777 NDR_PULL_ALLOC(ndr
, r
->user
);
18781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18782 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18783 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18784 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18785 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
18787 if (ndr_flags
& NDR_BUFFERS
) {
18789 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18790 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18791 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18792 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18793 size_client_1
= ndr_get_array_size(ndr
, &r
->client
);
18794 length_client_1
= ndr_get_array_length(ndr
, &r
->client
);
18795 if (length_client_1
> size_client_1
) {
18796 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_1
, length_client_1
);
18798 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_1
, sizeof(uint16_t)));
18799 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, length_client_1
, sizeof(uint16_t), CH_UTF16
));
18800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18803 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18804 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18805 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18806 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18807 size_user_1
= ndr_get_array_size(ndr
, &r
->user
);
18808 length_user_1
= ndr_get_array_length(ndr
, &r
->user
);
18809 if (length_user_1
> size_user_1
) {
18810 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_1
, length_user_1
);
18812 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_1
, sizeof(uint16_t)));
18813 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, length_user_1
, sizeof(uint16_t), CH_UTF16
));
18814 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18817 return NDR_ERR_SUCCESS
;
18820 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
18822 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
18824 ndr_print_uint32(ndr
, "size", r
->size
);
18825 ndr_print_uint32(ndr
, "flags", r
->flags
);
18826 ndr_print_uint32(ndr
, "size2", r
->size2
);
18827 ndr_print_ptr(ndr
, "client", r
->client
);
18830 ndr_print_string(ndr
, "client", r
->client
);
18833 ndr_print_ptr(ndr
, "user", r
->user
);
18836 ndr_print_string(ndr
, "user", r
->user
);
18839 ndr_print_uint32(ndr
, "build", r
->build
);
18840 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18841 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18842 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18843 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
18847 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
18849 if (ndr_flags
& NDR_SCALARS
) {
18850 int level
= ndr_push_get_switch_value(ndr
, r
);
18851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18854 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
18858 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
18862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
18866 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18869 if (ndr_flags
& NDR_BUFFERS
) {
18870 int level
= ndr_push_get_switch_value(ndr
, r
);
18874 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18880 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18886 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18891 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18894 return NDR_ERR_SUCCESS
;
18897 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18901 TALLOC_CTX
*_mem_save_level1_0
;
18902 uint32_t _ptr_level1
;
18903 TALLOC_CTX
*_mem_save_level2_0
;
18904 uint32_t _ptr_level2
;
18905 TALLOC_CTX
*_mem_save_level3_0
;
18906 uint32_t _ptr_level3
;
18907 level
= ndr_pull_get_switch_value(ndr
, r
);
18908 if (ndr_flags
& NDR_SCALARS
) {
18909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18910 if (_level
!= level
) {
18911 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18915 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18917 NDR_PULL_ALLOC(ndr
, r
->level1
);
18924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18926 NDR_PULL_ALLOC(ndr
, r
->level2
);
18933 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18935 NDR_PULL_ALLOC(ndr
, r
->level3
);
18942 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18945 if (ndr_flags
& NDR_BUFFERS
) {
18949 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18950 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18951 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18958 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18959 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18960 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18967 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18968 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18969 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18975 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18978 return NDR_ERR_SUCCESS
;
18981 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18984 level
= ndr_print_get_switch_value(ndr
, r
);
18985 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18988 ndr_print_ptr(ndr
, "level1", r
->level1
);
18991 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18997 ndr_print_ptr(ndr
, "level2", r
->level2
);
19000 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
19006 ndr_print_ptr(ndr
, "level3", r
->level3
);
19009 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
19015 ndr_print_bad_level(ndr
, name
, level
);
19019 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
19021 if (ndr_flags
& NDR_SCALARS
) {
19022 NDR_CHECK(ndr_push_align(ndr
, 4));
19023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
19024 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19025 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19027 if (ndr_flags
& NDR_BUFFERS
) {
19028 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19030 return NDR_ERR_SUCCESS
;
19033 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
19035 if (ndr_flags
& NDR_SCALARS
) {
19036 NDR_CHECK(ndr_pull_align(ndr
, 4));
19037 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
19038 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19039 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19041 if (ndr_flags
& NDR_BUFFERS
) {
19042 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19044 return NDR_ERR_SUCCESS
;
19047 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
19049 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
19051 ndr_print_uint32(ndr
, "level", r
->level
);
19052 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
19053 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
19057 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19060 return NDR_ERR_SUCCESS
;
19063 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19068 return NDR_ERR_SUCCESS
;
19071 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19073 ndr_print_uint32(ndr
, name
, r
);
19075 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
19076 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
19077 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
19078 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
19079 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
19080 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
19084 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
19086 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
19087 if (ndr_flags
& NDR_SCALARS
) {
19088 NDR_CHECK(ndr_push_align(ndr
, 4));
19089 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19091 uint32_t _flags_save_string
= ndr
->flags
;
19092 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19093 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
19094 ndr
->flags
= _flags_save_string
;
19096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
19097 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
19099 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19100 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
19101 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
19102 ndr
->flags
= _flags_save_DATA_BLOB
;
19104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
->length
));
19106 if (ndr_flags
& NDR_BUFFERS
) {
19107 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
19109 uint32_t _flags_save_string
= ndr
->flags
;
19110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19111 if (r
->value_name
) {
19112 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->value_name
));
19113 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
19114 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->value_name
));
19116 ndr
->flags
= _flags_save_string
;
19119 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
19122 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data
));
19124 struct ndr_push
*_ndr_data
;
19125 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data
->length
));
19126 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data
, NDR_SCALARS
, *r
->data
));
19127 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data
->length
));
19129 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data
));
19131 ndr
->flags
= _flags_save_DATA_BLOB
;
19134 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19135 return NDR_ERR_SUCCESS
;
19138 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
19140 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
19141 uint32_t _ptr_value_name
;
19142 TALLOC_CTX
*_mem_save_value_name_0
;
19143 uint32_t _ptr_data
;
19144 TALLOC_CTX
*_mem_save_data_0
;
19145 if (ndr_flags
& NDR_SCALARS
) {
19146 NDR_CHECK(ndr_pull_align(ndr
, 4));
19147 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19149 uint32_t _flags_save_string
= ndr
->flags
;
19150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
19152 if (_ptr_value_name
) {
19153 NDR_PULL_ALLOC(ndr
, r
->value_name
);
19154 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
19156 r
->value_name
= NULL
;
19158 ndr
->flags
= _flags_save_string
;
19160 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
19161 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
19163 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19164 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
19165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
19167 NDR_PULL_ALLOC(ndr
, r
->data
);
19168 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
19172 ndr
->flags
= _flags_save_DATA_BLOB
;
19174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
19176 if (ndr_flags
& NDR_BUFFERS
) {
19177 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
19179 uint32_t _flags_save_string
= ndr
->flags
;
19180 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19181 if (r
->value_name
) {
19182 uint32_t _relative_save_offset
;
19183 _relative_save_offset
= ndr
->offset
;
19184 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
19185 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19186 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
19187 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
19188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
19189 ndr
->offset
= _relative_save_offset
;
19191 ndr
->flags
= _flags_save_string
;
19194 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
19197 uint32_t _relative_save_offset
;
19198 _relative_save_offset
= ndr
->offset
;
19199 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
19200 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19201 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
19203 struct ndr_pull
*_ndr_data
;
19204 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19205 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data
, NDR_SCALARS
, r
->data
));
19206 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
19209 ndr
->offset
= _relative_save_offset
;
19211 ndr
->flags
= _flags_save_DATA_BLOB
;
19214 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19215 return NDR_ERR_SUCCESS
;
19218 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
19220 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
19222 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
19224 if (r
->value_name
) {
19225 ndr_print_string(ndr
, "value_name", r
->value_name
);
19228 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
19229 ndr_print_winreg_Type(ndr
, "type", r
->type
);
19230 ndr_print_ptr(ndr
, "data", r
->data
);
19233 ndr_print_DATA_BLOB(ndr
, "data", *r
->data
);
19236 ndr_print_uint32(ndr
, "data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->data
->length
:r
->data_length
);
19240 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
19242 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
19245 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
19247 if (ndr_flags
& NDR_SCALARS
) {
19248 int level
= ndr_push_get_switch_value(ndr
, r
);
19258 uint32_t _flags_save_string_array
= ndr
->flags
;
19259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19260 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
19261 ndr
->flags
= _flags_save_string_array
;
19267 if (ndr_flags
& NDR_BUFFERS
) {
19268 int level
= ndr_push_get_switch_value(ndr
, r
);
19281 return NDR_ERR_SUCCESS
;
19284 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
19287 level
= ndr_pull_get_switch_value(ndr
, r
);
19288 if (ndr_flags
& NDR_SCALARS
) {
19298 uint32_t _flags_save_string_array
= ndr
->flags
;
19299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19300 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
19301 ndr
->flags
= _flags_save_string_array
;
19307 if (ndr_flags
& NDR_BUFFERS
) {
19320 return NDR_ERR_SUCCESS
;
19323 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
19326 level
= ndr_print_get_switch_value(ndr
, r
);
19327 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
19336 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
19342 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19345 return NDR_ERR_SUCCESS
;
19348 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19353 return NDR_ERR_SUCCESS
;
19356 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19358 ndr_print_uint32(ndr
, name
, r
);
19360 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
19361 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
19362 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
19366 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
19368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19369 return NDR_ERR_SUCCESS
;
19372 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
19375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19377 return NDR_ERR_SUCCESS
;
19380 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
19382 const char *val
= NULL
;
19385 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
19386 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
19388 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19391 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
19393 if (ndr_flags
& NDR_SCALARS
) {
19394 NDR_CHECK(ndr_push_align(ndr
, 4));
19395 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
19397 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19400 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19401 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19403 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19404 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19405 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19406 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19411 if (ndr_flags
& NDR_BUFFERS
) {
19413 return NDR_ERR_SUCCESS
;
19416 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
19418 uint32_t size_portname_0
= 0;
19419 uint32_t size_hostaddress_0
= 0;
19420 uint32_t size_snmpcommunity_0
= 0;
19421 uint32_t size_queue_0
= 0;
19422 uint32_t size_ip_address_0
= 0;
19423 uint32_t size_hardware_address_0
= 0;
19424 uint32_t size_device_type_0
= 0;
19425 if (ndr_flags
& NDR_SCALARS
) {
19426 NDR_CHECK(ndr_pull_align(ndr
, 4));
19427 size_portname_0
= 64;
19428 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, size_portname_0
, sizeof(uint16_t), CH_UTF16
));
19429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19430 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19433 size_hostaddress_0
= 49;
19434 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, size_hostaddress_0
, sizeof(uint16_t), CH_UTF16
));
19435 size_snmpcommunity_0
= 33;
19436 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, size_snmpcommunity_0
, sizeof(uint16_t), CH_UTF16
));
19437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19439 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, size_queue_0
, sizeof(uint16_t), CH_UTF16
));
19440 size_ip_address_0
= 16;
19441 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, size_ip_address_0
, sizeof(uint16_t), CH_UTF16
));
19442 size_hardware_address_0
= 13;
19443 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, size_hardware_address_0
, sizeof(uint16_t), CH_UTF16
));
19444 size_device_type_0
= 257;
19445 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, size_device_type_0
, sizeof(uint16_t), CH_UTF16
));
19446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19450 if (ndr_flags
& NDR_BUFFERS
) {
19452 return NDR_ERR_SUCCESS
;
19455 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
19457 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
19459 ndr_print_string(ndr
, "portname", r
->portname
);
19460 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
19461 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19462 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19463 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19464 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19465 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19466 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19467 ndr_print_string(ndr
, "queue", r
->queue
);
19468 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
19469 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
19470 ndr_print_string(ndr
, "device_type", r
->device_type
);
19471 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19472 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19473 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19477 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
19479 if (ndr_flags
& NDR_SCALARS
) {
19480 NDR_CHECK(ndr_push_align(ndr
, 4));
19481 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
19483 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19487 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19489 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
19496 if (ndr_flags
& NDR_BUFFERS
) {
19498 return NDR_ERR_SUCCESS
;
19501 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
19503 uint32_t size_portname_0
= 0;
19504 uint32_t size_hostaddress_0
= 0;
19505 uint32_t size_snmpcommunity_0
= 0;
19506 uint32_t size_queue_0
= 0;
19507 uint32_t size_device_type_0
= 0;
19508 if (ndr_flags
& NDR_SCALARS
) {
19509 NDR_CHECK(ndr_pull_align(ndr
, 4));
19510 size_portname_0
= 64;
19511 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, size_portname_0
, sizeof(uint16_t), CH_UTF16
));
19512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19513 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19516 size_hostaddress_0
= 128;
19517 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, size_hostaddress_0
, sizeof(uint16_t), CH_UTF16
));
19518 size_snmpcommunity_0
= 33;
19519 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, size_snmpcommunity_0
, sizeof(uint16_t), CH_UTF16
));
19520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19522 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, size_queue_0
, sizeof(uint16_t), CH_UTF16
));
19523 size_device_type_0
= 257;
19524 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, size_device_type_0
, sizeof(uint16_t), CH_UTF16
));
19525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19528 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
19530 if (ndr_flags
& NDR_BUFFERS
) {
19532 return NDR_ERR_SUCCESS
;
19535 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
19537 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
19539 ndr_print_string(ndr
, "portname", r
->portname
);
19540 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
19541 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19542 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19543 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19544 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19545 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19546 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19547 ndr_print_string(ndr
, "queue", r
->queue
);
19548 ndr_print_string(ndr
, "device_type", r
->device_type
);
19549 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19550 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19551 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19552 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
19556 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
19558 if (ndr_flags
& NDR_SCALARS
) {
19559 NDR_CHECK(ndr_push_align(ndr
, 4));
19561 uint32_t _flags_save_string
= ndr
->flags
;
19562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19563 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
19564 ndr
->flags
= _flags_save_string
;
19567 if (ndr_flags
& NDR_BUFFERS
) {
19569 return NDR_ERR_SUCCESS
;
19572 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
19574 if (ndr_flags
& NDR_SCALARS
) {
19575 NDR_CHECK(ndr_pull_align(ndr
, 4));
19577 uint32_t _flags_save_string
= ndr
->flags
;
19578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19579 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
19580 ndr
->flags
= _flags_save_string
;
19583 if (ndr_flags
& NDR_BUFFERS
) {
19585 return NDR_ERR_SUCCESS
;
19588 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
19590 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
19592 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
19596 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19599 return NDR_ERR_SUCCESS
;
19602 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19607 return NDR_ERR_SUCCESS
;
19610 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19612 ndr_print_uint32(ndr
, name
, r
);
19614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
19615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
19616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
19617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
19618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
19619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
19620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
19621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
19625 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
19627 if (flags
& NDR_IN
) {
19628 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
19629 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19630 if (r
->in
.server
) {
19631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19634 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19637 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19638 if (r
->in
.buffer
) {
19639 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19643 if (flags
& NDR_OUT
) {
19644 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19646 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19648 if (r
->out
.needed
== NULL
) {
19649 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19652 if (r
->out
.count
== NULL
) {
19653 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19656 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19658 return NDR_ERR_SUCCESS
;
19661 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
19663 uint32_t _ptr_server
;
19664 uint32_t size_server_1
= 0;
19665 uint32_t length_server_1
= 0;
19666 uint32_t _ptr_buffer
;
19667 uint32_t _ptr_info
;
19668 TALLOC_CTX
*_mem_save_server_0
;
19669 TALLOC_CTX
*_mem_save_buffer_0
;
19670 TALLOC_CTX
*_mem_save_info_0
;
19671 TALLOC_CTX
*_mem_save_needed_0
;
19672 TALLOC_CTX
*_mem_save_count_0
;
19673 if (flags
& NDR_IN
) {
19674 ZERO_STRUCT(r
->out
);
19676 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
19677 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19679 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19681 r
->in
.server
= NULL
;
19683 if (r
->in
.server
) {
19684 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19685 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19688 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
19689 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
19690 if (length_server_1
> size_server_1
) {
19691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
19693 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
19694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
19695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19700 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19702 r
->in
.buffer
= NULL
;
19704 if (r
->in
.buffer
) {
19705 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19706 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19707 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19711 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19712 ZERO_STRUCTP(r
->out
.needed
);
19713 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19714 ZERO_STRUCTP(r
->out
.count
);
19716 if (flags
& NDR_OUT
) {
19717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19719 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19721 r
->out
.info
= NULL
;
19724 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19725 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19726 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19729 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19730 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19732 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19733 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19736 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19737 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19739 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19740 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19743 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19745 return NDR_ERR_SUCCESS
;
19748 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
19750 uint32_t cntr_info_0
;
19751 if (flags
& NDR_IN
) {
19752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19755 if (flags
& NDR_OUT
) {
19756 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19757 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19758 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19760 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19761 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19764 return NDR_ERR_SUCCESS
;
19767 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
19769 uint32_t size_info_0
= 0;
19770 uint32_t cntr_info_0
;
19771 TALLOC_CTX
*_mem_save_info_0
;
19772 if (flags
& NDR_IN
) {
19773 ZERO_STRUCT(r
->out
);
19775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19776 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19778 if (flags
& NDR_OUT
) {
19779 size_info_0
= r
->in
.count
;
19780 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
19781 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19782 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19783 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
19784 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19785 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19787 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
19788 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19792 return NDR_ERR_SUCCESS
;
19795 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
19797 uint32_t cntr_info_2
;
19798 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
19800 if (flags
& NDR_SET_VALUES
) {
19801 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19803 if (flags
& NDR_IN
) {
19804 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
19806 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
19807 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19809 if (r
->in
.server
) {
19810 ndr_print_string(ndr
, "server", r
->in
.server
);
19813 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19814 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19816 if (r
->in
.buffer
) {
19817 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19820 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19823 if (flags
& NDR_OUT
) {
19824 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
19826 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19828 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19830 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19832 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19834 if (*r
->out
.info
) {
19835 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19837 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19839 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19840 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19841 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19849 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19851 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19853 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19859 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
19861 if (flags
& NDR_IN
) {
19862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
19863 if (r
->in
.printername
) {
19864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19867 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19869 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
19870 if (r
->in
.datatype
) {
19871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19874 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19876 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19877 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
19879 if (flags
& NDR_OUT
) {
19880 if (r
->out
.handle
== NULL
) {
19881 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19883 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19884 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19886 return NDR_ERR_SUCCESS
;
19889 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
19891 uint32_t _ptr_printername
;
19892 uint32_t size_printername_1
= 0;
19893 uint32_t length_printername_1
= 0;
19894 uint32_t _ptr_datatype
;
19895 uint32_t size_datatype_1
= 0;
19896 uint32_t length_datatype_1
= 0;
19897 TALLOC_CTX
*_mem_save_printername_0
;
19898 TALLOC_CTX
*_mem_save_datatype_0
;
19899 TALLOC_CTX
*_mem_save_handle_0
;
19900 if (flags
& NDR_IN
) {
19901 ZERO_STRUCT(r
->out
);
19903 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
19904 if (_ptr_printername
) {
19905 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
19907 r
->in
.printername
= NULL
;
19909 if (r
->in
.printername
) {
19910 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19911 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
19912 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
19913 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
19914 size_printername_1
= ndr_get_array_size(ndr
, &r
->in
.printername
);
19915 length_printername_1
= ndr_get_array_length(ndr
, &r
->in
.printername
);
19916 if (length_printername_1
> size_printername_1
) {
19917 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
19919 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
19920 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
19921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
19923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
19924 if (_ptr_datatype
) {
19925 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
19927 r
->in
.datatype
= NULL
;
19929 if (r
->in
.datatype
) {
19930 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19931 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
19932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
19933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
19934 size_datatype_1
= ndr_get_array_size(ndr
, &r
->in
.datatype
);
19935 length_datatype_1
= ndr_get_array_length(ndr
, &r
->in
.datatype
);
19936 if (length_datatype_1
> size_datatype_1
) {
19937 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
19939 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
19940 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
19941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
19943 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19944 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
19945 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19946 ZERO_STRUCTP(r
->out
.handle
);
19948 if (flags
& NDR_OUT
) {
19949 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19950 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19952 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19953 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19954 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19956 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19958 return NDR_ERR_SUCCESS
;
19961 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
19963 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
19965 if (flags
& NDR_SET_VALUES
) {
19966 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19968 if (flags
& NDR_IN
) {
19969 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
19971 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
19973 if (r
->in
.printername
) {
19974 ndr_print_string(ndr
, "printername", r
->in
.printername
);
19977 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
19979 if (r
->in
.datatype
) {
19980 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
19983 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
19984 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
19987 if (flags
& NDR_OUT
) {
19988 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
19990 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
19992 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
19994 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20000 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
20002 if (flags
& NDR_IN
) {
20003 if (r
->in
.handle
== NULL
) {
20004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20006 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20008 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
20010 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20012 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20014 if (flags
& NDR_OUT
) {
20015 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20017 return NDR_ERR_SUCCESS
;
20020 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
20023 TALLOC_CTX
*_mem_save_handle_0
;
20024 TALLOC_CTX
*_mem_save_ctr_0
;
20025 if (flags
& NDR_IN
) {
20026 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20027 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20029 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20030 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20031 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20033 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
20036 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
20041 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20042 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
20043 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
20046 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20048 if (flags
& NDR_OUT
) {
20049 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20051 return NDR_ERR_SUCCESS
;
20054 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
20056 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
20058 if (flags
& NDR_SET_VALUES
) {
20059 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20061 if (flags
& NDR_IN
) {
20062 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
20064 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20066 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20068 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20069 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
20072 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
20075 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
20078 if (flags
& NDR_OUT
) {
20079 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
20081 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20087 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
20089 if (flags
& NDR_IN
) {
20090 if (r
->in
.handle
== NULL
) {
20091 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20093 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20097 if (r
->in
.buffer
) {
20098 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20102 if (flags
& NDR_OUT
) {
20103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20106 struct ndr_push
*_ndr_info
;
20107 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20108 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20109 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20110 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20113 if (r
->out
.needed
== NULL
) {
20114 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20117 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20119 return NDR_ERR_SUCCESS
;
20122 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
20124 uint32_t _ptr_buffer
;
20125 uint32_t _ptr_info
;
20126 TALLOC_CTX
*_mem_save_handle_0
;
20127 TALLOC_CTX
*_mem_save_buffer_0
;
20128 TALLOC_CTX
*_mem_save_info_0
;
20129 TALLOC_CTX
*_mem_save_needed_0
;
20130 if (flags
& NDR_IN
) {
20131 ZERO_STRUCT(r
->out
);
20133 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20134 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20136 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20137 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20138 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20144 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20146 r
->in
.buffer
= NULL
;
20148 if (r
->in
.buffer
) {
20149 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20150 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20151 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20155 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20156 ZERO_STRUCTP(r
->out
.needed
);
20158 if (flags
& NDR_OUT
) {
20159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20161 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20163 r
->out
.info
= NULL
;
20166 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20167 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20169 struct ndr_pull
*_ndr_info
;
20170 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20171 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20172 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20173 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20177 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20178 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20180 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20181 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20184 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20186 return NDR_ERR_SUCCESS
;
20189 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
20191 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
20193 if (flags
& NDR_SET_VALUES
) {
20194 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20196 if (flags
& NDR_IN
) {
20197 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
20199 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20201 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20203 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20204 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20205 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20207 if (r
->in
.buffer
) {
20208 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20211 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20214 if (flags
& NDR_OUT
) {
20215 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
20217 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20220 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20221 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
20224 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20226 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20228 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20234 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
20236 if (flags
& NDR_IN
) {
20237 if (r
->in
.handle
== NULL
) {
20238 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20240 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
20242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
20243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20244 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20245 if (r
->in
.buffer
) {
20246 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20250 if (flags
& NDR_OUT
) {
20251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20253 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20255 if (r
->out
.needed
== NULL
) {
20256 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20259 if (r
->out
.count
== NULL
) {
20260 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20263 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20265 return NDR_ERR_SUCCESS
;
20268 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
20270 uint32_t _ptr_buffer
;
20271 uint32_t _ptr_info
;
20272 TALLOC_CTX
*_mem_save_handle_0
;
20273 TALLOC_CTX
*_mem_save_buffer_0
;
20274 TALLOC_CTX
*_mem_save_info_0
;
20275 TALLOC_CTX
*_mem_save_needed_0
;
20276 TALLOC_CTX
*_mem_save_count_0
;
20277 if (flags
& NDR_IN
) {
20278 ZERO_STRUCT(r
->out
);
20280 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20281 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20283 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20284 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20285 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
20288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
20289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20292 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20294 r
->in
.buffer
= NULL
;
20296 if (r
->in
.buffer
) {
20297 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20298 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20299 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20302 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20303 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20304 ZERO_STRUCTP(r
->out
.needed
);
20305 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20306 ZERO_STRUCTP(r
->out
.count
);
20308 if (flags
& NDR_OUT
) {
20309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20311 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20313 r
->out
.info
= NULL
;
20316 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20317 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20318 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20321 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20322 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20324 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20325 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20328 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20329 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20331 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20332 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20335 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20337 return NDR_ERR_SUCCESS
;
20340 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
20342 uint32_t cntr_info_0
;
20343 if (flags
& NDR_IN
) {
20344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20347 if (flags
& NDR_OUT
) {
20348 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20349 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20350 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20352 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20353 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20356 return NDR_ERR_SUCCESS
;
20359 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
20361 uint32_t size_info_0
= 0;
20362 uint32_t cntr_info_0
;
20363 TALLOC_CTX
*_mem_save_info_0
;
20364 if (flags
& NDR_IN
) {
20365 ZERO_STRUCT(r
->out
);
20367 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20370 if (flags
& NDR_OUT
) {
20371 size_info_0
= r
->in
.count
;
20372 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
20373 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20374 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20375 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
20376 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20377 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20379 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
20380 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20384 return NDR_ERR_SUCCESS
;
20387 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
20389 uint32_t cntr_info_2
;
20390 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
20392 if (flags
& NDR_SET_VALUES
) {
20393 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20395 if (flags
& NDR_IN
) {
20396 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
20398 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20400 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20402 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
20403 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
20404 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20405 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20407 if (r
->in
.buffer
) {
20408 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20411 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20414 if (flags
& NDR_OUT
) {
20415 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
20417 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20419 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20421 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20423 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20425 if (*r
->out
.info
) {
20426 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20428 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20430 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20431 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20432 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20440 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20442 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20444 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20450 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
20452 if (flags
& NDR_IN
) {
20454 if (flags
& NDR_OUT
) {
20455 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20457 return NDR_ERR_SUCCESS
;
20460 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
20462 if (flags
& NDR_IN
) {
20464 if (flags
& NDR_OUT
) {
20465 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20467 return NDR_ERR_SUCCESS
;
20470 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
20472 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
20474 if (flags
& NDR_SET_VALUES
) {
20475 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20477 if (flags
& NDR_IN
) {
20478 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
20482 if (flags
& NDR_OUT
) {
20483 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
20485 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20491 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
20493 if (flags
& NDR_IN
) {
20494 if (r
->in
.handle
== NULL
) {
20495 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20497 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20499 if (flags
& NDR_OUT
) {
20500 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20502 return NDR_ERR_SUCCESS
;
20505 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
20507 TALLOC_CTX
*_mem_save_handle_0
;
20508 if (flags
& NDR_IN
) {
20509 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20510 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20512 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20513 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20514 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20517 if (flags
& NDR_OUT
) {
20518 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20520 return NDR_ERR_SUCCESS
;
20523 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
20525 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
20527 if (flags
& NDR_SET_VALUES
) {
20528 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20530 if (flags
& NDR_IN
) {
20531 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
20533 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20535 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20539 if (flags
& NDR_OUT
) {
20540 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
20542 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20548 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
20550 if (flags
& NDR_IN
) {
20551 if (r
->in
.handle
== NULL
) {
20552 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20554 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20555 if (r
->in
.info_ctr
== NULL
) {
20556 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20558 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20559 if (r
->in
.devmode_ctr
== NULL
) {
20560 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20562 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20563 if (r
->in
.secdesc_ctr
== NULL
) {
20564 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20566 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20567 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20569 if (flags
& NDR_OUT
) {
20570 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20572 return NDR_ERR_SUCCESS
;
20575 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
20577 TALLOC_CTX
*_mem_save_handle_0
;
20578 TALLOC_CTX
*_mem_save_info_ctr_0
;
20579 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20580 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20581 if (flags
& NDR_IN
) {
20582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20583 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20585 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20587 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20589 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20590 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20592 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20593 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20594 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20596 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20597 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20599 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20601 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20604 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20606 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20608 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20610 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20612 if (flags
& NDR_OUT
) {
20613 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20615 return NDR_ERR_SUCCESS
;
20618 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
20620 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
20622 if (flags
& NDR_SET_VALUES
) {
20623 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20625 if (flags
& NDR_IN
) {
20626 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
20628 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20630 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20632 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20634 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20636 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20638 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20640 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20642 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20644 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
20647 if (flags
& NDR_OUT
) {
20648 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
20650 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20656 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
20658 if (flags
& NDR_IN
) {
20659 if (r
->in
.handle
== NULL
) {
20660 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20662 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20664 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20665 if (r
->in
.buffer
) {
20666 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20670 if (flags
& NDR_OUT
) {
20671 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20674 struct ndr_push
*_ndr_info
;
20675 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20676 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20677 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20678 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20681 if (r
->out
.needed
== NULL
) {
20682 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20685 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20687 return NDR_ERR_SUCCESS
;
20690 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
20692 uint32_t _ptr_buffer
;
20693 uint32_t _ptr_info
;
20694 TALLOC_CTX
*_mem_save_handle_0
;
20695 TALLOC_CTX
*_mem_save_buffer_0
;
20696 TALLOC_CTX
*_mem_save_info_0
;
20697 TALLOC_CTX
*_mem_save_needed_0
;
20698 if (flags
& NDR_IN
) {
20699 ZERO_STRUCT(r
->out
);
20701 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20702 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20704 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20705 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20706 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20708 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20709 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20711 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20713 r
->in
.buffer
= NULL
;
20715 if (r
->in
.buffer
) {
20716 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20717 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20721 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20722 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20723 ZERO_STRUCTP(r
->out
.needed
);
20725 if (flags
& NDR_OUT
) {
20726 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20728 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20730 r
->out
.info
= NULL
;
20733 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20734 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20736 struct ndr_pull
*_ndr_info
;
20737 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20738 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20739 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20740 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20744 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20745 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20747 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20748 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20751 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20753 return NDR_ERR_SUCCESS
;
20756 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
20758 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
20760 if (flags
& NDR_SET_VALUES
) {
20761 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20763 if (flags
& NDR_IN
) {
20764 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
20766 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20768 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20770 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20771 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20773 if (r
->in
.buffer
) {
20774 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20777 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20780 if (flags
& NDR_OUT
) {
20781 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
20783 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20786 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20787 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
20790 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20792 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20794 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20800 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20802 if (flags
& NDR_IN
) {
20803 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20804 if (r
->in
.servername
) {
20805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20808 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20810 if (r
->in
.info_ctr
== NULL
) {
20811 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20813 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20815 if (flags
& NDR_OUT
) {
20816 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20818 return NDR_ERR_SUCCESS
;
20821 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
20823 uint32_t _ptr_servername
;
20824 uint32_t size_servername_1
= 0;
20825 uint32_t length_servername_1
= 0;
20826 TALLOC_CTX
*_mem_save_servername_0
;
20827 TALLOC_CTX
*_mem_save_info_ctr_0
;
20828 if (flags
& NDR_IN
) {
20829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20830 if (_ptr_servername
) {
20831 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20833 r
->in
.servername
= NULL
;
20835 if (r
->in
.servername
) {
20836 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20837 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20838 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20839 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20840 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
20841 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
20842 if (length_servername_1
> size_servername_1
) {
20843 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
20845 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
20846 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
20847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20849 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20850 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20852 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20854 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20857 if (flags
& NDR_OUT
) {
20858 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20860 return NDR_ERR_SUCCESS
;
20863 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20865 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
20867 if (flags
& NDR_SET_VALUES
) {
20868 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20870 if (flags
& NDR_IN
) {
20871 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
20873 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20875 if (r
->in
.servername
) {
20876 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20879 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20881 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20885 if (flags
& NDR_OUT
) {
20886 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
20888 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20894 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
20896 if (flags
& NDR_IN
) {
20897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20898 if (r
->in
.server
) {
20899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20902 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20905 if (r
->in
.environment
) {
20906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20909 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20912 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20913 if (r
->in
.buffer
) {
20914 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20918 if (flags
& NDR_OUT
) {
20919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20921 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20923 if (r
->out
.needed
== NULL
) {
20924 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20927 if (r
->out
.count
== NULL
) {
20928 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20931 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20933 return NDR_ERR_SUCCESS
;
20936 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
20938 uint32_t _ptr_server
;
20939 uint32_t size_server_1
= 0;
20940 uint32_t length_server_1
= 0;
20941 uint32_t _ptr_environment
;
20942 uint32_t size_environment_1
= 0;
20943 uint32_t length_environment_1
= 0;
20944 uint32_t _ptr_buffer
;
20945 uint32_t _ptr_info
;
20946 TALLOC_CTX
*_mem_save_server_0
;
20947 TALLOC_CTX
*_mem_save_environment_0
;
20948 TALLOC_CTX
*_mem_save_buffer_0
;
20949 TALLOC_CTX
*_mem_save_info_0
;
20950 TALLOC_CTX
*_mem_save_needed_0
;
20951 TALLOC_CTX
*_mem_save_count_0
;
20952 if (flags
& NDR_IN
) {
20953 ZERO_STRUCT(r
->out
);
20955 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20957 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20959 r
->in
.server
= NULL
;
20961 if (r
->in
.server
) {
20962 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20963 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20964 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20965 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20966 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
20967 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
20968 if (length_server_1
> size_server_1
) {
20969 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
20971 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
20972 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
20973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20975 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20976 if (_ptr_environment
) {
20977 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20979 r
->in
.environment
= NULL
;
20981 if (r
->in
.environment
) {
20982 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20983 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20984 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20985 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20986 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
20987 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
20988 if (length_environment_1
> size_environment_1
) {
20989 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
20991 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
20992 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
20993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20998 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21000 r
->in
.buffer
= NULL
;
21002 if (r
->in
.buffer
) {
21003 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21005 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21009 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21010 ZERO_STRUCTP(r
->out
.needed
);
21011 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21012 ZERO_STRUCTP(r
->out
.count
);
21014 if (flags
& NDR_OUT
) {
21015 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21017 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21019 r
->out
.info
= NULL
;
21022 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21023 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21024 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21027 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21028 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21030 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21031 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21032 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21034 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21035 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21037 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21038 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21039 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21041 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21043 return NDR_ERR_SUCCESS
;
21046 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
21048 uint32_t cntr_info_0
;
21049 if (flags
& NDR_IN
) {
21050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21053 if (flags
& NDR_OUT
) {
21054 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21055 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21056 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21058 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21059 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21062 return NDR_ERR_SUCCESS
;
21065 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
21067 uint32_t size_info_0
= 0;
21068 uint32_t cntr_info_0
;
21069 TALLOC_CTX
*_mem_save_info_0
;
21070 if (flags
& NDR_IN
) {
21071 ZERO_STRUCT(r
->out
);
21073 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21076 if (flags
& NDR_OUT
) {
21077 size_info_0
= r
->in
.count
;
21078 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
21079 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21080 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21081 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21082 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21083 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21085 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21086 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21090 return NDR_ERR_SUCCESS
;
21093 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
21095 uint32_t cntr_info_2
;
21096 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
21098 if (flags
& NDR_SET_VALUES
) {
21099 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21101 if (flags
& NDR_IN
) {
21102 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
21104 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21106 if (r
->in
.server
) {
21107 ndr_print_string(ndr
, "server", r
->in
.server
);
21110 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21112 if (r
->in
.environment
) {
21113 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21116 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21117 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21119 if (r
->in
.buffer
) {
21120 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21123 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21126 if (flags
& NDR_OUT
) {
21127 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
21129 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21131 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21133 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21135 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21137 if (*r
->out
.info
) {
21138 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21140 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21142 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21143 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21144 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21152 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21154 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21156 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21162 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21164 if (flags
& NDR_IN
) {
21166 if (flags
& NDR_OUT
) {
21167 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21169 return NDR_ERR_SUCCESS
;
21172 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
21174 if (flags
& NDR_IN
) {
21176 if (flags
& NDR_OUT
) {
21177 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21179 return NDR_ERR_SUCCESS
;
21182 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21184 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
21186 if (flags
& NDR_SET_VALUES
) {
21187 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21189 if (flags
& NDR_IN
) {
21190 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
21194 if (flags
& NDR_OUT
) {
21195 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
21197 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21203 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21205 if (flags
& NDR_IN
) {
21206 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21207 if (r
->in
.server
) {
21208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21211 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21213 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21214 if (r
->in
.environment
) {
21215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21218 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21221 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21222 if (r
->in
.buffer
) {
21223 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21227 if (flags
& NDR_OUT
) {
21228 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21231 struct ndr_push
*_ndr_info
;
21232 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21233 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21234 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21235 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21238 if (r
->out
.needed
== NULL
) {
21239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21242 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21244 return NDR_ERR_SUCCESS
;
21247 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
21249 uint32_t _ptr_server
;
21250 uint32_t size_server_1
= 0;
21251 uint32_t length_server_1
= 0;
21252 uint32_t _ptr_environment
;
21253 uint32_t size_environment_1
= 0;
21254 uint32_t length_environment_1
= 0;
21255 uint32_t _ptr_buffer
;
21256 uint32_t _ptr_info
;
21257 TALLOC_CTX
*_mem_save_server_0
;
21258 TALLOC_CTX
*_mem_save_environment_0
;
21259 TALLOC_CTX
*_mem_save_buffer_0
;
21260 TALLOC_CTX
*_mem_save_info_0
;
21261 TALLOC_CTX
*_mem_save_needed_0
;
21262 if (flags
& NDR_IN
) {
21263 ZERO_STRUCT(r
->out
);
21265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21267 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21269 r
->in
.server
= NULL
;
21271 if (r
->in
.server
) {
21272 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21273 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21276 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21277 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21278 if (length_server_1
> size_server_1
) {
21279 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21281 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21282 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
21283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21286 if (_ptr_environment
) {
21287 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21289 r
->in
.environment
= NULL
;
21291 if (r
->in
.environment
) {
21292 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21293 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21296 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
21297 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
21298 if (length_environment_1
> size_environment_1
) {
21299 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
21301 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
21302 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
21303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21306 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21308 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21310 r
->in
.buffer
= NULL
;
21312 if (r
->in
.buffer
) {
21313 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21314 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21319 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21320 ZERO_STRUCTP(r
->out
.needed
);
21322 if (flags
& NDR_OUT
) {
21323 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21325 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21327 r
->out
.info
= NULL
;
21330 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21331 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21333 struct ndr_pull
*_ndr_info
;
21334 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21335 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21336 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21337 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21341 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21342 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21344 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21345 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21348 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21350 return NDR_ERR_SUCCESS
;
21353 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21355 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
21357 if (flags
& NDR_SET_VALUES
) {
21358 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21360 if (flags
& NDR_IN
) {
21361 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
21363 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21365 if (r
->in
.server
) {
21366 ndr_print_string(ndr
, "server", r
->in
.server
);
21369 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21371 if (r
->in
.environment
) {
21372 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21375 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21376 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21378 if (r
->in
.buffer
) {
21379 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21382 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21385 if (flags
& NDR_OUT
) {
21386 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
21388 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21391 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21392 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
21395 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21397 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21399 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21405 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21407 if (flags
& NDR_IN
) {
21408 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21409 if (r
->in
.server
) {
21410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21413 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21418 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21422 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21424 if (flags
& NDR_OUT
) {
21425 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21427 return NDR_ERR_SUCCESS
;
21430 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
21432 uint32_t _ptr_server
;
21433 uint32_t size_server_1
= 0;
21434 uint32_t length_server_1
= 0;
21435 uint32_t size_architecture_0
= 0;
21436 uint32_t length_architecture_0
= 0;
21437 uint32_t size_driver_0
= 0;
21438 uint32_t length_driver_0
= 0;
21439 TALLOC_CTX
*_mem_save_server_0
;
21440 if (flags
& NDR_IN
) {
21441 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21443 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21445 r
->in
.server
= NULL
;
21447 if (r
->in
.server
) {
21448 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21449 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21450 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21451 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21452 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21453 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21454 if (length_server_1
> size_server_1
) {
21455 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21457 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21458 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
21459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21462 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21463 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
21464 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
21465 if (length_architecture_0
> size_architecture_0
) {
21466 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
21468 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
21469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
21470 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
21471 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
21472 size_driver_0
= ndr_get_array_size(ndr
, &r
->in
.driver
);
21473 length_driver_0
= ndr_get_array_length(ndr
, &r
->in
.driver
);
21474 if (length_driver_0
> size_driver_0
) {
21475 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_0
, length_driver_0
);
21477 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_0
, sizeof(uint16_t)));
21478 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, length_driver_0
, sizeof(uint16_t), CH_UTF16
));
21480 if (flags
& NDR_OUT
) {
21481 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21483 return NDR_ERR_SUCCESS
;
21486 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21488 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
21490 if (flags
& NDR_SET_VALUES
) {
21491 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21493 if (flags
& NDR_IN
) {
21494 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
21496 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21498 if (r
->in
.server
) {
21499 ndr_print_string(ndr
, "server", r
->in
.server
);
21502 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21503 ndr_print_string(ndr
, "driver", r
->in
.driver
);
21506 if (flags
& NDR_OUT
) {
21507 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
21509 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21515 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21517 if (flags
& NDR_IN
) {
21518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21519 if (r
->in
.server
) {
21520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21523 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21532 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
));
21533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21536 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
));
21538 if (flags
& NDR_OUT
) {
21539 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21541 return NDR_ERR_SUCCESS
;
21544 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
21546 uint32_t _ptr_server
;
21547 uint32_t size_server_1
= 0;
21548 uint32_t length_server_1
= 0;
21549 uint32_t size_architecture_0
= 0;
21550 uint32_t length_architecture_0
= 0;
21551 uint32_t size_path_name_0
= 0;
21552 uint32_t length_path_name_0
= 0;
21553 uint32_t size_print_processor_name_0
= 0;
21554 uint32_t length_print_processor_name_0
= 0;
21555 TALLOC_CTX
*_mem_save_server_0
;
21556 if (flags
& NDR_IN
) {
21557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21559 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21561 r
->in
.server
= NULL
;
21563 if (r
->in
.server
) {
21564 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21565 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21568 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21569 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21570 if (length_server_1
> size_server_1
) {
21571 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21573 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21574 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
21575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21577 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21578 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21579 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
21580 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
21581 if (length_architecture_0
> size_architecture_0
) {
21582 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
21584 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
21585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
21586 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
21587 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
21588 size_path_name_0
= ndr_get_array_size(ndr
, &r
->in
.path_name
);
21589 length_path_name_0
= ndr_get_array_length(ndr
, &r
->in
.path_name
);
21590 if (length_path_name_0
> size_path_name_0
) {
21591 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_path_name_0
, length_path_name_0
);
21593 NDR_CHECK(ndr_check_string_terminator(ndr
, length_path_name_0
, sizeof(uint16_t)));
21594 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.path_name
, length_path_name_0
, sizeof(uint16_t), CH_UTF16
));
21595 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
21596 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
21597 size_print_processor_name_0
= ndr_get_array_size(ndr
, &r
->in
.print_processor_name
);
21598 length_print_processor_name_0
= ndr_get_array_length(ndr
, &r
->in
.print_processor_name
);
21599 if (length_print_processor_name_0
> size_print_processor_name_0
) {
21600 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_name_0
, length_print_processor_name_0
);
21602 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_name_0
, sizeof(uint16_t)));
21603 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, length_print_processor_name_0
, sizeof(uint16_t), CH_UTF16
));
21605 if (flags
& NDR_OUT
) {
21606 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21608 return NDR_ERR_SUCCESS
;
21611 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21613 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
21615 if (flags
& NDR_SET_VALUES
) {
21616 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21618 if (flags
& NDR_IN
) {
21619 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
21621 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21623 if (r
->in
.server
) {
21624 ndr_print_string(ndr
, "server", r
->in
.server
);
21627 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21628 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
21629 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
21632 if (flags
& NDR_OUT
) {
21633 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
21635 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21641 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
21643 if (flags
& NDR_IN
) {
21644 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
21645 if (r
->in
.servername
) {
21646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21649 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21651 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21652 if (r
->in
.environment
) {
21653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21656 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21659 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21660 if (r
->in
.buffer
) {
21661 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21665 if (flags
& NDR_OUT
) {
21666 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21668 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21670 if (r
->out
.needed
== NULL
) {
21671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21674 if (r
->out
.count
== NULL
) {
21675 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21678 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21680 return NDR_ERR_SUCCESS
;
21683 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
21685 uint32_t _ptr_servername
;
21686 uint32_t size_servername_1
= 0;
21687 uint32_t length_servername_1
= 0;
21688 uint32_t _ptr_environment
;
21689 uint32_t size_environment_1
= 0;
21690 uint32_t length_environment_1
= 0;
21691 uint32_t _ptr_buffer
;
21692 uint32_t _ptr_info
;
21693 TALLOC_CTX
*_mem_save_servername_0
;
21694 TALLOC_CTX
*_mem_save_environment_0
;
21695 TALLOC_CTX
*_mem_save_buffer_0
;
21696 TALLOC_CTX
*_mem_save_info_0
;
21697 TALLOC_CTX
*_mem_save_needed_0
;
21698 TALLOC_CTX
*_mem_save_count_0
;
21699 if (flags
& NDR_IN
) {
21700 ZERO_STRUCT(r
->out
);
21702 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
21703 if (_ptr_servername
) {
21704 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
21706 r
->in
.servername
= NULL
;
21708 if (r
->in
.servername
) {
21709 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21710 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
21711 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
21712 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
21713 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
21714 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
21715 if (length_servername_1
> size_servername_1
) {
21716 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
21718 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
21719 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
21720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
21722 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21723 if (_ptr_environment
) {
21724 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21726 r
->in
.environment
= NULL
;
21728 if (r
->in
.environment
) {
21729 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21730 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21731 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21732 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21733 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
21734 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
21735 if (length_environment_1
> size_environment_1
) {
21736 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
21738 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
21739 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
21740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21745 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21747 r
->in
.buffer
= NULL
;
21749 if (r
->in
.buffer
) {
21750 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21751 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21752 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21756 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21757 ZERO_STRUCTP(r
->out
.needed
);
21758 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21759 ZERO_STRUCTP(r
->out
.count
);
21761 if (flags
& NDR_OUT
) {
21762 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21764 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21766 r
->out
.info
= NULL
;
21769 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21770 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21771 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21774 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21775 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21777 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21778 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21781 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21782 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21784 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21785 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21788 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21790 return NDR_ERR_SUCCESS
;
21793 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
21795 uint32_t cntr_info_0
;
21796 if (flags
& NDR_IN
) {
21797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21800 if (flags
& NDR_OUT
) {
21801 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21802 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21803 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21805 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21806 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21809 return NDR_ERR_SUCCESS
;
21812 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
21814 uint32_t size_info_0
= 0;
21815 uint32_t cntr_info_0
;
21816 TALLOC_CTX
*_mem_save_info_0
;
21817 if (flags
& NDR_IN
) {
21818 ZERO_STRUCT(r
->out
);
21820 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21823 if (flags
& NDR_OUT
) {
21824 size_info_0
= r
->in
.count
;
21825 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
21826 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21827 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21828 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21829 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21830 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21832 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21833 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21837 return NDR_ERR_SUCCESS
;
21840 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
21842 uint32_t cntr_info_2
;
21843 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
21845 if (flags
& NDR_SET_VALUES
) {
21846 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21848 if (flags
& NDR_IN
) {
21849 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
21851 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21853 if (r
->in
.servername
) {
21854 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21857 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21859 if (r
->in
.environment
) {
21860 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21863 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21864 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21866 if (r
->in
.buffer
) {
21867 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21870 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21873 if (flags
& NDR_OUT
) {
21874 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
21876 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21878 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21880 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21882 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21884 if (*r
->out
.info
) {
21885 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21887 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21889 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21890 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21891 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21899 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21901 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21903 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21909 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
21911 if (flags
& NDR_IN
) {
21912 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21913 if (r
->in
.server
) {
21914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21917 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21920 if (r
->in
.environment
) {
21921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21924 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21927 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21928 if (r
->in
.buffer
) {
21929 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21933 if (flags
& NDR_OUT
) {
21934 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21937 struct ndr_push
*_ndr_info
;
21938 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21939 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21940 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21941 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21944 if (r
->out
.needed
== NULL
) {
21945 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21948 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21950 return NDR_ERR_SUCCESS
;
21953 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
21955 uint32_t _ptr_server
;
21956 uint32_t size_server_1
= 0;
21957 uint32_t length_server_1
= 0;
21958 uint32_t _ptr_environment
;
21959 uint32_t size_environment_1
= 0;
21960 uint32_t length_environment_1
= 0;
21961 uint32_t _ptr_buffer
;
21962 uint32_t _ptr_info
;
21963 TALLOC_CTX
*_mem_save_server_0
;
21964 TALLOC_CTX
*_mem_save_environment_0
;
21965 TALLOC_CTX
*_mem_save_buffer_0
;
21966 TALLOC_CTX
*_mem_save_info_0
;
21967 TALLOC_CTX
*_mem_save_needed_0
;
21968 if (flags
& NDR_IN
) {
21969 ZERO_STRUCT(r
->out
);
21971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21973 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21975 r
->in
.server
= NULL
;
21977 if (r
->in
.server
) {
21978 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21979 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21982 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21983 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21984 if (length_server_1
> size_server_1
) {
21985 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21987 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21988 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
21989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21991 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21992 if (_ptr_environment
) {
21993 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21995 r
->in
.environment
= NULL
;
21997 if (r
->in
.environment
) {
21998 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21999 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22000 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22001 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22002 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
22003 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
22004 if (length_environment_1
> size_environment_1
) {
22005 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
22007 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
22008 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
22009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22011 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22014 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22016 r
->in
.buffer
= NULL
;
22018 if (r
->in
.buffer
) {
22019 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22020 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22021 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22024 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22025 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22026 ZERO_STRUCTP(r
->out
.needed
);
22028 if (flags
& NDR_OUT
) {
22029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22031 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22033 r
->out
.info
= NULL
;
22036 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22037 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22039 struct ndr_pull
*_ndr_info
;
22040 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22041 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22042 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22043 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22047 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22048 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22050 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22051 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22052 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22054 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22056 return NDR_ERR_SUCCESS
;
22059 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22061 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
22063 if (flags
& NDR_SET_VALUES
) {
22064 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22066 if (flags
& NDR_IN
) {
22067 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
22069 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22071 if (r
->in
.server
) {
22072 ndr_print_string(ndr
, "server", r
->in
.server
);
22075 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22077 if (r
->in
.environment
) {
22078 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22081 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22082 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22084 if (r
->in
.buffer
) {
22085 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22088 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22091 if (flags
& NDR_OUT
) {
22092 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
22094 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22097 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22098 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
22101 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22103 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22105 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22111 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*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
, r
->in
.level
));
22119 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22120 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22122 if (flags
& NDR_OUT
) {
22123 if (r
->out
.job_id
== NULL
) {
22124 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
22127 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22129 return NDR_ERR_SUCCESS
;
22132 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
22134 TALLOC_CTX
*_mem_save_handle_0
;
22135 TALLOC_CTX
*_mem_save_job_id_0
;
22136 if (flags
& NDR_IN
) {
22137 ZERO_STRUCT(r
->out
);
22139 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22140 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22142 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22143 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22144 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22146 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22147 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22148 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22149 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22150 ZERO_STRUCTP(r
->out
.job_id
);
22152 if (flags
& NDR_OUT
) {
22153 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22154 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22156 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22157 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
22158 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
22159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
22160 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22162 return NDR_ERR_SUCCESS
;
22165 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22167 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
22169 if (flags
& NDR_SET_VALUES
) {
22170 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22172 if (flags
& NDR_IN
) {
22173 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
22175 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22177 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22179 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22180 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22181 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
22184 if (flags
& NDR_OUT
) {
22185 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
22187 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
22189 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
22191 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22197 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22199 if (flags
& NDR_IN
) {
22200 if (r
->in
.handle
== NULL
) {
22201 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22203 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22205 if (flags
& NDR_OUT
) {
22206 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22208 return NDR_ERR_SUCCESS
;
22211 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
22213 TALLOC_CTX
*_mem_save_handle_0
;
22214 if (flags
& NDR_IN
) {
22215 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22216 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22218 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22219 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22220 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22223 if (flags
& NDR_OUT
) {
22224 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22226 return NDR_ERR_SUCCESS
;
22229 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22231 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
22233 if (flags
& NDR_SET_VALUES
) {
22234 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22236 if (flags
& NDR_IN
) {
22237 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
22239 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22241 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22245 if (flags
& NDR_OUT
) {
22246 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
22248 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22254 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
22256 if (flags
& NDR_IN
) {
22257 if (r
->in
.handle
== NULL
) {
22258 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22260 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22261 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
22262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
22264 if (flags
& NDR_OUT
) {
22265 if (r
->out
.num_written
== NULL
) {
22266 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
22269 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22271 return NDR_ERR_SUCCESS
;
22274 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
22276 TALLOC_CTX
*_mem_save_handle_0
;
22277 TALLOC_CTX
*_mem_save_num_written_0
;
22278 if (flags
& NDR_IN
) {
22279 ZERO_STRUCT(r
->out
);
22281 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22282 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22284 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22285 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22286 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22288 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
22289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
22290 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22291 ZERO_STRUCTP(r
->out
.num_written
);
22293 if (flags
& NDR_OUT
) {
22294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22295 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22297 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22298 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
22299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
22300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
22301 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22303 return NDR_ERR_SUCCESS
;
22306 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
22308 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
22310 if (flags
& NDR_SET_VALUES
) {
22311 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22313 if (flags
& NDR_IN
) {
22314 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
22316 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22318 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22320 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
22321 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
22324 if (flags
& NDR_OUT
) {
22325 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
22327 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
22329 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
22331 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22337 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22339 if (flags
& NDR_IN
) {
22340 if (r
->in
.handle
== NULL
) {
22341 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22343 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22345 if (flags
& NDR_OUT
) {
22346 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22348 return NDR_ERR_SUCCESS
;
22351 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
22353 TALLOC_CTX
*_mem_save_handle_0
;
22354 if (flags
& NDR_IN
) {
22355 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22356 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22358 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22359 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22360 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22363 if (flags
& NDR_OUT
) {
22364 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22366 return NDR_ERR_SUCCESS
;
22369 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22371 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
22373 if (flags
& NDR_SET_VALUES
) {
22374 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22376 if (flags
& NDR_IN
) {
22377 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
22379 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22381 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22385 if (flags
& NDR_OUT
) {
22386 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
22388 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22394 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
22396 if (flags
& NDR_IN
) {
22397 if (r
->in
.handle
== NULL
) {
22398 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22400 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22402 if (flags
& NDR_OUT
) {
22403 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22405 return NDR_ERR_SUCCESS
;
22408 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
22410 TALLOC_CTX
*_mem_save_handle_0
;
22411 if (flags
& NDR_IN
) {
22412 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22413 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22415 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22416 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22417 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22420 if (flags
& NDR_OUT
) {
22421 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22423 return NDR_ERR_SUCCESS
;
22426 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
22428 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
22430 if (flags
& NDR_SET_VALUES
) {
22431 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22433 if (flags
& NDR_IN
) {
22434 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
22436 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22438 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22442 if (flags
& NDR_OUT
) {
22443 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
22445 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22451 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
22453 if (flags
& NDR_IN
) {
22454 if (r
->in
.handle
== NULL
) {
22455 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22457 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22460 if (flags
& NDR_OUT
) {
22461 if (r
->out
.data
== NULL
) {
22462 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22465 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
22466 if (r
->out
._data_size
== NULL
) {
22467 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
22470 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22472 return NDR_ERR_SUCCESS
;
22475 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
22477 uint32_t size_data_1
= 0;
22478 TALLOC_CTX
*_mem_save_handle_0
;
22479 TALLOC_CTX
*_mem_save__data_size_0
;
22480 if (flags
& NDR_IN
) {
22481 ZERO_STRUCT(r
->out
);
22483 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22484 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22486 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22487 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22488 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
22491 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
22492 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
22493 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22494 ZERO_STRUCTP(r
->out
._data_size
);
22496 if (flags
& NDR_OUT
) {
22497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
22498 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
22499 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22500 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
22502 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
22503 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22504 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22506 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22507 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
22508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
22509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
22510 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22512 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
22515 return NDR_ERR_SUCCESS
;
22518 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
22520 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
22522 if (flags
& NDR_SET_VALUES
) {
22523 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22525 if (flags
& NDR_IN
) {
22526 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
22528 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22530 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22532 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
22535 if (flags
& NDR_OUT
) {
22536 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
22538 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22540 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
22542 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
22544 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
22546 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22552 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22554 if (flags
& NDR_IN
) {
22555 if (r
->in
.handle
== NULL
) {
22556 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22558 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22560 if (flags
& NDR_OUT
) {
22561 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22563 return NDR_ERR_SUCCESS
;
22566 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
22568 TALLOC_CTX
*_mem_save_handle_0
;
22569 if (flags
& NDR_IN
) {
22570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22571 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22573 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22574 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22575 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22578 if (flags
& NDR_OUT
) {
22579 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22581 return NDR_ERR_SUCCESS
;
22584 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22586 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
22588 if (flags
& NDR_SET_VALUES
) {
22589 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22591 if (flags
& NDR_IN
) {
22592 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
22594 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22596 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22600 if (flags
& NDR_OUT
) {
22601 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
22603 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22609 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
22611 if (flags
& NDR_IN
) {
22612 if (r
->in
.handle
== NULL
) {
22613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22615 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22618 if (r
->in
.buffer
) {
22619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22620 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
22622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22624 if (flags
& NDR_OUT
) {
22625 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
22626 if (r
->out
.buffer
) {
22627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22628 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
22630 if (r
->out
.needed
== NULL
) {
22631 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22634 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22636 return NDR_ERR_SUCCESS
;
22639 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
22641 uint32_t _ptr_buffer
;
22642 uint32_t size_buffer_1
= 0;
22643 TALLOC_CTX
*_mem_save_handle_0
;
22644 TALLOC_CTX
*_mem_save_buffer_0
;
22645 TALLOC_CTX
*_mem_save_needed_0
;
22646 if (flags
& NDR_IN
) {
22647 ZERO_STRUCT(r
->out
);
22649 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22650 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22652 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22653 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22654 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22657 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22659 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22661 r
->in
.buffer
= NULL
;
22663 if (r
->in
.buffer
) {
22664 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22665 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22666 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
22667 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
22668 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
22669 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
22670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22673 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22674 ZERO_STRUCTP(r
->out
.needed
);
22675 if (r
->in
.buffer
) {
22676 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
22679 if (flags
& NDR_OUT
) {
22680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22682 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
22684 r
->out
.buffer
= NULL
;
22686 if (r
->out
.buffer
) {
22687 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22688 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
22689 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
22690 size_buffer_1
= ndr_get_array_size(ndr
, &r
->out
.buffer
);
22691 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, size_buffer_1
);
22692 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, size_buffer_1
));
22693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22695 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22696 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22698 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22699 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22700 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22702 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22703 if (r
->out
.buffer
) {
22704 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
22707 return NDR_ERR_SUCCESS
;
22710 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
22712 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
22714 if (flags
& NDR_SET_VALUES
) {
22715 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22717 if (flags
& NDR_IN
) {
22718 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
22720 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22722 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22724 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22725 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22727 if (r
->in
.buffer
) {
22728 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
22731 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22734 if (flags
& NDR_OUT
) {
22735 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
22737 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
22739 if (r
->out
.buffer
) {
22740 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
22743 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22745 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22747 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22753 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
22755 if (flags
& NDR_IN
) {
22756 if (r
->in
.handle
== NULL
) {
22757 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22759 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
22762 if (flags
& NDR_OUT
) {
22763 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22765 return NDR_ERR_SUCCESS
;
22768 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
22770 TALLOC_CTX
*_mem_save_handle_0
;
22771 if (flags
& NDR_IN
) {
22772 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22773 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22775 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22776 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22777 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
22781 if (flags
& NDR_OUT
) {
22782 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22784 return NDR_ERR_SUCCESS
;
22787 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
22789 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
22791 if (flags
& NDR_SET_VALUES
) {
22792 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22794 if (flags
& NDR_IN
) {
22795 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
22797 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22799 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22801 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
22804 if (flags
& NDR_OUT
) {
22805 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
22807 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22813 static enum ndr_err_code
ndr_push_spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterData
*r
)
22815 if (flags
& NDR_IN
) {
22816 if (r
->in
.handle
== NULL
) {
22817 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22819 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22823 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
));
22824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22826 if (flags
& NDR_OUT
) {
22827 if (r
->out
.type
== NULL
) {
22828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22830 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
22831 if (r
->out
.data
== NULL
) {
22832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22835 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
22836 if (r
->out
.needed
== NULL
) {
22837 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22840 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22842 return NDR_ERR_SUCCESS
;
22845 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterData
*r
)
22847 uint32_t size_value_name_0
= 0;
22848 uint32_t length_value_name_0
= 0;
22849 uint32_t size_data_1
= 0;
22850 TALLOC_CTX
*_mem_save_handle_0
;
22851 TALLOC_CTX
*_mem_save_type_0
;
22852 TALLOC_CTX
*_mem_save_needed_0
;
22853 if (flags
& NDR_IN
) {
22854 ZERO_STRUCT(r
->out
);
22856 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22857 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22859 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22860 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22861 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22863 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22864 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22865 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
22866 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
22867 if (length_value_name_0
> size_value_name_0
) {
22868 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
22870 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
22871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
22872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22873 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22874 ZERO_STRUCTP(r
->out
.type
);
22875 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
22876 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
22877 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22878 ZERO_STRUCTP(r
->out
.needed
);
22880 if (flags
& NDR_OUT
) {
22881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22882 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22884 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22885 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
22886 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
22887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
22888 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
22889 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
22890 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22891 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
22893 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
22894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22895 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22897 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22898 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22901 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22903 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
22906 return NDR_ERR_SUCCESS
;
22909 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
22911 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
22913 if (flags
& NDR_SET_VALUES
) {
22914 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22916 if (flags
& NDR_IN
) {
22917 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
22919 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22921 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22923 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
22924 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22927 if (flags
& NDR_OUT
) {
22928 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
22930 ndr_print_ptr(ndr
, "type", r
->out
.type
);
22932 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
22934 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22936 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
22938 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22940 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22942 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22948 static enum ndr_err_code
ndr_push_spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterData
*r
)
22950 if (flags
& NDR_IN
) {
22951 if (r
->in
.handle
== NULL
) {
22952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22954 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22958 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
));
22959 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22960 if (r
->in
.data
== NULL
) {
22961 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22964 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
22965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22967 if (flags
& NDR_OUT
) {
22968 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22970 return NDR_ERR_SUCCESS
;
22973 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
22975 uint32_t size_value_name_0
= 0;
22976 uint32_t length_value_name_0
= 0;
22977 uint32_t size_data_1
= 0;
22978 TALLOC_CTX
*_mem_save_handle_0
;
22979 if (flags
& NDR_IN
) {
22980 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22981 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22983 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22984 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22985 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22987 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22988 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22989 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
22990 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
22991 if (length_value_name_0
> size_value_name_0
) {
22992 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
22994 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
22995 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
22996 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
22997 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
22998 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
22999 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23000 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
23002 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, size_data_1
));
23003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23005 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
23008 if (flags
& NDR_OUT
) {
23009 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23011 return NDR_ERR_SUCCESS
;
23014 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
23016 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
23018 if (flags
& NDR_SET_VALUES
) {
23019 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23021 if (flags
& NDR_IN
) {
23022 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
23024 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23026 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23028 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23029 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
23030 ndr_print_ptr(ndr
, "data", r
->in
.data
);
23032 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
23034 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23037 if (flags
& NDR_OUT
) {
23038 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
23040 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23046 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23048 if (flags
& NDR_IN
) {
23050 if (flags
& NDR_OUT
) {
23051 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23053 return NDR_ERR_SUCCESS
;
23056 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
23058 if (flags
& NDR_IN
) {
23060 if (flags
& NDR_OUT
) {
23061 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23063 return NDR_ERR_SUCCESS
;
23066 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23068 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
23070 if (flags
& NDR_SET_VALUES
) {
23071 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23073 if (flags
& NDR_IN
) {
23074 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
23078 if (flags
& NDR_OUT
) {
23079 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
23081 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23087 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
23089 if (flags
& NDR_IN
) {
23090 if (r
->in
.handle
== NULL
) {
23091 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23093 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23095 if (flags
& NDR_OUT
) {
23096 if (r
->out
.handle
== NULL
) {
23097 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23099 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23100 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23102 return NDR_ERR_SUCCESS
;
23105 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
23107 TALLOC_CTX
*_mem_save_handle_0
;
23108 if (flags
& NDR_IN
) {
23109 ZERO_STRUCT(r
->out
);
23111 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23112 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23114 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23115 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23116 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23118 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23119 *r
->out
.handle
= *r
->in
.handle
;
23121 if (flags
& NDR_OUT
) {
23122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23123 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23125 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23126 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23131 return NDR_ERR_SUCCESS
;
23134 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
23136 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
23138 if (flags
& NDR_SET_VALUES
) {
23139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23141 if (flags
& NDR_IN
) {
23142 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
23144 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23146 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23150 if (flags
& NDR_OUT
) {
23151 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
23153 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23155 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23157 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23163 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
23165 if (flags
& NDR_IN
) {
23166 if (r
->in
.handle
== NULL
) {
23167 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23169 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23171 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23172 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23174 if (flags
& NDR_OUT
) {
23175 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23177 return NDR_ERR_SUCCESS
;
23180 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
23182 TALLOC_CTX
*_mem_save_handle_0
;
23183 if (flags
& NDR_IN
) {
23184 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23185 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23187 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23188 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23189 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23192 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23193 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23195 if (flags
& NDR_OUT
) {
23196 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23198 return NDR_ERR_SUCCESS
;
23201 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
23203 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
23205 if (flags
& NDR_SET_VALUES
) {
23206 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23208 if (flags
& NDR_IN
) {
23209 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
23211 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23213 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23215 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23216 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23217 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23220 if (flags
& NDR_OUT
) {
23221 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
23223 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23229 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
23231 if (flags
& NDR_IN
) {
23232 if (r
->in
.handle
== NULL
) {
23233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23235 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23239 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
));
23241 if (flags
& NDR_OUT
) {
23242 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23244 return NDR_ERR_SUCCESS
;
23247 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
23249 uint32_t size_form_name_0
= 0;
23250 uint32_t length_form_name_0
= 0;
23251 TALLOC_CTX
*_mem_save_handle_0
;
23252 if (flags
& NDR_IN
) {
23253 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23254 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23256 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23257 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23258 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23259 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23261 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23262 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
23263 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
23264 if (length_form_name_0
> size_form_name_0
) {
23265 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
23267 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
23268 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
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_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
23278 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
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_DeleteForm");
23286 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23288 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23290 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23293 if (flags
& NDR_OUT
) {
23294 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
23296 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23302 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
23304 if (flags
& NDR_IN
) {
23305 if (r
->in
.handle
== NULL
) {
23306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23308 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23312 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
));
23313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23314 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23315 if (r
->in
.buffer
) {
23316 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23320 if (flags
& NDR_OUT
) {
23321 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23324 struct ndr_push
*_ndr_info
;
23325 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23326 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23327 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23328 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23331 if (r
->out
.needed
== NULL
) {
23332 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23335 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23337 return NDR_ERR_SUCCESS
;
23340 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
23342 uint32_t size_form_name_0
= 0;
23343 uint32_t length_form_name_0
= 0;
23344 uint32_t _ptr_buffer
;
23345 uint32_t _ptr_info
;
23346 TALLOC_CTX
*_mem_save_handle_0
;
23347 TALLOC_CTX
*_mem_save_buffer_0
;
23348 TALLOC_CTX
*_mem_save_info_0
;
23349 TALLOC_CTX
*_mem_save_needed_0
;
23350 if (flags
& NDR_IN
) {
23351 ZERO_STRUCT(r
->out
);
23353 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23354 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23356 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23357 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23358 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23362 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
23363 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
23364 if (length_form_name_0
> size_form_name_0
) {
23365 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
23367 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
23368 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
23369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23370 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23372 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23374 r
->in
.buffer
= NULL
;
23376 if (r
->in
.buffer
) {
23377 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23378 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23379 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23383 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23384 ZERO_STRUCTP(r
->out
.needed
);
23386 if (flags
& NDR_OUT
) {
23387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23389 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23391 r
->out
.info
= NULL
;
23394 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23395 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23397 struct ndr_pull
*_ndr_info
;
23398 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23399 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23400 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23401 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23405 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23406 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23408 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23409 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23412 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23414 return NDR_ERR_SUCCESS
;
23417 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
23419 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
23421 if (flags
& NDR_SET_VALUES
) {
23422 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23424 if (flags
& NDR_IN
) {
23425 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
23427 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23429 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23431 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23432 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23433 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23435 if (r
->in
.buffer
) {
23436 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23439 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23442 if (flags
& NDR_OUT
) {
23443 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
23445 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23448 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23449 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
23452 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23454 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23456 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23462 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
23464 if (flags
& NDR_IN
) {
23465 if (r
->in
.handle
== NULL
) {
23466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23468 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23472 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
));
23473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23474 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23475 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23477 if (flags
& NDR_OUT
) {
23478 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23480 return NDR_ERR_SUCCESS
;
23483 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
23485 uint32_t size_form_name_0
= 0;
23486 uint32_t length_form_name_0
= 0;
23487 TALLOC_CTX
*_mem_save_handle_0
;
23488 if (flags
& NDR_IN
) {
23489 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23490 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23492 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23493 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23494 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23496 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23497 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23498 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
23499 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
23500 if (length_form_name_0
> size_form_name_0
) {
23501 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
23503 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
23504 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
23505 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23506 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23507 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23509 if (flags
& NDR_OUT
) {
23510 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23512 return NDR_ERR_SUCCESS
;
23515 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
23517 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
23519 if (flags
& NDR_SET_VALUES
) {
23520 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23522 if (flags
& NDR_IN
) {
23523 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
23525 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23527 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23529 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23530 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23531 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23532 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23535 if (flags
& NDR_OUT
) {
23536 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
23538 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23544 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
23546 if (flags
& NDR_IN
) {
23547 if (r
->in
.handle
== NULL
) {
23548 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23550 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23553 if (r
->in
.buffer
) {
23554 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23558 if (flags
& NDR_OUT
) {
23559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23561 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23563 if (r
->out
.needed
== NULL
) {
23564 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23567 if (r
->out
.count
== NULL
) {
23568 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23571 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23573 return NDR_ERR_SUCCESS
;
23576 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
23578 uint32_t _ptr_buffer
;
23579 uint32_t _ptr_info
;
23580 TALLOC_CTX
*_mem_save_handle_0
;
23581 TALLOC_CTX
*_mem_save_buffer_0
;
23582 TALLOC_CTX
*_mem_save_info_0
;
23583 TALLOC_CTX
*_mem_save_needed_0
;
23584 TALLOC_CTX
*_mem_save_count_0
;
23585 if (flags
& NDR_IN
) {
23586 ZERO_STRUCT(r
->out
);
23588 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23589 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23591 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23592 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23593 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23595 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23598 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23600 r
->in
.buffer
= NULL
;
23602 if (r
->in
.buffer
) {
23603 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23605 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23609 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23610 ZERO_STRUCTP(r
->out
.needed
);
23611 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23612 ZERO_STRUCTP(r
->out
.count
);
23614 if (flags
& NDR_OUT
) {
23615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23617 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23619 r
->out
.info
= NULL
;
23622 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23623 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23624 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23627 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23628 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23630 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23631 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23634 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23635 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23637 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23641 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23643 return NDR_ERR_SUCCESS
;
23646 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
23648 uint32_t cntr_info_0
;
23649 if (flags
& NDR_IN
) {
23650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23653 if (flags
& NDR_OUT
) {
23654 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23655 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23656 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23658 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23659 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23662 return NDR_ERR_SUCCESS
;
23665 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
23667 uint32_t size_info_0
= 0;
23668 uint32_t cntr_info_0
;
23669 TALLOC_CTX
*_mem_save_info_0
;
23670 if (flags
& NDR_IN
) {
23671 ZERO_STRUCT(r
->out
);
23673 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23674 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23676 if (flags
& NDR_OUT
) {
23677 size_info_0
= r
->in
.count
;
23678 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
23679 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23680 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23681 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
23682 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23683 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23685 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
23686 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23690 return NDR_ERR_SUCCESS
;
23693 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
23695 uint32_t cntr_info_2
;
23696 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
23698 if (flags
& NDR_SET_VALUES
) {
23699 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23701 if (flags
& NDR_IN
) {
23702 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
23704 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23706 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23708 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23709 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23711 if (r
->in
.buffer
) {
23712 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23715 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23718 if (flags
& NDR_OUT
) {
23719 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
23721 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23723 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23725 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23727 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23729 if (*r
->out
.info
) {
23730 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23732 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23734 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23735 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23736 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23744 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23746 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23748 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23754 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
23756 if (flags
& NDR_IN
) {
23757 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23758 if (r
->in
.servername
) {
23759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23762 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23765 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23766 if (r
->in
.buffer
) {
23767 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23771 if (flags
& NDR_OUT
) {
23772 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23774 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23776 if (r
->out
.needed
== NULL
) {
23777 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23780 if (r
->out
.count
== NULL
) {
23781 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23784 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23786 return NDR_ERR_SUCCESS
;
23789 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
23791 uint32_t _ptr_servername
;
23792 uint32_t size_servername_1
= 0;
23793 uint32_t length_servername_1
= 0;
23794 uint32_t _ptr_buffer
;
23795 uint32_t _ptr_info
;
23796 TALLOC_CTX
*_mem_save_servername_0
;
23797 TALLOC_CTX
*_mem_save_buffer_0
;
23798 TALLOC_CTX
*_mem_save_info_0
;
23799 TALLOC_CTX
*_mem_save_needed_0
;
23800 TALLOC_CTX
*_mem_save_count_0
;
23801 if (flags
& NDR_IN
) {
23802 ZERO_STRUCT(r
->out
);
23804 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23805 if (_ptr_servername
) {
23806 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23808 r
->in
.servername
= NULL
;
23810 if (r
->in
.servername
) {
23811 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23812 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23813 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23814 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23815 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
23816 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
23817 if (length_servername_1
> size_servername_1
) {
23818 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
23820 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
23821 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
23822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23824 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23827 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23829 r
->in
.buffer
= NULL
;
23831 if (r
->in
.buffer
) {
23832 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23833 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23834 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23837 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23838 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23839 ZERO_STRUCTP(r
->out
.needed
);
23840 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23841 ZERO_STRUCTP(r
->out
.count
);
23843 if (flags
& NDR_OUT
) {
23844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23846 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23848 r
->out
.info
= NULL
;
23851 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23852 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23853 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23856 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23857 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23859 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23860 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23863 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23864 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23866 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23867 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23870 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23872 return NDR_ERR_SUCCESS
;
23875 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
23877 uint32_t cntr_info_0
;
23878 if (flags
& NDR_IN
) {
23879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23882 if (flags
& NDR_OUT
) {
23883 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23884 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23885 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23887 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23888 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23891 return NDR_ERR_SUCCESS
;
23894 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
23896 uint32_t size_info_0
= 0;
23897 uint32_t cntr_info_0
;
23898 TALLOC_CTX
*_mem_save_info_0
;
23899 if (flags
& NDR_IN
) {
23900 ZERO_STRUCT(r
->out
);
23902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23905 if (flags
& NDR_OUT
) {
23906 size_info_0
= r
->in
.count
;
23907 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
23908 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23909 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23910 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
23911 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23912 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23914 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
23915 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23919 return NDR_ERR_SUCCESS
;
23922 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
23924 uint32_t cntr_info_2
;
23925 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
23927 if (flags
& NDR_SET_VALUES
) {
23928 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23930 if (flags
& NDR_IN
) {
23931 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
23933 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23935 if (r
->in
.servername
) {
23936 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23939 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23940 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23942 if (r
->in
.buffer
) {
23943 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23946 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23949 if (flags
& NDR_OUT
) {
23950 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
23952 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23954 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23956 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23958 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23960 if (*r
->out
.info
) {
23961 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23963 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23965 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23966 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23967 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23975 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23977 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23979 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23985 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
23987 if (flags
& NDR_IN
) {
23988 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23989 if (r
->in
.servername
) {
23990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23996 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23997 if (r
->in
.buffer
) {
23998 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24002 if (flags
& NDR_OUT
) {
24003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24005 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24007 if (r
->out
.needed
== NULL
) {
24008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24011 if (r
->out
.count
== NULL
) {
24012 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24015 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24017 return NDR_ERR_SUCCESS
;
24020 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
24022 uint32_t _ptr_servername
;
24023 uint32_t size_servername_1
= 0;
24024 uint32_t length_servername_1
= 0;
24025 uint32_t _ptr_buffer
;
24026 uint32_t _ptr_info
;
24027 TALLOC_CTX
*_mem_save_servername_0
;
24028 TALLOC_CTX
*_mem_save_buffer_0
;
24029 TALLOC_CTX
*_mem_save_info_0
;
24030 TALLOC_CTX
*_mem_save_needed_0
;
24031 TALLOC_CTX
*_mem_save_count_0
;
24032 if (flags
& NDR_IN
) {
24033 ZERO_STRUCT(r
->out
);
24035 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24036 if (_ptr_servername
) {
24037 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24039 r
->in
.servername
= NULL
;
24041 if (r
->in
.servername
) {
24042 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24043 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24044 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24045 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24046 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
24047 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
24048 if (length_servername_1
> size_servername_1
) {
24049 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
24051 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
24052 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
24053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24055 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24058 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24060 r
->in
.buffer
= NULL
;
24062 if (r
->in
.buffer
) {
24063 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24064 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24065 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24068 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24069 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24070 ZERO_STRUCTP(r
->out
.needed
);
24071 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24072 ZERO_STRUCTP(r
->out
.count
);
24074 if (flags
& NDR_OUT
) {
24075 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24077 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24079 r
->out
.info
= NULL
;
24082 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24083 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24084 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24087 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24088 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24090 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24091 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24094 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24095 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24097 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24098 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24100 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24101 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24103 return NDR_ERR_SUCCESS
;
24106 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
24108 uint32_t cntr_info_0
;
24109 if (flags
& NDR_IN
) {
24110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24113 if (flags
& NDR_OUT
) {
24114 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24115 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24116 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24118 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24119 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24122 return NDR_ERR_SUCCESS
;
24125 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
24127 uint32_t size_info_0
= 0;
24128 uint32_t cntr_info_0
;
24129 TALLOC_CTX
*_mem_save_info_0
;
24130 if (flags
& NDR_IN
) {
24131 ZERO_STRUCT(r
->out
);
24133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24136 if (flags
& NDR_OUT
) {
24137 size_info_0
= r
->in
.count
;
24138 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
24139 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24140 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24141 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
24142 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24143 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24145 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
24146 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24150 return NDR_ERR_SUCCESS
;
24153 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
24155 uint32_t cntr_info_2
;
24156 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
24158 if (flags
& NDR_SET_VALUES
) {
24159 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24161 if (flags
& NDR_IN
) {
24162 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
24164 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24166 if (r
->in
.servername
) {
24167 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24170 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24171 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24173 if (r
->in
.buffer
) {
24174 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24177 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24180 if (flags
& NDR_OUT
) {
24181 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
24183 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24185 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24187 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24189 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24191 if (*r
->out
.info
) {
24192 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24194 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24196 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24197 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24198 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24206 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24208 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24210 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24216 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
24218 if (flags
& NDR_IN
) {
24219 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
24220 if (r
->in
.server_name
) {
24221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24224 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
));
24226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
24227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24230 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
));
24232 if (flags
& NDR_OUT
) {
24233 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24235 return NDR_ERR_SUCCESS
;
24238 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
24240 uint32_t _ptr_server_name
;
24241 uint32_t size_server_name_1
= 0;
24242 uint32_t length_server_name_1
= 0;
24243 uint32_t size_monitor_name_0
= 0;
24244 uint32_t length_monitor_name_0
= 0;
24245 TALLOC_CTX
*_mem_save_server_name_0
;
24246 if (flags
& NDR_IN
) {
24247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
24248 if (_ptr_server_name
) {
24249 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
24251 r
->in
.server_name
= NULL
;
24253 if (r
->in
.server_name
) {
24254 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24255 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
24256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24258 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
24259 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
24260 if (length_server_name_1
> size_server_name_1
) {
24261 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
24263 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
24264 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
24265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
24267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
24268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
24269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
24270 size_monitor_name_0
= ndr_get_array_size(ndr
, &r
->in
.monitor_name
);
24271 length_monitor_name_0
= ndr_get_array_length(ndr
, &r
->in
.monitor_name
);
24272 if (length_monitor_name_0
> size_monitor_name_0
) {
24273 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_0
, length_monitor_name_0
);
24275 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_0
, sizeof(uint16_t)));
24276 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.monitor_name
, length_monitor_name_0
, sizeof(uint16_t), CH_UTF16
));
24278 if (flags
& NDR_OUT
) {
24279 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24281 return NDR_ERR_SUCCESS
;
24284 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
24286 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
24288 if (flags
& NDR_SET_VALUES
) {
24289 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24291 if (flags
& NDR_IN
) {
24292 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
24294 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
24296 if (r
->in
.server_name
) {
24297 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24300 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
24301 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
24304 if (flags
& NDR_OUT
) {
24305 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
24307 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24313 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
24315 if (flags
& NDR_IN
) {
24317 if (flags
& NDR_OUT
) {
24318 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24320 return NDR_ERR_SUCCESS
;
24323 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
24325 if (flags
& NDR_IN
) {
24327 if (flags
& NDR_OUT
) {
24328 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24330 return NDR_ERR_SUCCESS
;
24333 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
24335 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
24337 if (flags
& NDR_SET_VALUES
) {
24338 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24340 if (flags
& NDR_IN
) {
24341 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
24345 if (flags
& NDR_OUT
) {
24346 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
24348 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24354 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
24356 if (flags
& NDR_IN
) {
24358 if (flags
& NDR_OUT
) {
24359 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24361 return NDR_ERR_SUCCESS
;
24364 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
24366 if (flags
& NDR_IN
) {
24368 if (flags
& NDR_OUT
) {
24369 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24371 return NDR_ERR_SUCCESS
;
24374 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
24376 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
24378 if (flags
& NDR_SET_VALUES
) {
24379 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24381 if (flags
& NDR_IN
) {
24382 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
24386 if (flags
& NDR_OUT
) {
24387 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
24389 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24395 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24397 if (flags
& NDR_IN
) {
24399 if (flags
& NDR_OUT
) {
24400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24402 return NDR_ERR_SUCCESS
;
24405 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
24407 if (flags
& NDR_IN
) {
24409 if (flags
& NDR_OUT
) {
24410 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24412 return NDR_ERR_SUCCESS
;
24415 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24417 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
24419 if (flags
& NDR_SET_VALUES
) {
24420 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24422 if (flags
& NDR_IN
) {
24423 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
24427 if (flags
& NDR_OUT
) {
24428 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
24430 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24436 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24438 if (flags
& NDR_IN
) {
24440 if (flags
& NDR_OUT
) {
24441 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24443 return NDR_ERR_SUCCESS
;
24446 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24448 if (flags
& NDR_IN
) {
24450 if (flags
& NDR_OUT
) {
24451 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24453 return NDR_ERR_SUCCESS
;
24456 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24458 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
24460 if (flags
& NDR_SET_VALUES
) {
24461 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24463 if (flags
& NDR_IN
) {
24464 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24468 if (flags
& NDR_OUT
) {
24469 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24471 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24477 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24479 if (flags
& NDR_IN
) {
24481 if (flags
& NDR_OUT
) {
24482 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24484 return NDR_ERR_SUCCESS
;
24487 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
24489 if (flags
& NDR_IN
) {
24491 if (flags
& NDR_OUT
) {
24492 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24494 return NDR_ERR_SUCCESS
;
24497 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24499 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
24501 if (flags
& NDR_SET_VALUES
) {
24502 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24504 if (flags
& NDR_IN
) {
24505 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
24509 if (flags
& NDR_OUT
) {
24510 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
24512 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24518 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24520 if (flags
& NDR_IN
) {
24522 if (flags
& NDR_OUT
) {
24523 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24525 return NDR_ERR_SUCCESS
;
24528 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
24530 if (flags
& NDR_IN
) {
24532 if (flags
& NDR_OUT
) {
24533 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24535 return NDR_ERR_SUCCESS
;
24538 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24540 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
24542 if (flags
& NDR_SET_VALUES
) {
24543 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24545 if (flags
& NDR_IN
) {
24546 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
24550 if (flags
& NDR_OUT
) {
24551 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
24553 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24559 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24561 if (flags
& NDR_IN
) {
24563 if (flags
& NDR_OUT
) {
24564 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24566 return NDR_ERR_SUCCESS
;
24569 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
24571 if (flags
& NDR_IN
) {
24573 if (flags
& NDR_OUT
) {
24574 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24576 return NDR_ERR_SUCCESS
;
24579 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24581 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
24583 if (flags
& NDR_SET_VALUES
) {
24584 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24586 if (flags
& NDR_IN
) {
24587 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
24591 if (flags
& NDR_OUT
) {
24592 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
24594 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24600 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24602 if (flags
& NDR_IN
) {
24604 if (flags
& NDR_OUT
) {
24605 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24607 return NDR_ERR_SUCCESS
;
24610 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
24612 if (flags
& NDR_IN
) {
24614 if (flags
& NDR_OUT
) {
24615 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24617 return NDR_ERR_SUCCESS
;
24620 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24622 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
24624 if (flags
& NDR_SET_VALUES
) {
24625 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24627 if (flags
& NDR_IN
) {
24628 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
24632 if (flags
& NDR_OUT
) {
24633 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
24635 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24641 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
24643 if (flags
& NDR_IN
) {
24645 if (flags
& NDR_OUT
) {
24646 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24648 return NDR_ERR_SUCCESS
;
24651 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
24653 if (flags
& NDR_IN
) {
24655 if (flags
& NDR_OUT
) {
24656 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24658 return NDR_ERR_SUCCESS
;
24661 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
24663 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
24665 if (flags
& NDR_SET_VALUES
) {
24666 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24668 if (flags
& NDR_IN
) {
24669 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
24673 if (flags
& NDR_OUT
) {
24674 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
24676 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24682 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24684 if (flags
& NDR_IN
) {
24686 if (flags
& NDR_OUT
) {
24687 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24689 return NDR_ERR_SUCCESS
;
24692 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
24694 if (flags
& NDR_IN
) {
24696 if (flags
& NDR_OUT
) {
24697 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24699 return NDR_ERR_SUCCESS
;
24702 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24704 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
24706 if (flags
& NDR_SET_VALUES
) {
24707 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24709 if (flags
& NDR_IN
) {
24710 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
24714 if (flags
& NDR_OUT
) {
24715 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
24717 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24723 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24725 if (flags
& NDR_IN
) {
24727 if (flags
& NDR_OUT
) {
24728 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24730 return NDR_ERR_SUCCESS
;
24733 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
24735 if (flags
& NDR_IN
) {
24737 if (flags
& NDR_OUT
) {
24738 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24740 return NDR_ERR_SUCCESS
;
24743 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24745 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
24747 if (flags
& NDR_SET_VALUES
) {
24748 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24750 if (flags
& NDR_IN
) {
24751 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
24755 if (flags
& NDR_OUT
) {
24756 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
24758 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24764 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24766 if (flags
& NDR_IN
) {
24768 if (flags
& NDR_OUT
) {
24769 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24771 return NDR_ERR_SUCCESS
;
24774 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
24776 if (flags
& NDR_IN
) {
24778 if (flags
& NDR_OUT
) {
24779 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24781 return NDR_ERR_SUCCESS
;
24784 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24786 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
24788 if (flags
& NDR_SET_VALUES
) {
24789 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24791 if (flags
& NDR_IN
) {
24792 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
24796 if (flags
& NDR_OUT
) {
24797 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
24799 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24805 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
24807 if (flags
& NDR_IN
) {
24809 if (flags
& NDR_OUT
) {
24810 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24812 return NDR_ERR_SUCCESS
;
24815 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
24817 if (flags
& NDR_IN
) {
24819 if (flags
& NDR_OUT
) {
24820 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24822 return NDR_ERR_SUCCESS
;
24825 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
24827 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
24829 if (flags
& NDR_SET_VALUES
) {
24830 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24832 if (flags
& NDR_IN
) {
24833 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
24837 if (flags
& NDR_OUT
) {
24838 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
24840 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24846 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
24848 if (flags
& NDR_IN
) {
24849 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24850 if (r
->in
.servername
) {
24851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24854 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
24857 if (r
->in
.print_processor_name
) {
24858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24860 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24861 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
));
24863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24864 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24865 if (r
->in
.buffer
) {
24866 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24870 if (flags
& NDR_OUT
) {
24871 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24873 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24875 if (r
->out
.needed
== NULL
) {
24876 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24879 if (r
->out
.count
== NULL
) {
24880 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24883 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24885 return NDR_ERR_SUCCESS
;
24888 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
24890 uint32_t _ptr_servername
;
24891 uint32_t size_servername_1
= 0;
24892 uint32_t length_servername_1
= 0;
24893 uint32_t _ptr_print_processor_name
;
24894 uint32_t size_print_processor_name_1
= 0;
24895 uint32_t length_print_processor_name_1
= 0;
24896 uint32_t _ptr_buffer
;
24897 uint32_t _ptr_info
;
24898 TALLOC_CTX
*_mem_save_servername_0
;
24899 TALLOC_CTX
*_mem_save_print_processor_name_0
;
24900 TALLOC_CTX
*_mem_save_buffer_0
;
24901 TALLOC_CTX
*_mem_save_info_0
;
24902 TALLOC_CTX
*_mem_save_needed_0
;
24903 TALLOC_CTX
*_mem_save_count_0
;
24904 if (flags
& NDR_IN
) {
24905 ZERO_STRUCT(r
->out
);
24907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24908 if (_ptr_servername
) {
24909 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24911 r
->in
.servername
= NULL
;
24913 if (r
->in
.servername
) {
24914 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24915 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24916 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24917 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24918 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
24919 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
24920 if (length_servername_1
> size_servername_1
) {
24921 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
24923 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
24924 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
24925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24927 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
24928 if (_ptr_print_processor_name
) {
24929 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
24931 r
->in
.print_processor_name
= NULL
;
24933 if (r
->in
.print_processor_name
) {
24934 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24935 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
24936 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
24937 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
24938 size_print_processor_name_1
= ndr_get_array_size(ndr
, &r
->in
.print_processor_name
);
24939 length_print_processor_name_1
= ndr_get_array_length(ndr
, &r
->in
.print_processor_name
);
24940 if (length_print_processor_name_1
> size_print_processor_name_1
) {
24941 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_name_1
, length_print_processor_name_1
);
24943 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_name_1
, sizeof(uint16_t)));
24944 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, length_print_processor_name_1
, sizeof(uint16_t), CH_UTF16
));
24945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
24947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24948 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24950 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24952 r
->in
.buffer
= NULL
;
24954 if (r
->in
.buffer
) {
24955 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24956 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24957 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24961 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24962 ZERO_STRUCTP(r
->out
.needed
);
24963 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24964 ZERO_STRUCTP(r
->out
.count
);
24966 if (flags
& NDR_OUT
) {
24967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24969 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24971 r
->out
.info
= NULL
;
24974 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24975 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24976 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24979 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24980 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24982 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24983 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24986 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24987 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24989 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24990 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24993 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24995 return NDR_ERR_SUCCESS
;
24998 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
25000 uint32_t cntr_info_0
;
25001 if (flags
& NDR_IN
) {
25002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25005 if (flags
& NDR_OUT
) {
25006 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25007 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25008 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25010 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25011 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25014 return NDR_ERR_SUCCESS
;
25017 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
25019 uint32_t size_info_0
= 0;
25020 uint32_t cntr_info_0
;
25021 TALLOC_CTX
*_mem_save_info_0
;
25022 if (flags
& NDR_IN
) {
25023 ZERO_STRUCT(r
->out
);
25025 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25028 if (flags
& NDR_OUT
) {
25029 size_info_0
= r
->in
.count
;
25030 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
25031 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25032 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25033 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25034 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25035 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25037 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25038 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25042 return NDR_ERR_SUCCESS
;
25045 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
25047 uint32_t cntr_info_2
;
25048 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
25050 if (flags
& NDR_SET_VALUES
) {
25051 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25053 if (flags
& NDR_IN
) {
25054 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
25056 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25058 if (r
->in
.servername
) {
25059 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25062 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25064 if (r
->in
.print_processor_name
) {
25065 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25068 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25069 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25071 if (r
->in
.buffer
) {
25072 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25075 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25078 if (flags
& NDR_OUT
) {
25079 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
25081 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25083 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25085 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25087 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25089 if (*r
->out
.info
) {
25090 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25092 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25094 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25095 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25096 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25104 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25106 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25108 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25114 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
25116 if (flags
& NDR_IN
) {
25117 if (r
->in
.handle
== NULL
) {
25118 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25120 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25121 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
25122 if (r
->in
.data_type
) {
25123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25126 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
));
25128 if (r
->in
.devmode_ctr
== NULL
) {
25129 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25131 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25133 if (flags
& NDR_OUT
) {
25134 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25136 return NDR_ERR_SUCCESS
;
25139 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
25141 uint32_t _ptr_data_type
;
25142 uint32_t size_data_type_1
= 0;
25143 uint32_t length_data_type_1
= 0;
25144 TALLOC_CTX
*_mem_save_handle_0
;
25145 TALLOC_CTX
*_mem_save_data_type_0
;
25146 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25147 if (flags
& NDR_IN
) {
25148 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25149 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25151 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25152 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25153 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
25156 if (_ptr_data_type
) {
25157 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
25159 r
->in
.data_type
= NULL
;
25161 if (r
->in
.data_type
) {
25162 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25163 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
25164 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
25165 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
25166 size_data_type_1
= ndr_get_array_size(ndr
, &r
->in
.data_type
);
25167 length_data_type_1
= ndr_get_array_length(ndr
, &r
->in
.data_type
);
25168 if (length_data_type_1
> size_data_type_1
) {
25169 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
25171 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
25172 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
25173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
25175 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25176 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25178 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25179 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25180 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25183 if (flags
& NDR_OUT
) {
25184 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25186 return NDR_ERR_SUCCESS
;
25189 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
25191 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
25193 if (flags
& NDR_SET_VALUES
) {
25194 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25196 if (flags
& NDR_IN
) {
25197 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
25199 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25201 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25203 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
25205 if (r
->in
.data_type
) {
25206 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
25209 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25211 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25215 if (flags
& NDR_OUT
) {
25216 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
25218 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25224 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25226 if (flags
& NDR_IN
) {
25227 if (r
->in
.handle
== NULL
) {
25228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25230 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25231 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
25232 if (r
->in
.architecture
) {
25233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25239 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25240 if (r
->in
.buffer
) {
25241 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
25245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
25247 if (flags
& NDR_OUT
) {
25248 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25251 struct ndr_push
*_ndr_info
;
25252 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25253 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25254 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25255 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25258 if (r
->out
.needed
== NULL
) {
25259 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25262 if (r
->out
.server_major_version
== NULL
) {
25263 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
25266 if (r
->out
.server_minor_version
== NULL
) {
25267 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
25270 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25272 return NDR_ERR_SUCCESS
;
25275 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
25277 uint32_t _ptr_architecture
;
25278 uint32_t size_architecture_1
= 0;
25279 uint32_t length_architecture_1
= 0;
25280 uint32_t _ptr_buffer
;
25281 uint32_t _ptr_info
;
25282 TALLOC_CTX
*_mem_save_handle_0
;
25283 TALLOC_CTX
*_mem_save_architecture_0
;
25284 TALLOC_CTX
*_mem_save_buffer_0
;
25285 TALLOC_CTX
*_mem_save_info_0
;
25286 TALLOC_CTX
*_mem_save_needed_0
;
25287 TALLOC_CTX
*_mem_save_server_major_version_0
;
25288 TALLOC_CTX
*_mem_save_server_minor_version_0
;
25289 if (flags
& NDR_IN
) {
25290 ZERO_STRUCT(r
->out
);
25292 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25293 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25295 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25296 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25297 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25299 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
25300 if (_ptr_architecture
) {
25301 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
25303 r
->in
.architecture
= NULL
;
25305 if (r
->in
.architecture
) {
25306 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25307 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
25308 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
25309 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
25310 size_architecture_1
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
25311 length_architecture_1
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
25312 if (length_architecture_1
> size_architecture_1
) {
25313 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
25315 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
25316 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
25317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
25319 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25322 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25324 r
->in
.buffer
= NULL
;
25326 if (r
->in
.buffer
) {
25327 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25328 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25329 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
25334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
25335 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25336 ZERO_STRUCTP(r
->out
.needed
);
25337 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25338 ZERO_STRUCTP(r
->out
.server_major_version
);
25339 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25340 ZERO_STRUCTP(r
->out
.server_minor_version
);
25342 if (flags
& NDR_OUT
) {
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25345 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25347 r
->out
.info
= NULL
;
25350 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25351 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25353 struct ndr_pull
*_ndr_info
;
25354 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25355 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25356 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25357 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25361 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25362 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25364 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25365 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25368 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25369 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25371 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25372 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
25373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
25374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25376 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25378 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25379 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
25380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
25381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25382 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25384 return NDR_ERR_SUCCESS
;
25387 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25389 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
25391 if (flags
& NDR_SET_VALUES
) {
25392 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25394 if (flags
& NDR_IN
) {
25395 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
25397 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25399 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25401 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
25403 if (r
->in
.architecture
) {
25404 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
25407 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25408 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25410 if (r
->in
.buffer
) {
25411 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25414 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25415 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
25416 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
25419 if (flags
& NDR_OUT
) {
25420 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
25422 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25425 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
25426 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
25429 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25431 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25433 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
25435 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
25437 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
25439 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
25441 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25447 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25449 if (flags
& NDR_IN
) {
25451 if (flags
& NDR_OUT
) {
25452 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25454 return NDR_ERR_SUCCESS
;
25457 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
25459 if (flags
& NDR_IN
) {
25461 if (flags
& NDR_OUT
) {
25462 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25464 return NDR_ERR_SUCCESS
;
25467 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25469 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
25471 if (flags
& NDR_SET_VALUES
) {
25472 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25474 if (flags
& NDR_IN
) {
25475 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
25479 if (flags
& NDR_OUT
) {
25480 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
25482 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25488 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25490 if (flags
& NDR_IN
) {
25492 if (flags
& NDR_OUT
) {
25493 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25495 return NDR_ERR_SUCCESS
;
25498 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
25500 if (flags
& NDR_IN
) {
25502 if (flags
& NDR_OUT
) {
25503 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25505 return NDR_ERR_SUCCESS
;
25508 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25510 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
25512 if (flags
& NDR_SET_VALUES
) {
25513 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25515 if (flags
& NDR_IN
) {
25516 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
25520 if (flags
& NDR_OUT
) {
25521 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
25523 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25529 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25531 if (flags
& NDR_IN
) {
25532 if (r
->in
.handle
== NULL
) {
25533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25535 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25537 if (flags
& NDR_OUT
) {
25538 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25540 return NDR_ERR_SUCCESS
;
25543 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
25545 TALLOC_CTX
*_mem_save_handle_0
;
25546 if (flags
& NDR_IN
) {
25547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25548 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25550 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25551 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25552 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25555 if (flags
& NDR_OUT
) {
25556 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25558 return NDR_ERR_SUCCESS
;
25561 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25563 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
25565 if (flags
& NDR_SET_VALUES
) {
25566 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25568 if (flags
& NDR_IN
) {
25569 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
25571 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25573 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25577 if (flags
& NDR_OUT
) {
25578 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
25580 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25586 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25588 if (flags
& NDR_IN
) {
25590 if (flags
& NDR_OUT
) {
25591 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25593 return NDR_ERR_SUCCESS
;
25596 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25598 if (flags
& NDR_IN
) {
25600 if (flags
& NDR_OUT
) {
25601 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25603 return NDR_ERR_SUCCESS
;
25606 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25608 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25610 if (flags
& NDR_SET_VALUES
) {
25611 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25613 if (flags
& NDR_IN
) {
25614 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25618 if (flags
& NDR_OUT
) {
25619 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25621 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25627 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25629 if (flags
& NDR_IN
) {
25630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25633 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
));
25634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
25635 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
25636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25637 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25638 if (r
->in
.buffer
) {
25639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25640 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25643 if (flags
& NDR_OUT
) {
25644 if (r
->out
.handle
== NULL
) {
25645 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25647 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25648 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25650 return NDR_ERR_SUCCESS
;
25653 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
25655 uint32_t size_server_name_0
= 0;
25656 uint32_t length_server_name_0
= 0;
25657 uint32_t _ptr_buffer
;
25658 uint32_t size_buffer_1
= 0;
25659 TALLOC_CTX
*_mem_save_buffer_0
;
25660 TALLOC_CTX
*_mem_save_handle_0
;
25661 if (flags
& NDR_IN
) {
25662 ZERO_STRUCT(r
->out
);
25664 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25665 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25666 size_server_name_0
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
25667 length_server_name_0
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
25668 if (length_server_name_0
> size_server_name_0
) {
25669 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_0
, length_server_name_0
);
25671 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_0
, sizeof(uint16_t)));
25672 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_0
, sizeof(uint16_t), CH_UTF16
));
25673 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
25674 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
25675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25676 if (r
->in
.bufsize
> 512) {
25677 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25681 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25683 r
->in
.buffer
= NULL
;
25685 if (r
->in
.buffer
) {
25686 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25687 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25689 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
25690 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
25691 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
25692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25694 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25695 ZERO_STRUCTP(r
->out
.handle
);
25696 if (r
->in
.buffer
) {
25697 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25700 if (flags
& NDR_OUT
) {
25701 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25702 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25704 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25705 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25706 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25708 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25710 return NDR_ERR_SUCCESS
;
25713 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25715 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
25717 if (flags
& NDR_SET_VALUES
) {
25718 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25720 if (flags
& NDR_IN
) {
25721 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
25723 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25724 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
25725 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
25726 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
25727 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25729 if (r
->in
.buffer
) {
25730 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
25735 if (flags
& NDR_OUT
) {
25736 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
25738 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25740 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25742 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25748 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
25750 if (flags
& NDR_IN
) {
25751 if (r
->in
.handle
== NULL
) {
25752 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25754 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25755 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
25756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25757 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25758 if (r
->in
.buffer
) {
25759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25760 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25763 if (flags
& NDR_OUT
) {
25764 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25766 return NDR_ERR_SUCCESS
;
25769 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
25771 uint32_t _ptr_buffer
;
25772 uint32_t size_buffer_1
= 0;
25773 TALLOC_CTX
*_mem_save_handle_0
;
25774 TALLOC_CTX
*_mem_save_buffer_0
;
25775 if (flags
& NDR_IN
) {
25776 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25777 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25779 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25780 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25781 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25782 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25783 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25785 if (r
->in
.bufsize
> 512) {
25786 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25790 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25792 r
->in
.buffer
= NULL
;
25794 if (r
->in
.buffer
) {
25795 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25796 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25797 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25798 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
25799 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
25800 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
25801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25803 if (r
->in
.buffer
) {
25804 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25807 if (flags
& NDR_OUT
) {
25808 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25810 return NDR_ERR_SUCCESS
;
25813 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
25815 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
25817 if (flags
& NDR_SET_VALUES
) {
25818 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25820 if (flags
& NDR_IN
) {
25821 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
25823 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25825 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25827 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
25828 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
25829 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25831 if (r
->in
.buffer
) {
25832 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
25837 if (flags
& NDR_OUT
) {
25838 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
25840 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25846 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
25848 if (flags
& NDR_IN
) {
25849 if (r
->in
.handle
== NULL
) {
25850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25852 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25854 if (flags
& NDR_OUT
) {
25855 if (r
->out
.handle
== NULL
) {
25856 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25858 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25859 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25861 return NDR_ERR_SUCCESS
;
25864 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
25866 TALLOC_CTX
*_mem_save_handle_0
;
25867 if (flags
& NDR_IN
) {
25868 ZERO_STRUCT(r
->out
);
25870 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25871 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25873 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25874 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25875 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25877 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25878 *r
->out
.handle
= *r
->in
.handle
;
25880 if (flags
& NDR_OUT
) {
25881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25882 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25884 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25885 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25886 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25888 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25890 return NDR_ERR_SUCCESS
;
25893 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
25895 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
25897 if (flags
& NDR_SET_VALUES
) {
25898 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25900 if (flags
& NDR_IN
) {
25901 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
25903 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25905 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25909 if (flags
& NDR_OUT
) {
25910 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
25912 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25914 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25922 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
25924 if (flags
& NDR_IN
) {
25926 if (flags
& NDR_OUT
) {
25927 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25929 return NDR_ERR_SUCCESS
;
25932 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
25934 if (flags
& NDR_IN
) {
25936 if (flags
& NDR_OUT
) {
25937 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25939 return NDR_ERR_SUCCESS
;
25942 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
25944 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
25946 if (flags
& NDR_SET_VALUES
) {
25947 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25949 if (flags
& NDR_IN
) {
25950 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
25954 if (flags
& NDR_OUT
) {
25955 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
25957 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25963 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25965 if (flags
& NDR_IN
) {
25967 if (flags
& NDR_OUT
) {
25968 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25970 return NDR_ERR_SUCCESS
;
25973 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25975 if (flags
& NDR_IN
) {
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_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25985 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
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_RouterFindFirstPrinterChangeNotification");
25995 if (flags
& NDR_OUT
) {
25996 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25998 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26004 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
26006 if (flags
& NDR_IN
) {
26008 if (flags
& NDR_OUT
) {
26009 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26011 return NDR_ERR_SUCCESS
;
26014 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
26016 if (flags
& NDR_IN
) {
26018 if (flags
& NDR_OUT
) {
26019 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26021 return NDR_ERR_SUCCESS
;
26024 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
26026 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
26028 if (flags
& NDR_SET_VALUES
) {
26029 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26031 if (flags
& NDR_IN
) {
26032 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
26036 if (flags
& NDR_OUT
) {
26037 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
26039 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26045 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26047 if (flags
& NDR_IN
) {
26049 if (flags
& NDR_OUT
) {
26050 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26052 return NDR_ERR_SUCCESS
;
26055 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
26057 if (flags
& NDR_IN
) {
26059 if (flags
& NDR_OUT
) {
26060 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26062 return NDR_ERR_SUCCESS
;
26065 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26067 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
26069 if (flags
& NDR_SET_VALUES
) {
26070 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26072 if (flags
& NDR_IN
) {
26073 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
26077 if (flags
& NDR_OUT
) {
26078 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
26080 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26086 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26088 if (flags
& NDR_IN
) {
26089 if (r
->in
.handle
== NULL
) {
26090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26092 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26093 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
26095 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
26096 if (r
->in
.local_machine
) {
26097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26100 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
));
26102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
26104 if (r
->in
.notify_options
) {
26105 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26108 if (flags
& NDR_OUT
) {
26109 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26111 return NDR_ERR_SUCCESS
;
26114 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26116 uint32_t _ptr_local_machine
;
26117 uint32_t size_local_machine_1
= 0;
26118 uint32_t length_local_machine_1
= 0;
26119 uint32_t _ptr_notify_options
;
26120 TALLOC_CTX
*_mem_save_handle_0
;
26121 TALLOC_CTX
*_mem_save_local_machine_0
;
26122 TALLOC_CTX
*_mem_save_notify_options_0
;
26123 if (flags
& NDR_IN
) {
26124 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26125 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26127 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26128 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26129 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26131 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26132 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
26133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
26134 if (_ptr_local_machine
) {
26135 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
26137 r
->in
.local_machine
= NULL
;
26139 if (r
->in
.local_machine
) {
26140 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26141 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
26142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
26143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
26144 size_local_machine_1
= ndr_get_array_size(ndr
, &r
->in
.local_machine
);
26145 length_local_machine_1
= ndr_get_array_length(ndr
, &r
->in
.local_machine
);
26146 if (length_local_machine_1
> size_local_machine_1
) {
26147 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_local_machine_1
, length_local_machine_1
);
26149 NDR_CHECK(ndr_check_string_terminator(ndr
, length_local_machine_1
, sizeof(uint16_t)));
26150 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.local_machine
, length_local_machine_1
, sizeof(uint16_t), CH_UTF16
));
26151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
26153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
26155 if (_ptr_notify_options
) {
26156 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
26158 r
->in
.notify_options
= NULL
;
26160 if (r
->in
.notify_options
) {
26161 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26162 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
26163 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
26167 if (flags
& NDR_OUT
) {
26168 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26170 return NDR_ERR_SUCCESS
;
26173 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26175 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26177 if (flags
& NDR_SET_VALUES
) {
26178 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26180 if (flags
& NDR_IN
) {
26181 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26183 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26185 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26187 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26188 ndr_print_uint32(ndr
, "options", r
->in
.options
);
26189 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
26191 if (r
->in
.local_machine
) {
26192 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
26195 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26196 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
26198 if (r
->in
.notify_options
) {
26199 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
26204 if (flags
& NDR_OUT
) {
26205 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26207 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26213 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26215 if (flags
& NDR_IN
) {
26216 if (r
->in
.handle
== NULL
) {
26217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26219 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
26221 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
26223 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26224 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26226 if (flags
& NDR_OUT
) {
26227 if (r
->out
.reply_result
== NULL
) {
26228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26230 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
26231 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26233 return NDR_ERR_SUCCESS
;
26236 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
26238 TALLOC_CTX
*_mem_save_handle_0
;
26239 TALLOC_CTX
*_mem_save_reply_result_0
;
26240 if (flags
& NDR_IN
) {
26241 ZERO_STRUCT(r
->out
);
26243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26244 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26246 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26247 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26248 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
26251 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
26253 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26254 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26255 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26256 ZERO_STRUCTP(r
->out
.reply_result
);
26258 if (flags
& NDR_OUT
) {
26259 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26260 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26262 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26263 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
26264 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
26265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
26266 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26268 return NDR_ERR_SUCCESS
;
26271 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26273 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
26275 if (flags
& NDR_SET_VALUES
) {
26276 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26278 if (flags
& NDR_IN
) {
26279 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
26281 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26283 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26285 ndr_print_uint32(ndr
, "color", r
->in
.color
);
26286 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26287 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
26288 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
26289 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
26292 if (flags
& NDR_OUT
) {
26293 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
26295 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
26297 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
26299 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26305 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26307 if (flags
& NDR_IN
) {
26308 if (r
->in
.handle
== NULL
) {
26309 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26311 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
26313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
26314 if (r
->in
.options
) {
26315 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26318 if (flags
& NDR_OUT
) {
26319 if (r
->out
.info
== NULL
) {
26320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26322 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
26323 if (*r
->out
.info
) {
26324 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26326 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26328 return NDR_ERR_SUCCESS
;
26331 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26333 uint32_t _ptr_options
;
26334 uint32_t _ptr_info
;
26335 TALLOC_CTX
*_mem_save_handle_0
;
26336 TALLOC_CTX
*_mem_save_options_0
;
26337 TALLOC_CTX
*_mem_save_info_0
;
26338 TALLOC_CTX
*_mem_save_info_1
;
26339 if (flags
& NDR_IN
) {
26340 ZERO_STRUCT(r
->out
);
26342 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26343 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26345 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26346 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26347 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
26350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
26351 if (_ptr_options
) {
26352 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
26354 r
->in
.options
= NULL
;
26356 if (r
->in
.options
) {
26357 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26358 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
26359 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
26362 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26363 ZERO_STRUCTP(r
->out
.info
);
26365 if (flags
& NDR_OUT
) {
26366 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26367 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26369 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26370 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
26371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26373 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
26375 *r
->out
.info
= NULL
;
26377 if (*r
->out
.info
) {
26378 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26379 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
26380 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
26383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
26384 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26386 return NDR_ERR_SUCCESS
;
26389 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26391 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
26393 if (flags
& NDR_SET_VALUES
) {
26394 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26396 if (flags
& NDR_IN
) {
26397 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26399 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26401 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26403 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
26404 ndr_print_ptr(ndr
, "options", r
->in
.options
);
26406 if (r
->in
.options
) {
26407 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
26412 if (flags
& NDR_OUT
) {
26413 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26415 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26417 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26419 if (*r
->out
.info
) {
26420 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
26424 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26430 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
26432 if (flags
& NDR_IN
) {
26434 if (flags
& NDR_OUT
) {
26435 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26437 return NDR_ERR_SUCCESS
;
26440 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
26442 if (flags
& NDR_IN
) {
26444 if (flags
& NDR_OUT
) {
26445 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26447 return NDR_ERR_SUCCESS
;
26450 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
26452 ndr_print_struct(ndr
, name
, "spoolss_44");
26454 if (flags
& NDR_SET_VALUES
) {
26455 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26457 if (flags
& NDR_IN
) {
26458 ndr_print_struct(ndr
, "in", "spoolss_44");
26462 if (flags
& NDR_OUT
) {
26463 ndr_print_struct(ndr
, "out", "spoolss_44");
26465 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26471 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26473 if (flags
& NDR_IN
) {
26474 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
26475 if (r
->in
.printername
) {
26476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26479 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
26482 if (r
->in
.datatype
) {
26483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26488 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26489 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
26490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26491 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26492 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26494 if (flags
& NDR_OUT
) {
26495 if (r
->out
.handle
== NULL
) {
26496 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26498 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26499 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26501 return NDR_ERR_SUCCESS
;
26504 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
26506 uint32_t _ptr_printername
;
26507 uint32_t size_printername_1
= 0;
26508 uint32_t length_printername_1
= 0;
26509 uint32_t _ptr_datatype
;
26510 uint32_t size_datatype_1
= 0;
26511 uint32_t length_datatype_1
= 0;
26512 TALLOC_CTX
*_mem_save_printername_0
;
26513 TALLOC_CTX
*_mem_save_datatype_0
;
26514 TALLOC_CTX
*_mem_save_handle_0
;
26515 if (flags
& NDR_IN
) {
26516 ZERO_STRUCT(r
->out
);
26518 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
26519 if (_ptr_printername
) {
26520 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
26522 r
->in
.printername
= NULL
;
26524 if (r
->in
.printername
) {
26525 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26526 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
26527 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
26528 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
26529 size_printername_1
= ndr_get_array_size(ndr
, &r
->in
.printername
);
26530 length_printername_1
= ndr_get_array_length(ndr
, &r
->in
.printername
);
26531 if (length_printername_1
> size_printername_1
) {
26532 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
26534 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
26535 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
26536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
26538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
26539 if (_ptr_datatype
) {
26540 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
26542 r
->in
.datatype
= NULL
;
26544 if (r
->in
.datatype
) {
26545 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26546 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
26547 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
26548 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
26549 size_datatype_1
= ndr_get_array_size(ndr
, &r
->in
.datatype
);
26550 length_datatype_1
= ndr_get_array_length(ndr
, &r
->in
.datatype
);
26551 if (length_datatype_1
> size_datatype_1
) {
26552 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
26554 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
26555 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
26556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
26558 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26559 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
26560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26561 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26562 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26563 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26564 ZERO_STRUCTP(r
->out
.handle
);
26566 if (flags
& NDR_OUT
) {
26567 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26568 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26570 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26571 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26572 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26574 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26576 return NDR_ERR_SUCCESS
;
26579 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26581 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
26583 if (flags
& NDR_SET_VALUES
) {
26584 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26586 if (flags
& NDR_IN
) {
26587 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
26589 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
26591 if (r
->in
.printername
) {
26592 ndr_print_string(ndr
, "printername", r
->in
.printername
);
26595 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
26597 if (r
->in
.datatype
) {
26598 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
26601 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
26602 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
26603 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26604 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
26605 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
26608 if (flags
& NDR_OUT
) {
26609 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
26611 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26613 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26615 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26621 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26623 if (flags
& NDR_IN
) {
26624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26625 if (r
->in
.server
) {
26626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26629 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26631 if (r
->in
.info_ctr
== NULL
) {
26632 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26634 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26635 if (r
->in
.devmode_ctr
== NULL
) {
26636 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26638 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26639 if (r
->in
.secdesc_ctr
== NULL
) {
26640 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26642 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26643 if (r
->in
.userlevel_ctr
== NULL
) {
26644 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26646 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26648 if (flags
& NDR_OUT
) {
26649 if (r
->out
.handle
== NULL
) {
26650 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26652 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26653 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26655 return NDR_ERR_SUCCESS
;
26658 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
26660 uint32_t _ptr_server
;
26661 uint32_t size_server_1
= 0;
26662 uint32_t length_server_1
= 0;
26663 TALLOC_CTX
*_mem_save_server_0
;
26664 TALLOC_CTX
*_mem_save_info_ctr_0
;
26665 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26666 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
26667 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
26668 TALLOC_CTX
*_mem_save_handle_0
;
26669 if (flags
& NDR_IN
) {
26670 ZERO_STRUCT(r
->out
);
26672 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26674 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26676 r
->in
.server
= NULL
;
26678 if (r
->in
.server
) {
26679 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26681 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26682 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26683 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
26684 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
26685 if (length_server_1
> size_server_1
) {
26686 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
26688 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
26689 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
26690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26692 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26693 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
26695 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26696 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26697 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26699 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26700 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26702 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26703 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26704 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26706 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26707 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
26709 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26710 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26711 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26713 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26714 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
26716 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26717 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26718 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26720 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26721 ZERO_STRUCTP(r
->out
.handle
);
26723 if (flags
& NDR_OUT
) {
26724 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26725 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26727 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26728 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26729 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26731 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26733 return NDR_ERR_SUCCESS
;
26736 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26738 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
26740 if (flags
& NDR_SET_VALUES
) {
26741 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26743 if (flags
& NDR_IN
) {
26744 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
26746 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26748 if (r
->in
.server
) {
26749 ndr_print_string(ndr
, "server", r
->in
.server
);
26752 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
26754 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
26756 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26758 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26760 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26762 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26764 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26766 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26770 if (flags
& NDR_OUT
) {
26771 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
26773 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26775 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26783 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
26785 if (flags
& NDR_IN
) {
26787 if (flags
& NDR_OUT
) {
26788 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26790 return NDR_ERR_SUCCESS
;
26793 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
26795 if (flags
& NDR_IN
) {
26797 if (flags
& NDR_OUT
) {
26798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26800 return NDR_ERR_SUCCESS
;
26803 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
26805 ndr_print_struct(ndr
, name
, "spoolss_47");
26807 if (flags
& NDR_SET_VALUES
) {
26808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26810 if (flags
& NDR_IN
) {
26811 ndr_print_struct(ndr
, "in", "spoolss_47");
26815 if (flags
& NDR_OUT
) {
26816 ndr_print_struct(ndr
, "out", "spoolss_47");
26818 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26824 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
26826 if (flags
& NDR_IN
) {
26827 if (r
->in
.handle
== NULL
) {
26828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26830 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
26832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
26833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
26835 if (flags
& NDR_OUT
) {
26836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
26837 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
26838 if (r
->out
.value_needed
== NULL
) {
26839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
26842 if (r
->out
.type
== NULL
) {
26843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26845 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
26847 uint32_t _flags_save_uint8
= ndr
->flags
;
26848 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
26849 if (r
->out
.data
== NULL
) {
26850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
26853 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
26854 ndr
->flags
= _flags_save_uint8
;
26856 if (r
->out
.data_needed
== NULL
) {
26857 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
26860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26862 return NDR_ERR_SUCCESS
;
26865 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
26867 uint32_t size_value_name_0
= 0;
26868 uint32_t size_data_1
= 0;
26869 TALLOC_CTX
*_mem_save_handle_0
;
26870 TALLOC_CTX
*_mem_save_value_needed_0
;
26871 TALLOC_CTX
*_mem_save_type_0
;
26872 TALLOC_CTX
*_mem_save_data_needed_0
;
26873 if (flags
& NDR_IN
) {
26874 ZERO_STRUCT(r
->out
);
26876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26877 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26879 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26880 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26881 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
26884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
26885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
26886 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26887 ZERO_STRUCTP(r
->out
.value_needed
);
26888 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26889 ZERO_STRUCTP(r
->out
.type
);
26890 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
26891 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
26892 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26893 ZERO_STRUCTP(r
->out
.data_needed
);
26895 if (flags
& NDR_OUT
) {
26896 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
26897 size_value_name_0
= ndr_get_array_size(ndr
, &r
->out
.value_name
);
26898 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.value_name
, size_value_name_0
, sizeof(uint16_t), CH_UTF16
));
26899 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26900 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26902 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26903 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
26904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
26905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26906 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26907 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26909 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26910 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26911 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
26912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26914 uint32_t _flags_save_uint8
= ndr
->flags
;
26915 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
26916 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
26917 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
26918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26919 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
26921 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
26922 ndr
->flags
= _flags_save_uint8
;
26924 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26925 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26927 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26928 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
26929 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
26930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26931 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26932 if (r
->out
.value_name
) {
26933 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
26936 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
26939 return NDR_ERR_SUCCESS
;
26942 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
26944 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
26946 if (flags
& NDR_SET_VALUES
) {
26947 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26949 if (flags
& NDR_IN
) {
26950 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
26952 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26954 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26956 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
26957 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
26958 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
26961 if (flags
& NDR_OUT
) {
26962 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
26964 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
26965 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
26967 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
26969 ndr_print_ptr(ndr
, "type", r
->out
.type
);
26971 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
26973 ndr_print_ptr(ndr
, "data", r
->out
.data
);
26975 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
26977 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
26979 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
26981 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26987 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
26989 if (flags
& NDR_IN
) {
26990 if (r
->in
.handle
== NULL
) {
26991 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26993 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26997 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
));
26999 if (flags
& NDR_OUT
) {
27000 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27002 return NDR_ERR_SUCCESS
;
27005 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
27007 uint32_t size_value_name_0
= 0;
27008 uint32_t length_value_name_0
= 0;
27009 TALLOC_CTX
*_mem_save_handle_0
;
27010 if (flags
& NDR_IN
) {
27011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27012 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27014 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27015 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27016 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27018 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27019 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27020 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
27021 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
27022 if (length_value_name_0
> size_value_name_0
) {
27023 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
27025 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
27026 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
27028 if (flags
& NDR_OUT
) {
27029 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27031 return NDR_ERR_SUCCESS
;
27034 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27036 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
27038 if (flags
& NDR_SET_VALUES
) {
27039 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27041 if (flags
& NDR_IN
) {
27042 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
27044 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27046 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27048 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27051 if (flags
& NDR_OUT
) {
27052 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
27054 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27060 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
27062 if (flags
& NDR_IN
) {
27064 if (flags
& NDR_OUT
) {
27065 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27067 return NDR_ERR_SUCCESS
;
27070 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
27072 if (flags
& NDR_IN
) {
27074 if (flags
& NDR_OUT
) {
27075 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27077 return NDR_ERR_SUCCESS
;
27080 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
27082 ndr_print_struct(ndr
, name
, "spoolss_4a");
27084 if (flags
& NDR_SET_VALUES
) {
27085 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27087 if (flags
& NDR_IN
) {
27088 ndr_print_struct(ndr
, "in", "spoolss_4a");
27092 if (flags
& NDR_OUT
) {
27093 ndr_print_struct(ndr
, "out", "spoolss_4a");
27095 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27101 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
27103 if (flags
& NDR_IN
) {
27105 if (flags
& NDR_OUT
) {
27106 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27108 return NDR_ERR_SUCCESS
;
27111 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
27113 if (flags
& NDR_IN
) {
27115 if (flags
& NDR_OUT
) {
27116 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27118 return NDR_ERR_SUCCESS
;
27121 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
27123 ndr_print_struct(ndr
, name
, "spoolss_4b");
27125 if (flags
& NDR_SET_VALUES
) {
27126 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27128 if (flags
& NDR_IN
) {
27129 ndr_print_struct(ndr
, "in", "spoolss_4b");
27133 if (flags
& NDR_OUT
) {
27134 ndr_print_struct(ndr
, "out", "spoolss_4b");
27136 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27142 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
27144 if (flags
& NDR_IN
) {
27146 if (flags
& NDR_OUT
) {
27147 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27149 return NDR_ERR_SUCCESS
;
27152 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
27154 if (flags
& NDR_IN
) {
27156 if (flags
& NDR_OUT
) {
27157 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27159 return NDR_ERR_SUCCESS
;
27162 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
27164 ndr_print_struct(ndr
, name
, "spoolss_4c");
27166 if (flags
& NDR_SET_VALUES
) {
27167 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27169 if (flags
& NDR_IN
) {
27170 ndr_print_struct(ndr
, "in", "spoolss_4c");
27174 if (flags
& NDR_OUT
) {
27175 ndr_print_struct(ndr
, "out", "spoolss_4c");
27177 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27183 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27185 if (flags
& NDR_IN
) {
27186 if (r
->in
.handle
== NULL
) {
27187 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27189 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27193 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
));
27194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27197 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
));
27198 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27199 if (r
->in
.data
== NULL
) {
27200 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27203 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
27204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27206 if (flags
& NDR_OUT
) {
27207 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27209 return NDR_ERR_SUCCESS
;
27212 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
27214 uint32_t size_key_name_0
= 0;
27215 uint32_t length_key_name_0
= 0;
27216 uint32_t size_value_name_0
= 0;
27217 uint32_t length_value_name_0
= 0;
27218 uint32_t size_data_1
= 0;
27219 TALLOC_CTX
*_mem_save_handle_0
;
27220 if (flags
& NDR_IN
) {
27221 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27222 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27224 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27225 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27226 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27228 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27229 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27230 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27231 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27232 if (length_key_name_0
> size_key_name_0
) {
27233 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27235 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27236 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27237 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27238 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27239 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
27240 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
27241 if (length_value_name_0
> size_value_name_0
) {
27242 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
27244 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
27245 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
27246 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27247 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
27248 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
27249 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27250 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
27252 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, size_data_1
));
27253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27255 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
27258 if (flags
& NDR_OUT
) {
27259 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27261 return NDR_ERR_SUCCESS
;
27264 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27266 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
27268 if (flags
& NDR_SET_VALUES
) {
27269 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27271 if (flags
& NDR_IN
) {
27272 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
27274 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27276 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27278 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27279 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27280 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27281 ndr_print_ptr(ndr
, "data", r
->in
.data
);
27283 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
27285 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27288 if (flags
& NDR_OUT
) {
27289 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
27291 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27297 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27299 if (flags
& NDR_IN
) {
27300 if (r
->in
.handle
== NULL
) {
27301 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27303 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27307 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
));
27308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27311 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
));
27312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27314 if (flags
& NDR_OUT
) {
27315 if (r
->out
.type
== NULL
) {
27316 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27318 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27319 if (r
->out
.data
== NULL
) {
27320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27323 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
27324 if (r
->out
.needed
== NULL
) {
27325 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27328 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27330 return NDR_ERR_SUCCESS
;
27333 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
27335 uint32_t size_key_name_0
= 0;
27336 uint32_t length_key_name_0
= 0;
27337 uint32_t size_value_name_0
= 0;
27338 uint32_t length_value_name_0
= 0;
27339 uint32_t size_data_1
= 0;
27340 TALLOC_CTX
*_mem_save_handle_0
;
27341 TALLOC_CTX
*_mem_save_type_0
;
27342 TALLOC_CTX
*_mem_save_needed_0
;
27343 if (flags
& NDR_IN
) {
27344 ZERO_STRUCT(r
->out
);
27346 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27347 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27349 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27351 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27355 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27356 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27357 if (length_key_name_0
> size_key_name_0
) {
27358 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27360 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27361 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27364 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
27365 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
27366 if (length_value_name_0
> size_value_name_0
) {
27367 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
27369 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
27370 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
27371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27372 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27373 ZERO_STRUCTP(r
->out
.type
);
27374 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
27375 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
27376 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27377 ZERO_STRUCTP(r
->out
.needed
);
27379 if (flags
& NDR_OUT
) {
27380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27381 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27383 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27384 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27385 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27387 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
27388 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
27389 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27390 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
27392 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
27393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27394 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27396 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27397 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27400 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27402 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
27405 return NDR_ERR_SUCCESS
;
27408 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27410 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
27412 if (flags
& NDR_SET_VALUES
) {
27413 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27415 if (flags
& NDR_IN
) {
27416 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
27418 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27420 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27422 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27423 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27424 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27427 if (flags
& NDR_OUT
) {
27428 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
27430 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27432 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27434 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27436 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
27438 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27440 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27442 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27448 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
27450 if (flags
& NDR_IN
) {
27451 if (r
->in
.handle
== NULL
) {
27452 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27454 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27458 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
));
27459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27461 if (flags
& NDR_OUT
) {
27462 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
27463 if (r
->out
.needed
== NULL
) {
27464 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27467 if (r
->out
.count
== NULL
) {
27468 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
27471 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27473 return NDR_ERR_SUCCESS
;
27476 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
27478 uint32_t size_key_name_0
= 0;
27479 uint32_t length_key_name_0
= 0;
27480 TALLOC_CTX
*_mem_save_handle_0
;
27481 TALLOC_CTX
*_mem_save_needed_0
;
27482 TALLOC_CTX
*_mem_save_count_0
;
27483 if (flags
& NDR_IN
) {
27484 ZERO_STRUCT(r
->out
);
27486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27487 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27489 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27490 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27491 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27493 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27494 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27495 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27496 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27497 if (length_key_name_0
> size_key_name_0
) {
27498 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27500 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27501 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27502 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27503 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27504 ZERO_STRUCTP(r
->out
.needed
);
27505 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27506 ZERO_STRUCTP(r
->out
.count
);
27508 if (flags
& NDR_OUT
) {
27509 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
27510 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27511 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27513 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27514 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27517 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27518 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27520 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27521 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
27522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
27523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
27524 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27526 return NDR_ERR_SUCCESS
;
27529 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
27531 uint32_t cntr_info_0
;
27532 if (flags
& NDR_IN
) {
27533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
27535 if (flags
& NDR_OUT
) {
27536 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27537 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27539 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27540 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27543 return NDR_ERR_SUCCESS
;
27546 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
27548 uint32_t size_info_0
= 0;
27549 uint32_t cntr_info_0
;
27550 TALLOC_CTX
*_mem_save_info_0
;
27551 if (flags
& NDR_IN
) {
27552 ZERO_STRUCT(r
->out
);
27554 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
27556 if (flags
& NDR_OUT
) {
27557 size_info_0
= r
->in
.count
;
27558 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
27559 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27560 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
27561 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
27562 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27564 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
27565 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
27569 return NDR_ERR_SUCCESS
;
27572 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
27574 uint32_t cntr_info_2
;
27575 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
27577 if (flags
& NDR_SET_VALUES
) {
27578 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27580 if (flags
& NDR_IN
) {
27581 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
27583 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27585 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27587 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27588 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27591 if (flags
& NDR_OUT
) {
27592 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
27594 ndr_print_ptr(ndr
, "count", r
->out
.count
);
27596 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
27598 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27600 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27602 if (*r
->out
.info
) {
27603 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
27605 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
27607 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
27608 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
27616 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27618 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27620 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27626 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27628 if (flags
& NDR_IN
) {
27629 if (r
->in
.handle
== NULL
) {
27630 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27632 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27636 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
));
27637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27639 if (flags
& NDR_OUT
) {
27640 if (r
->out
._ndr_size
== NULL
) {
27641 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
27644 if (r
->out
.key_buffer
== NULL
) {
27645 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27648 struct ndr_push
*_ndr_key_buffer
;
27649 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27650 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
27651 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
27652 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27654 if (r
->out
.needed
== NULL
) {
27655 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27658 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27660 return NDR_ERR_SUCCESS
;
27663 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
27665 uint32_t size_key_name_0
= 0;
27666 uint32_t length_key_name_0
= 0;
27667 TALLOC_CTX
*_mem_save_handle_0
;
27668 TALLOC_CTX
*_mem_save__ndr_size_0
;
27669 TALLOC_CTX
*_mem_save_key_buffer_0
;
27670 TALLOC_CTX
*_mem_save_needed_0
;
27671 if (flags
& NDR_IN
) {
27672 ZERO_STRUCT(r
->out
);
27674 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27675 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27677 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27679 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27681 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27682 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27683 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27684 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27685 if (length_key_name_0
> size_key_name_0
) {
27686 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27688 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27689 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27690 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27691 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
27692 ZERO_STRUCTP(r
->out
._ndr_size
);
27693 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27694 ZERO_STRUCTP(r
->out
.key_buffer
);
27695 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27696 ZERO_STRUCTP(r
->out
.needed
);
27698 if (flags
& NDR_OUT
) {
27699 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27700 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
27702 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27703 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
27704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
27705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
27706 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27707 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27709 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27710 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
27712 struct ndr_pull
*_ndr_key_buffer
;
27713 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27714 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
27715 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
27716 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
27719 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27720 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27722 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27723 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27724 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27726 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27728 return NDR_ERR_SUCCESS
;
27731 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27733 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
27735 if (flags
& NDR_SET_VALUES
) {
27736 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27738 if (flags
& NDR_IN
) {
27739 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
27741 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27743 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27745 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27746 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27749 if (flags
& NDR_OUT
) {
27750 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
27752 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
27754 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
27756 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
27758 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
27759 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
27761 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27763 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27765 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27771 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
27773 if (flags
& NDR_IN
) {
27774 if (r
->in
.handle
== NULL
) {
27775 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27777 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27781 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
));
27782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27785 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
));
27787 if (flags
& NDR_OUT
) {
27788 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27790 return NDR_ERR_SUCCESS
;
27793 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
27795 uint32_t size_key_name_0
= 0;
27796 uint32_t length_key_name_0
= 0;
27797 uint32_t size_value_name_0
= 0;
27798 uint32_t length_value_name_0
= 0;
27799 TALLOC_CTX
*_mem_save_handle_0
;
27800 if (flags
& NDR_IN
) {
27801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27802 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27804 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27805 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27806 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27808 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27809 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27810 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27811 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27812 if (length_key_name_0
> size_key_name_0
) {
27813 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27815 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27816 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27819 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
27820 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
27821 if (length_value_name_0
> size_value_name_0
) {
27822 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
27824 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
27825 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
27827 if (flags
& NDR_OUT
) {
27828 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27830 return NDR_ERR_SUCCESS
;
27833 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
27835 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
27837 if (flags
& NDR_SET_VALUES
) {
27838 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27840 if (flags
& NDR_IN
) {
27841 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
27843 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27845 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27847 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27848 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27851 if (flags
& NDR_OUT
) {
27852 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
27854 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27860 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
27862 if (flags
& NDR_IN
) {
27863 if (r
->in
.handle
== NULL
) {
27864 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27866 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27870 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
));
27872 if (flags
& NDR_OUT
) {
27873 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27875 return NDR_ERR_SUCCESS
;
27878 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
27880 uint32_t size_key_name_0
= 0;
27881 uint32_t length_key_name_0
= 0;
27882 TALLOC_CTX
*_mem_save_handle_0
;
27883 if (flags
& NDR_IN
) {
27884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27885 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27887 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27888 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27889 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27893 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
27894 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
27895 if (length_key_name_0
> size_key_name_0
) {
27896 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
27898 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
27899 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
27901 if (flags
& NDR_OUT
) {
27902 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27904 return NDR_ERR_SUCCESS
;
27907 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
27909 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
27911 if (flags
& NDR_SET_VALUES
) {
27912 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27914 if (flags
& NDR_IN
) {
27915 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
27917 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27919 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27921 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27924 if (flags
& NDR_OUT
) {
27925 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
27927 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27933 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
27935 if (flags
& NDR_IN
) {
27937 if (flags
& NDR_OUT
) {
27938 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27940 return NDR_ERR_SUCCESS
;
27943 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
27945 if (flags
& NDR_IN
) {
27947 if (flags
& NDR_OUT
) {
27948 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27950 return NDR_ERR_SUCCESS
;
27953 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
27955 ndr_print_struct(ndr
, name
, "spoolss_53");
27957 if (flags
& NDR_SET_VALUES
) {
27958 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27960 if (flags
& NDR_IN
) {
27961 ndr_print_struct(ndr
, "in", "spoolss_53");
27965 if (flags
& NDR_OUT
) {
27966 ndr_print_struct(ndr
, "out", "spoolss_53");
27968 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27974 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
27976 if (flags
& NDR_IN
) {
27977 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27978 if (r
->in
.server
) {
27979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27982 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
27985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
27987 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
27989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
27991 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27992 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
27993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
27995 if (flags
& NDR_OUT
) {
27996 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27998 return NDR_ERR_SUCCESS
;
28001 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
28003 uint32_t _ptr_server
;
28004 uint32_t size_server_1
= 0;
28005 uint32_t length_server_1
= 0;
28006 uint32_t size_architecture_0
= 0;
28007 uint32_t length_architecture_0
= 0;
28008 uint32_t size_driver_0
= 0;
28009 uint32_t length_driver_0
= 0;
28010 TALLOC_CTX
*_mem_save_server_0
;
28011 if (flags
& NDR_IN
) {
28012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28014 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28016 r
->in
.server
= NULL
;
28018 if (r
->in
.server
) {
28019 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28020 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28021 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28022 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28023 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
28024 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
28025 if (length_server_1
> size_server_1
) {
28026 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
28028 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
28029 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
28030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28032 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
28033 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
28034 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
28035 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
28036 if (length_architecture_0
> size_architecture_0
) {
28037 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
28039 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
28040 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
28041 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
28042 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
28043 size_driver_0
= ndr_get_array_size(ndr
, &r
->in
.driver
);
28044 length_driver_0
= ndr_get_array_length(ndr
, &r
->in
.driver
);
28045 if (length_driver_0
> size_driver_0
) {
28046 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_0
, length_driver_0
);
28048 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_0
, sizeof(uint16_t)));
28049 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, length_driver_0
, sizeof(uint16_t), CH_UTF16
));
28050 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
28051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
28053 if (flags
& NDR_OUT
) {
28054 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28056 return NDR_ERR_SUCCESS
;
28059 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28061 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
28063 if (flags
& NDR_SET_VALUES
) {
28064 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28066 if (flags
& NDR_IN
) {
28067 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
28069 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28071 if (r
->in
.server
) {
28072 ndr_print_string(ndr
, "server", r
->in
.server
);
28075 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
28076 ndr_print_string(ndr
, "driver", r
->in
.driver
);
28077 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
28078 ndr_print_uint32(ndr
, "version", r
->in
.version
);
28081 if (flags
& NDR_OUT
) {
28082 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
28084 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28090 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
28092 if (flags
& NDR_IN
) {
28094 if (flags
& NDR_OUT
) {
28095 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28097 return NDR_ERR_SUCCESS
;
28100 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
28102 if (flags
& NDR_IN
) {
28104 if (flags
& NDR_OUT
) {
28105 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28107 return NDR_ERR_SUCCESS
;
28110 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
28112 ndr_print_struct(ndr
, name
, "spoolss_55");
28114 if (flags
& NDR_SET_VALUES
) {
28115 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28117 if (flags
& NDR_IN
) {
28118 ndr_print_struct(ndr
, "in", "spoolss_55");
28122 if (flags
& NDR_OUT
) {
28123 ndr_print_struct(ndr
, "out", "spoolss_55");
28125 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28131 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
28133 if (flags
& NDR_IN
) {
28135 if (flags
& NDR_OUT
) {
28136 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28138 return NDR_ERR_SUCCESS
;
28141 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
28143 if (flags
& NDR_IN
) {
28145 if (flags
& NDR_OUT
) {
28146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28148 return NDR_ERR_SUCCESS
;
28151 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
28153 ndr_print_struct(ndr
, name
, "spoolss_56");
28155 if (flags
& NDR_SET_VALUES
) {
28156 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28158 if (flags
& NDR_IN
) {
28159 ndr_print_struct(ndr
, "in", "spoolss_56");
28163 if (flags
& NDR_OUT
) {
28164 ndr_print_struct(ndr
, "out", "spoolss_56");
28166 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28172 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
28174 if (flags
& NDR_IN
) {
28176 if (flags
& NDR_OUT
) {
28177 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28179 return NDR_ERR_SUCCESS
;
28182 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
28184 if (flags
& NDR_IN
) {
28186 if (flags
& NDR_OUT
) {
28187 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28189 return NDR_ERR_SUCCESS
;
28192 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
28194 ndr_print_struct(ndr
, name
, "spoolss_57");
28196 if (flags
& NDR_SET_VALUES
) {
28197 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28199 if (flags
& NDR_IN
) {
28200 ndr_print_struct(ndr
, "in", "spoolss_57");
28204 if (flags
& NDR_OUT
) {
28205 ndr_print_struct(ndr
, "out", "spoolss_57");
28207 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28213 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
28215 if (flags
& NDR_IN
) {
28216 if (r
->in
.handle
== NULL
) {
28217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28219 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
28222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28223 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
));
28224 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
28225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
28226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28227 if (r
->in
.status_code
== NULL
) {
28228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
28232 if (flags
& NDR_OUT
) {
28233 if (r
->out
.out_data
== NULL
) {
28234 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28237 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
28238 if (r
->out
.needed
== NULL
) {
28239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28242 if (r
->out
.status_code
== NULL
) {
28243 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
28246 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28248 return NDR_ERR_SUCCESS
;
28251 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
28253 uint32_t size_function_name_0
= 0;
28254 uint32_t length_function_name_0
= 0;
28255 uint32_t size_out_data_1
= 0;
28256 TALLOC_CTX
*_mem_save_handle_0
;
28257 TALLOC_CTX
*_mem_save_needed_0
;
28258 TALLOC_CTX
*_mem_save_status_code_0
;
28259 if (flags
& NDR_IN
) {
28260 ZERO_STRUCT(r
->out
);
28262 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28263 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28265 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28266 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28267 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28269 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
28270 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
28271 size_function_name_0
= ndr_get_array_size(ndr
, &r
->in
.function_name
);
28272 length_function_name_0
= ndr_get_array_length(ndr
, &r
->in
.function_name
);
28273 if (length_function_name_0
> size_function_name_0
) {
28274 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_function_name_0
, length_function_name_0
);
28276 NDR_CHECK(ndr_check_string_terminator(ndr
, length_function_name_0
, sizeof(uint16_t)));
28277 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.function_name
, length_function_name_0
, sizeof(uint16_t), CH_UTF16
));
28278 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
28279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
28280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
28281 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28282 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
28284 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28285 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
28287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28288 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
28289 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
28290 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28291 ZERO_STRUCTP(r
->out
.needed
);
28292 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28293 *r
->out
.status_code
= *r
->in
.status_code
;
28295 if (flags
& NDR_OUT
) {
28296 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
28297 size_out_data_1
= ndr_get_array_size(ndr
, &r
->out
.out_data
);
28298 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28299 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, size_out_data_1
);
28301 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, size_out_data_1
));
28302 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28303 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28305 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28306 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28307 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28309 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28310 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28312 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28313 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
28315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28316 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28317 if (r
->out
.out_data
) {
28318 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
28321 return NDR_ERR_SUCCESS
;
28324 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
28326 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
28328 if (flags
& NDR_SET_VALUES
) {
28329 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28331 if (flags
& NDR_IN
) {
28332 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
28334 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28336 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28338 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
28339 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
28340 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
28341 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
28342 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
28344 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
28348 if (flags
& NDR_OUT
) {
28349 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
28351 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
28353 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
28355 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28357 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28359 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
28361 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
28363 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28369 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28371 if (flags
& NDR_IN
) {
28372 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
28373 if (r
->in
.servername
) {
28374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
28376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28379 if (r
->in
.info_ctr
== NULL
) {
28380 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28382 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28383 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
28385 if (flags
& NDR_OUT
) {
28386 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28388 return NDR_ERR_SUCCESS
;
28391 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
28393 uint32_t _ptr_servername
;
28394 uint32_t size_servername_1
= 0;
28395 uint32_t length_servername_1
= 0;
28396 TALLOC_CTX
*_mem_save_servername_0
;
28397 TALLOC_CTX
*_mem_save_info_ctr_0
;
28398 if (flags
& NDR_IN
) {
28399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
28400 if (_ptr_servername
) {
28401 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
28403 r
->in
.servername
= NULL
;
28405 if (r
->in
.servername
) {
28406 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28407 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
28408 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
28409 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
28410 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
28411 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
28412 if (length_servername_1
> size_servername_1
) {
28413 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
28415 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
28416 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
28417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
28419 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28420 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28422 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28423 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28424 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28426 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
28428 if (flags
& NDR_OUT
) {
28429 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28431 return NDR_ERR_SUCCESS
;
28434 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28436 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
28438 if (flags
& NDR_SET_VALUES
) {
28439 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28441 if (flags
& NDR_IN
) {
28442 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
28444 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
28446 if (r
->in
.servername
) {
28447 ndr_print_string(ndr
, "servername", r
->in
.servername
);
28450 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28452 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28454 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
28457 if (flags
& NDR_OUT
) {
28458 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
28460 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28466 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
28468 if (flags
& NDR_IN
) {
28470 if (flags
& NDR_OUT
) {
28471 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28473 return NDR_ERR_SUCCESS
;
28476 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
28478 if (flags
& NDR_IN
) {
28480 if (flags
& NDR_OUT
) {
28481 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28483 return NDR_ERR_SUCCESS
;
28486 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
28488 ndr_print_struct(ndr
, name
, "spoolss_5a");
28490 if (flags
& NDR_SET_VALUES
) {
28491 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28493 if (flags
& NDR_IN
) {
28494 ndr_print_struct(ndr
, "in", "spoolss_5a");
28498 if (flags
& NDR_OUT
) {
28499 ndr_print_struct(ndr
, "out", "spoolss_5a");
28501 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28507 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
28509 if (flags
& NDR_IN
) {
28511 if (flags
& NDR_OUT
) {
28512 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28514 return NDR_ERR_SUCCESS
;
28517 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
28519 if (flags
& NDR_IN
) {
28521 if (flags
& NDR_OUT
) {
28522 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28524 return NDR_ERR_SUCCESS
;
28527 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
28529 ndr_print_struct(ndr
, name
, "spoolss_5b");
28531 if (flags
& NDR_SET_VALUES
) {
28532 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28534 if (flags
& NDR_IN
) {
28535 ndr_print_struct(ndr
, "in", "spoolss_5b");
28539 if (flags
& NDR_OUT
) {
28540 ndr_print_struct(ndr
, "out", "spoolss_5b");
28542 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28548 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
28550 if (flags
& NDR_IN
) {
28552 if (flags
& NDR_OUT
) {
28553 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28555 return NDR_ERR_SUCCESS
;
28558 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
28560 if (flags
& NDR_IN
) {
28562 if (flags
& NDR_OUT
) {
28563 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28565 return NDR_ERR_SUCCESS
;
28568 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
28570 ndr_print_struct(ndr
, name
, "spoolss_5c");
28572 if (flags
& NDR_SET_VALUES
) {
28573 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28575 if (flags
& NDR_IN
) {
28576 ndr_print_struct(ndr
, "in", "spoolss_5c");
28580 if (flags
& NDR_OUT
) {
28581 ndr_print_struct(ndr
, "out", "spoolss_5c");
28583 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28589 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
28591 if (flags
& NDR_IN
) {
28593 if (flags
& NDR_OUT
) {
28594 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28596 return NDR_ERR_SUCCESS
;
28599 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
28601 if (flags
& NDR_IN
) {
28603 if (flags
& NDR_OUT
) {
28604 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28606 return NDR_ERR_SUCCESS
;
28609 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
28611 ndr_print_struct(ndr
, name
, "spoolss_5d");
28613 if (flags
& NDR_SET_VALUES
) {
28614 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28616 if (flags
& NDR_IN
) {
28617 ndr_print_struct(ndr
, "in", "spoolss_5d");
28621 if (flags
& NDR_OUT
) {
28622 ndr_print_struct(ndr
, "out", "spoolss_5d");
28624 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28630 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
28632 if (flags
& NDR_IN
) {
28634 if (flags
& NDR_OUT
) {
28635 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28637 return NDR_ERR_SUCCESS
;
28640 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
28642 if (flags
& NDR_IN
) {
28644 if (flags
& NDR_OUT
) {
28645 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28647 return NDR_ERR_SUCCESS
;
28650 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
28652 ndr_print_struct(ndr
, name
, "spoolss_5e");
28654 if (flags
& NDR_SET_VALUES
) {
28655 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28657 if (flags
& NDR_IN
) {
28658 ndr_print_struct(ndr
, "in", "spoolss_5e");
28662 if (flags
& NDR_OUT
) {
28663 ndr_print_struct(ndr
, "out", "spoolss_5e");
28665 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28671 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
28673 if (flags
& NDR_IN
) {
28675 if (flags
& NDR_OUT
) {
28676 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28678 return NDR_ERR_SUCCESS
;
28681 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
28683 if (flags
& NDR_IN
) {
28685 if (flags
& NDR_OUT
) {
28686 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28688 return NDR_ERR_SUCCESS
;
28691 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
28693 ndr_print_struct(ndr
, name
, "spoolss_5f");
28695 if (flags
& NDR_SET_VALUES
) {
28696 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28698 if (flags
& NDR_IN
) {
28699 ndr_print_struct(ndr
, "in", "spoolss_5f");
28703 if (flags
& NDR_OUT
) {
28704 ndr_print_struct(ndr
, "out", "spoolss_5f");
28706 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28712 static const struct ndr_interface_call spoolss_calls
[] = {
28714 "spoolss_EnumPrinters",
28715 sizeof(struct spoolss_EnumPrinters
),
28716 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
28717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
28718 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
28722 "spoolss_OpenPrinter",
28723 sizeof(struct spoolss_OpenPrinter
),
28724 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
28725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
28726 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
28731 sizeof(struct spoolss_SetJob
),
28732 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
28733 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
28734 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
28739 sizeof(struct spoolss_GetJob
),
28740 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
28741 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
28742 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
28746 "spoolss_EnumJobs",
28747 sizeof(struct spoolss_EnumJobs
),
28748 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
28749 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
28750 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
28754 "spoolss_AddPrinter",
28755 sizeof(struct spoolss_AddPrinter
),
28756 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
28757 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
28758 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
28762 "spoolss_DeletePrinter",
28763 sizeof(struct spoolss_DeletePrinter
),
28764 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
28765 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
28766 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
28770 "spoolss_SetPrinter",
28771 sizeof(struct spoolss_SetPrinter
),
28772 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
28773 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
28774 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
28778 "spoolss_GetPrinter",
28779 sizeof(struct spoolss_GetPrinter
),
28780 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
28781 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
28782 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
28786 "spoolss_AddPrinterDriver",
28787 sizeof(struct spoolss_AddPrinterDriver
),
28788 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
28789 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
28790 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
28794 "spoolss_EnumPrinterDrivers",
28795 sizeof(struct spoolss_EnumPrinterDrivers
),
28796 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
28797 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
28798 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
28802 "spoolss_GetPrinterDriver",
28803 sizeof(struct spoolss_GetPrinterDriver
),
28804 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
28805 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
28806 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
28810 "spoolss_GetPrinterDriverDirectory",
28811 sizeof(struct spoolss_GetPrinterDriverDirectory
),
28812 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
28813 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
28814 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
28818 "spoolss_DeletePrinterDriver",
28819 sizeof(struct spoolss_DeletePrinterDriver
),
28820 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
28821 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
28822 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
28826 "spoolss_AddPrintProcessor",
28827 sizeof(struct spoolss_AddPrintProcessor
),
28828 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
28829 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
28830 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
28834 "spoolss_EnumPrintProcessors",
28835 sizeof(struct spoolss_EnumPrintProcessors
),
28836 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
28837 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
28838 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
28842 "spoolss_GetPrintProcessorDirectory",
28843 sizeof(struct spoolss_GetPrintProcessorDirectory
),
28844 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
28845 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
28846 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
28850 "spoolss_StartDocPrinter",
28851 sizeof(struct spoolss_StartDocPrinter
),
28852 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
28853 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
28854 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
28858 "spoolss_StartPagePrinter",
28859 sizeof(struct spoolss_StartPagePrinter
),
28860 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
28861 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
28862 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
28866 "spoolss_WritePrinter",
28867 sizeof(struct spoolss_WritePrinter
),
28868 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
28869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
28870 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
28874 "spoolss_EndPagePrinter",
28875 sizeof(struct spoolss_EndPagePrinter
),
28876 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
28877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
28878 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
28882 "spoolss_AbortPrinter",
28883 sizeof(struct spoolss_AbortPrinter
),
28884 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
28885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
28886 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
28890 "spoolss_ReadPrinter",
28891 sizeof(struct spoolss_ReadPrinter
),
28892 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
28893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
28894 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
28898 "spoolss_EndDocPrinter",
28899 sizeof(struct spoolss_EndDocPrinter
),
28900 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
28901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
28902 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
28907 sizeof(struct spoolss_AddJob
),
28908 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
28909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
28910 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
28914 "spoolss_ScheduleJob",
28915 sizeof(struct spoolss_ScheduleJob
),
28916 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
28917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
28918 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
28922 "spoolss_GetPrinterData",
28923 sizeof(struct spoolss_GetPrinterData
),
28924 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
28925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
28926 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
28930 "spoolss_SetPrinterData",
28931 sizeof(struct spoolss_SetPrinterData
),
28932 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
28933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
28934 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
28938 "spoolss_WaitForPrinterChange",
28939 sizeof(struct spoolss_WaitForPrinterChange
),
28940 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
28941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
28942 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
28946 "spoolss_ClosePrinter",
28947 sizeof(struct spoolss_ClosePrinter
),
28948 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
28949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
28950 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
28955 sizeof(struct spoolss_AddForm
),
28956 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
28957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
28958 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
28962 "spoolss_DeleteForm",
28963 sizeof(struct spoolss_DeleteForm
),
28964 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
28965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
28966 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
28971 sizeof(struct spoolss_GetForm
),
28972 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
28973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
28974 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
28979 sizeof(struct spoolss_SetForm
),
28980 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
28981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
28982 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
28986 "spoolss_EnumForms",
28987 sizeof(struct spoolss_EnumForms
),
28988 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
28989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
28990 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
28994 "spoolss_EnumPorts",
28995 sizeof(struct spoolss_EnumPorts
),
28996 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
28997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
28998 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
29002 "spoolss_EnumMonitors",
29003 sizeof(struct spoolss_EnumMonitors
),
29004 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
29005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
29006 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
29011 sizeof(struct spoolss_AddPort
),
29012 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
29013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
29014 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
29018 "spoolss_ConfigurePort",
29019 sizeof(struct spoolss_ConfigurePort
),
29020 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
29021 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
29022 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
29026 "spoolss_DeletePort",
29027 sizeof(struct spoolss_DeletePort
),
29028 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
29029 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
29030 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
29034 "spoolss_CreatePrinterIC",
29035 sizeof(struct spoolss_CreatePrinterIC
),
29036 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
29037 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
29038 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
29042 "spoolss_PlayGDIScriptOnPrinterIC",
29043 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
29044 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
29045 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
29046 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
29050 "spoolss_DeletePrinterIC",
29051 sizeof(struct spoolss_DeletePrinterIC
),
29052 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
29053 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
29054 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
29058 "spoolss_AddPrinterConnection",
29059 sizeof(struct spoolss_AddPrinterConnection
),
29060 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
29061 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
29062 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
29066 "spoolss_DeletePrinterConnection",
29067 sizeof(struct spoolss_DeletePrinterConnection
),
29068 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
29069 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
29070 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
29074 "spoolss_PrinterMessageBox",
29075 sizeof(struct spoolss_PrinterMessageBox
),
29076 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
29077 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
29078 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
29082 "spoolss_AddMonitor",
29083 sizeof(struct spoolss_AddMonitor
),
29084 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
29085 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
29086 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
29090 "spoolss_DeleteMonitor",
29091 sizeof(struct spoolss_DeleteMonitor
),
29092 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
29093 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
29094 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
29098 "spoolss_DeletePrintProcessor",
29099 sizeof(struct spoolss_DeletePrintProcessor
),
29100 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
29101 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
29102 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
29106 "spoolss_AddPrintProvidor",
29107 sizeof(struct spoolss_AddPrintProvidor
),
29108 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
29109 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
29110 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
29114 "spoolss_DeletePrintProvidor",
29115 sizeof(struct spoolss_DeletePrintProvidor
),
29116 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
29117 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
29118 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
29122 "spoolss_EnumPrintProcDataTypes",
29123 sizeof(struct spoolss_EnumPrintProcDataTypes
),
29124 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
29125 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
29126 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
29130 "spoolss_ResetPrinter",
29131 sizeof(struct spoolss_ResetPrinter
),
29132 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
29133 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
29134 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
29138 "spoolss_GetPrinterDriver2",
29139 sizeof(struct spoolss_GetPrinterDriver2
),
29140 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
29141 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
29142 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
29146 "spoolss_FindFirstPrinterChangeNotification",
29147 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
29148 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
29149 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
29150 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
29154 "spoolss_FindNextPrinterChangeNotification",
29155 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
29156 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
29157 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
29158 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
29162 "spoolss_FindClosePrinterNotify",
29163 sizeof(struct spoolss_FindClosePrinterNotify
),
29164 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
29165 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
29166 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
29170 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
29171 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
29172 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
29173 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
29174 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
29178 "spoolss_ReplyOpenPrinter",
29179 sizeof(struct spoolss_ReplyOpenPrinter
),
29180 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
29181 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
29182 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
29186 "spoolss_RouterReplyPrinter",
29187 sizeof(struct spoolss_RouterReplyPrinter
),
29188 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
29189 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
29190 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
29194 "spoolss_ReplyClosePrinter",
29195 sizeof(struct spoolss_ReplyClosePrinter
),
29196 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
29197 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
29198 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
29202 "spoolss_AddPortEx",
29203 sizeof(struct spoolss_AddPortEx
),
29204 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
29205 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
29206 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
29210 "spoolss_RouterFindFirstPrinterChangeNotification",
29211 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
29212 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
29213 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
29214 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
29218 "spoolss_SpoolerInit",
29219 sizeof(struct spoolss_SpoolerInit
),
29220 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
29221 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
29222 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
29226 "spoolss_ResetPrinterEx",
29227 sizeof(struct spoolss_ResetPrinterEx
),
29228 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
29229 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
29230 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
29234 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
29235 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
29236 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
29237 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
29238 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
29242 "spoolss_RouterReplyPrinterEx",
29243 sizeof(struct spoolss_RouterReplyPrinterEx
),
29244 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
29245 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
29246 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
29250 "spoolss_RouterRefreshPrinterChangeNotify",
29251 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
29252 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
29253 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
29254 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
29259 sizeof(struct spoolss_44
),
29260 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
29261 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
29262 (ndr_print_function_t
) ndr_print_spoolss_44
,
29266 "spoolss_OpenPrinterEx",
29267 sizeof(struct spoolss_OpenPrinterEx
),
29268 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
29269 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
29270 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
29274 "spoolss_AddPrinterEx",
29275 sizeof(struct spoolss_AddPrinterEx
),
29276 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
29277 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
29278 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
29283 sizeof(struct spoolss_47
),
29284 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
29285 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
29286 (ndr_print_function_t
) ndr_print_spoolss_47
,
29290 "spoolss_EnumPrinterData",
29291 sizeof(struct spoolss_EnumPrinterData
),
29292 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
29293 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
29294 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
29298 "spoolss_DeletePrinterData",
29299 sizeof(struct spoolss_DeletePrinterData
),
29300 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
29301 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
29302 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
29307 sizeof(struct spoolss_4a
),
29308 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
29309 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
29310 (ndr_print_function_t
) ndr_print_spoolss_4a
,
29315 sizeof(struct spoolss_4b
),
29316 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
29317 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
29318 (ndr_print_function_t
) ndr_print_spoolss_4b
,
29323 sizeof(struct spoolss_4c
),
29324 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
29325 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
29326 (ndr_print_function_t
) ndr_print_spoolss_4c
,
29330 "spoolss_SetPrinterDataEx",
29331 sizeof(struct spoolss_SetPrinterDataEx
),
29332 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
29333 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
29334 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
29338 "spoolss_GetPrinterDataEx",
29339 sizeof(struct spoolss_GetPrinterDataEx
),
29340 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
29341 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
29342 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
29346 "spoolss_EnumPrinterDataEx",
29347 sizeof(struct spoolss_EnumPrinterDataEx
),
29348 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
29349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
29350 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
29354 "spoolss_EnumPrinterKey",
29355 sizeof(struct spoolss_EnumPrinterKey
),
29356 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
29357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
29358 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
29362 "spoolss_DeletePrinterDataEx",
29363 sizeof(struct spoolss_DeletePrinterDataEx
),
29364 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
29365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
29366 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
29370 "spoolss_DeletePrinterKey",
29371 sizeof(struct spoolss_DeletePrinterKey
),
29372 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
29373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
29374 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
29379 sizeof(struct spoolss_53
),
29380 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
29381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
29382 (ndr_print_function_t
) ndr_print_spoolss_53
,
29386 "spoolss_DeletePrinterDriverEx",
29387 sizeof(struct spoolss_DeletePrinterDriverEx
),
29388 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
29389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
29390 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
29395 sizeof(struct spoolss_55
),
29396 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
29397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
29398 (ndr_print_function_t
) ndr_print_spoolss_55
,
29403 sizeof(struct spoolss_56
),
29404 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
29405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
29406 (ndr_print_function_t
) ndr_print_spoolss_56
,
29411 sizeof(struct spoolss_57
),
29412 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
29413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
29414 (ndr_print_function_t
) ndr_print_spoolss_57
,
29419 sizeof(struct spoolss_XcvData
),
29420 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
29421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
29422 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
29426 "spoolss_AddPrinterDriverEx",
29427 sizeof(struct spoolss_AddPrinterDriverEx
),
29428 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
29429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
29430 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
29435 sizeof(struct spoolss_5a
),
29436 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
29437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
29438 (ndr_print_function_t
) ndr_print_spoolss_5a
,
29443 sizeof(struct spoolss_5b
),
29444 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
29445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
29446 (ndr_print_function_t
) ndr_print_spoolss_5b
,
29451 sizeof(struct spoolss_5c
),
29452 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
29453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
29454 (ndr_print_function_t
) ndr_print_spoolss_5c
,
29459 sizeof(struct spoolss_5d
),
29460 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
29461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
29462 (ndr_print_function_t
) ndr_print_spoolss_5d
,
29467 sizeof(struct spoolss_5e
),
29468 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
29469 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
29470 (ndr_print_function_t
) ndr_print_spoolss_5e
,
29475 sizeof(struct spoolss_5f
),
29476 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
29477 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
29478 (ndr_print_function_t
) ndr_print_spoolss_5f
,
29481 { NULL
, 0, NULL
, NULL
, NULL
, false }
29484 static const char * const spoolss_endpoint_strings
[] = {
29485 "ncacn_np:[\\pipe\\spoolss]",
29488 static const struct ndr_interface_string_array spoolss_endpoints
= {
29490 .names
= spoolss_endpoint_strings
29493 static const char * const spoolss_authservice_strings
[] = {
29497 static const struct ndr_interface_string_array spoolss_authservices
= {
29499 .names
= spoolss_authservice_strings
29503 const struct ndr_interface_table ndr_table_spoolss
= {
29506 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
29507 NDR_SPOOLSS_VERSION
29509 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
29511 .calls
= spoolss_calls
,
29512 .endpoints
= &spoolss_endpoints
,
29513 .authservices
= &spoolss_authservices