xref: /illumos-gate/usr/src/uts/common/smbsrv/ndl/spoolss.ndl (revision 581cede61ac9c14d8d4ea452562a567189eead78)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23 * Use is subject to license terms.
24 */
25
26#ifndef _MLSVC_SPOOLSS_NDL_
27#define _MLSVC_SPOOLSS_NDL_
28
29/*
30 * Printing and Spooling RPC interface definition.
31 */
32
33#include "ndrtypes.ndl"
34
35
36/*
37 * The spoolss opcodes.
38 */
39#define SPOOLSS_OPNUM_OpenPrinter			0x01
40#define SPOOLSS_OPNUM_GetJob				0x03
41#define SPOOLSS_OPNUM_DeletePrinter			0x06
42#define SPOOLSS_OPNUM_GetPrinterDriver			0x0b
43#define SPOOLSS_OPNUM_DeletePrinterDriver		0x0d
44#define SPOOLSS_OPNUM_AddPrintProcessor			0x0e
45#define SPOOLSS_OPNUM_GetPrintProcessorDirectory	0x10
46#define SPOOLSS_OPNUM_AbortPrinter			0x15
47#define SPOOLSS_OPNUM_ReadPrinter			0x16
48#define SPOOLSS_OPNUM_WaitForPrinterChange		0x1c
49#define SPOOLSS_OPNUM_AddForm				0x1e
50#define SPOOLSS_OPNUM_DeleteForm			0x1f
51#define SPOOLSS_OPNUM_GetForm				0x20
52#define SPOOLSS_OPNUM_SetForm				0x21
53#define SPOOLSS_OPNUM_EnumMonitors			0x24
54#define SPOOLSS_OPNUM_AddPort				0x25
55#define SPOOLSS_OPNUM_ConfigurePort			0x26
56#define SPOOLSS_OPNUM_DeletePort			0x27
57#define SPOOLSS_OPNUM_CreatePrinterIc			0x28
58#define SPOOLSS_OPNUM_PlayDescriptionPrinterIc		0x29
59#define SPOOLSS_OPNUM_DeletePrinterIc			0x2a
60#define SPOOLSS_OPNUM_AddPrinterConnection		0x2b
61#define SPOOLSS_OPNUM_DeletePrinterConnection		0x2c
62#define SPOOLSS_OPNUM_PrinterMessageBox			0x2d
63#define SPOOLSS_OPNUM_AddMonitor			0x2e
64#define SPOOLSS_OPNUM_DeleteMonitor			0x2f
65#define SPOOLSS_OPNUM_DeletePrintProcessor		0x30
66#define SPOOLSS_OPNUM_AddPrintProvider			0x31
67#define SPOOLSS_OPNUM_DeletePrintProvider		0x32
68#define SPOOLSS_OPNUM_ResetPrinter			0x34
69#define SPOOLSS_OPNUM_FindFirstChangeNotify		0x36
70#define SPOOLSS_OPNUM_FindNextChangeNotify		0x37
71#define SPOOLSS_OPNUM_RouterFindFirstNotify		0x39
72#define SPOOLSS_OPNUM_ReplyOpenPrinter			0x3a
73#define SPOOLSS_OPNUM_RouterReplyPrinter                0x3b
74#define SPOOLSS_OPNUM_ReplyClosePrinter			0x3c
75#define SPOOLSS_OPNUM_AddPortEx				0x3d
76#define SPOOLSS_OPNUM_RemoteFindFirstChangeNotify	0x3e
77#define SPOOLSS_OPNUM_SpoolerInitialize			0x3f
78#define SPOOLSS_OPNUM_ResetPrinterEx			0x40
79#define SPOOLSS_OPNUM_RouterRefreshChangeNotify		0x42
80#define SPOOLSS_OPNUM_OpenPrinter2			0x45
81
82
83CONTEXT_HANDLE(spoolss_handle) spoolss_handle_t;
84
85
86OPERATION(SPOOLSS_OPNUM_OpenPrinter)
87struct spoolss_OpenPrinter {
88	IN	DWORD dontcare;
89	OUT	spoolss_handle_t handle;
90	OUT	DWORD status;
91};
92
93
94OPERATION(SPOOLSS_OPNUM_GetJob)
95struct spoolss_GetJob {
96	IN	DWORD dontcare;
97	OUT	DWORD status;
98};
99
100
101OPERATION(SPOOLSS_OPNUM_DeletePrinter)
102struct spoolss_DeletePrinter {
103	IN	DWORD dontcare;
104	OUT	DWORD status;
105};
106
107
108OPERATION(SPOOLSS_OPNUM_GetPrinterDriver)
109struct spoolss_GetPrinterDriver {
110	IN	DWORD dontcare;
111	OUT	DWORD status;
112};
113
114
115OPERATION(SPOOLSS_OPNUM_DeletePrinterDriver)
116struct spoolss_DeletePrinterDriver {
117	IN	DWORD dontcare;
118	OUT	DWORD status;
119};
120
121
122OPERATION(SPOOLSS_OPNUM_AddPrintProcessor)
123struct spoolss_AddPrintProcessor {
124	IN	DWORD dontcare;
125	OUT	DWORD status;
126};
127
128
129OPERATION(SPOOLSS_OPNUM_GetPrintProcessorDirectory)
130struct spoolss_GetPrintProcessorDirectory {
131	IN	DWORD dontcare;
132	OUT	DWORD status;
133};
134
135
136OPERATION(SPOOLSS_OPNUM_AbortPrinter)
137struct spoolss_AbortPrinter {
138	IN	DWORD dontcare;
139	OUT	DWORD status;
140};
141
142
143OPERATION(SPOOLSS_OPNUM_ReadPrinter)
144struct spoolss_ReadPrinter {
145	IN	DWORD dontcare;
146	OUT	DWORD status;
147};
148
149
150OPERATION(SPOOLSS_OPNUM_WaitForPrinterChange)
151struct spoolss_WaitForPrinterChange {
152	IN	DWORD dontcare;
153	OUT	DWORD status;
154};
155
156
157OPERATION(SPOOLSS_OPNUM_AddForm)
158struct spoolss_AddForm {
159	IN	DWORD dontcare;
160	OUT	DWORD status;
161};
162
163
164OPERATION(SPOOLSS_OPNUM_DeleteForm)
165struct spoolss_DeleteForm {
166	IN	DWORD dontcare;
167	OUT	DWORD status;
168};
169
170
171OPERATION(SPOOLSS_OPNUM_GetForm)
172struct spoolss_GetForm {
173	IN	DWORD dontcare;
174	OUT	DWORD status;
175};
176
177
178OPERATION(SPOOLSS_OPNUM_SetForm)
179struct spoolss_SetForm {
180	IN	DWORD dontcare;
181	OUT	DWORD status;
182};
183
184
185OPERATION(SPOOLSS_OPNUM_EnumMonitors)
186struct spoolss_EnumMonitors {
187	IN	DWORD dontcare;
188	OUT	DWORD status;
189};
190
191
192OPERATION(SPOOLSS_OPNUM_AddPort)
193struct spoolss_AddPort {
194	IN	DWORD dontcare;
195	OUT	DWORD status;
196};
197
198
199OPERATION(SPOOLSS_OPNUM_ConfigurePort)
200struct spoolss_ConfigurePort {
201	IN	DWORD dontcare;
202	OUT	DWORD status;
203};
204
205
206OPERATION(SPOOLSS_OPNUM_DeletePort)
207struct spoolss_DeletePort {
208	IN	DWORD dontcare;
209	OUT	DWORD status;
210};
211
212
213OPERATION(SPOOLSS_OPNUM_CreatePrinterIc)
214struct spoolss_CreatePrinterIc {
215	IN	DWORD dontcare;
216	OUT	DWORD status;
217};
218
219
220OPERATION(SPOOLSS_OPNUM_PlayDescriptionPrinterIc)
221struct spoolss_PlayDescriptionPrinterIc {
222	IN	DWORD dontcare;
223	OUT	DWORD status;
224};
225
226
227OPERATION(SPOOLSS_OPNUM_DeletePrinterIc)
228struct spoolss_DeletePrinterIc {
229	IN	DWORD dontcare;
230	OUT	DWORD status;
231};
232
233
234OPERATION(SPOOLSS_OPNUM_AddPrinterConnection)
235struct spoolss_AddPrinterConnection {
236	IN	DWORD dontcare;
237	OUT	DWORD status;
238};
239
240
241OPERATION(SPOOLSS_OPNUM_DeletePrinterConnection)
242struct spoolss_DeletePrinterConnection {
243	IN	DWORD dontcare;
244	OUT	DWORD status;
245};
246
247
248OPERATION(SPOOLSS_OPNUM_PrinterMessageBox)
249struct spoolss_PrinterMessageBox {
250	IN	DWORD dontcare;
251	OUT	DWORD status;
252};
253
254
255OPERATION(SPOOLSS_OPNUM_AddMonitor)
256struct spoolss_AddMonitor {
257	IN	DWORD dontcare;
258	OUT	DWORD status;
259};
260
261
262OPERATION(SPOOLSS_OPNUM_DeleteMonitor)
263struct spoolss_DeleteMonitor {
264	IN	DWORD dontcare;
265	OUT	DWORD status;
266};
267
268
269OPERATION(SPOOLSS_OPNUM_DeletePrintProcessor)
270struct spoolss_DeletePrintProcessor {
271	IN	DWORD dontcare;
272	OUT	DWORD status;
273};
274
275
276OPERATION(SPOOLSS_OPNUM_AddPrintProvider)
277struct spoolss_AddPrintProvider {
278	IN	DWORD dontcare;
279	OUT	DWORD status;
280};
281
282
283OPERATION(SPOOLSS_OPNUM_DeletePrintProvider)
284struct spoolss_DeletePrintProvider {
285	IN	DWORD dontcare;
286	OUT	DWORD status;
287};
288
289
290OPERATION(SPOOLSS_OPNUM_ResetPrinter)
291struct spoolss_ResetPrinter {
292	IN	DWORD dontcare;
293	OUT	DWORD status;
294};
295
296
297OPERATION(SPOOLSS_OPNUM_FindFirstChangeNotify)
298struct spoolss_FindFirstChangeNotify {
299	IN	DWORD dontcare;
300	OUT	DWORD status;
301};
302
303
304OPERATION(SPOOLSS_OPNUM_FindNextChangeNotify)
305struct spoolss_FindNextChangeNotify {
306	IN	DWORD dontcare;
307	OUT	DWORD status;
308};
309
310
311OPERATION(SPOOLSS_OPNUM_RouterFindFirstNotify)
312struct spoolss_RouterFindFirstNotify {
313	IN	DWORD dontcare;
314	OUT	DWORD status;
315};
316
317
318OPERATION(SPOOLSS_OPNUM_ReplyOpenPrinter)
319struct spoolss_ReplyOpenPrinter {
320	IN	DWORD dontcare;
321	OUT	DWORD status;
322};
323
324
325OPERATION(SPOOLSS_OPNUM_RouterReplyPrinter)
326struct spoolss_RouterReplyPrinter {
327	IN	DWORD dontcare;
328	OUT	DWORD status;
329};
330
331
332OPERATION(SPOOLSS_OPNUM_ReplyClosePrinter)
333struct spoolss_ReplyClosePrinter {
334	IN	DWORD dontcare;
335	OUT	DWORD status;
336};
337
338
339OPERATION(SPOOLSS_OPNUM_AddPortEx)
340struct spoolss_AddPortEx {
341	IN	DWORD dontcare;
342	OUT	DWORD status;
343};
344
345
346OPERATION(SPOOLSS_OPNUM_RemoteFindFirstChangeNotify)
347struct spoolss_RemoteFindFirstChangeNotify {
348	IN	DWORD dontcare;
349	OUT	DWORD status;
350};
351
352
353OPERATION(SPOOLSS_OPNUM_SpoolerInitialize)
354struct spoolss_SpoolerInitialize {
355	IN	DWORD dontcare;
356	OUT	DWORD status;
357};
358
359
360OPERATION(SPOOLSS_OPNUM_ResetPrinterEx)
361struct spoolss_ResetPrinterEx {
362	IN	DWORD dontcare;
363	OUT	DWORD status;
364};
365
366
367OPERATION(SPOOLSS_OPNUM_RouterRefreshChangeNotify)
368struct spoolss_RouterRefreshChangeNotify {
369	IN	DWORD dontcare;
370	OUT	DWORD status;
371};
372
373
374OPERATION(SPOOLSS_OPNUM_OpenPrinter2)
375struct spoolss_OpenPrinter2 {
376	IN	DWORD dontcare;
377	OUT	spoolss_handle_t handle;
378	OUT	DWORD status;
379};
380
381
382/*
383 ***********************************************************************
384 * The spoolss interface definition.
385 ***********************************************************************
386 */
387INTERFACE(0)
388union spoolss_interface {
389 	CASE(SPOOLSS_OPNUM_OpenPrinter)
390		struct spoolss_OpenPrinter		OpenPrinter;
391 	CASE(SPOOLSS_OPNUM_GetJob)
392		struct spoolss_GetJob			GetJob;
393	CASE(SPOOLSS_OPNUM_DeletePrinter)
394		struct spoolss_DeletePrinter		DeletePrinter;
395	CASE(SPOOLSS_OPNUM_GetPrinterDriver)
396		struct spoolss_GetPrinterDriver		GetPrinterDriver;
397	CASE(SPOOLSS_OPNUM_DeletePrinterDriver)
398		struct spoolss_DeletePrinterDriver	DeletePrinterDriver;
399	CASE(SPOOLSS_OPNUM_AddPrintProcessor)
400		struct spoolss_AddPrintProcessor	AddPrintProcessor;
401	CASE(SPOOLSS_OPNUM_GetPrintProcessorDirectory)
402		struct spoolss_GetPrintProcessorDirectory
403						GetPrintProcessorDirectory;
404	CASE(SPOOLSS_OPNUM_AbortPrinter)
405		struct spoolss_AbortPrinter		AbortPrinter;
406	CASE(SPOOLSS_OPNUM_ReadPrinter)
407		struct spoolss_ReadPrinter		ReadPrinter;
408	CASE(SPOOLSS_OPNUM_WaitForPrinterChange)
409		struct spoolss_WaitForPrinterChange	WaitForPrinterChange;
410	CASE(SPOOLSS_OPNUM_AddForm)
411		struct spoolss_AddForm			AddForm;
412	CASE(SPOOLSS_OPNUM_DeleteForm)
413		struct spoolss_DeleteForm		DeleteForm;
414	CASE(SPOOLSS_OPNUM_GetForm)
415		struct spoolss_GetForm			GetForm;
416	CASE(SPOOLSS_OPNUM_SetForm)
417		struct spoolss_SetForm			SetForm;
418	CASE(SPOOLSS_OPNUM_EnumMonitors)
419		struct spoolss_EnumMonitors		EnumMonitors;
420	CASE(SPOOLSS_OPNUM_AddPort)
421		struct spoolss_AddPort			AddPort;
422	CASE(SPOOLSS_OPNUM_ConfigurePort)
423		struct spoolss_ConfigurePort		ConfigurePort;
424	CASE(SPOOLSS_OPNUM_DeletePort)
425		struct spoolss_DeletePort		DeletePort;
426	CASE(SPOOLSS_OPNUM_CreatePrinterIc)
427		struct spoolss_CreatePrinterIc		CreatePrinterIc;
428	CASE(SPOOLSS_OPNUM_PlayDescriptionPrinterIc)
429		struct spoolss_PlayDescriptionPrinterIc
430						PlayDescriptionPrinterIc;
431	CASE(SPOOLSS_OPNUM_DeletePrinterIc)
432		struct spoolss_DeletePrinterIc		DeletePrinterIc;
433	CASE(SPOOLSS_OPNUM_AddPrinterConnection)
434		struct spoolss_AddPrinterConnection	AddPrinterConnection;
435	CASE(SPOOLSS_OPNUM_DeletePrinterConnection)
436		struct spoolss_DeletePrinterConnection	DeletePrinterConnection;
437	CASE(SPOOLSS_OPNUM_PrinterMessageBox)
438		struct spoolss_PrinterMessageBox	PrinterMessageBox;
439	CASE(SPOOLSS_OPNUM_AddMonitor)
440		struct spoolss_AddMonitor		AddMonitor;
441	CASE(SPOOLSS_OPNUM_DeleteMonitor)
442		struct spoolss_DeleteMonitor		DeleteMonitor;
443	CASE(SPOOLSS_OPNUM_DeletePrintProcessor)
444		struct spoolss_DeletePrintProcessor	DeletePrintProcessor;
445	CASE(SPOOLSS_OPNUM_AddPrintProvider)
446		struct spoolss_AddPrintProvider		AddPrintProvider;
447	CASE(SPOOLSS_OPNUM_DeletePrintProvider)
448		struct spoolss_DeletePrintProvider	DeletePrintProvider;
449	CASE(SPOOLSS_OPNUM_ResetPrinter)
450		struct spoolss_ResetPrinter		ResetPrinter;
451	CASE(SPOOLSS_OPNUM_FindFirstChangeNotify)
452		struct spoolss_FindFirstChangeNotify	FindFirstChangeNotify;
453	CASE(SPOOLSS_OPNUM_FindNextChangeNotify)
454		struct spoolss_FindNextChangeNotify	FindNextChangeNotify;
455	CASE(SPOOLSS_OPNUM_RouterFindFirstNotify)
456		struct spoolss_RouterFindFirstNotify	RouterFindFirstNotify;
457	CASE(SPOOLSS_OPNUM_ReplyOpenPrinter)
458		struct spoolss_ReplyOpenPrinter		ReplyOpenPrinter;
459	CASE(SPOOLSS_OPNUM_RouterReplyPrinter)
460		struct spoolss_RouterReplyPrinter	RouterReplyPrinter;
461	CASE(SPOOLSS_OPNUM_ReplyClosePrinter)
462		struct spoolss_ReplyClosePrinter	ReplyClosePrinter;
463	CASE(SPOOLSS_OPNUM_AddPortEx)
464		struct spoolss_AddPortEx		AddPortEx;
465	CASE(SPOOLSS_OPNUM_RemoteFindFirstChangeNotify)
466		struct spoolss_RemoteFindFirstChangeNotify
467						RemoteFindFirstChangeNotify;
468	CASE(SPOOLSS_OPNUM_SpoolerInitialize)
469		struct spoolss_SpoolerInitialize	SpoolerInitialize;
470	CASE(SPOOLSS_OPNUM_ResetPrinterEx)
471		struct spoolss_ResetPrinterEx		ResetPrinterEx;
472	CASE(SPOOLSS_OPNUM_RouterRefreshChangeNotify)
473		struct spoolss_RouterRefreshChangeNotify
474						RouterRefreshChangeNotify;
475	CASE(SPOOLSS_OPNUM_OpenPrinter2)
476		struct spoolss_OpenPrinter2		OpenPrinter2;
477};
478typedef union spoolss_interface	spoolss_interface_t;
479EXTERNTYPEINFO(spoolss_interface)
480
481#endif /* _MLSVC_SPOOLSS_NDL_ */
482