xref: /titanic_52/usr/src/uts/common/smbsrv/ndl/spoolss.ndl (revision fd9ee8b58485b20072eeef1310a88ff348d5e7fa)
1da6c28aaSamw/*
2da6c28aaSamw * CDDL HEADER START
3da6c28aaSamw *
4da6c28aaSamw * The contents of this file are subject to the terms of the
5da6c28aaSamw * Common Development and Distribution License (the "License").
6da6c28aaSamw * You may not use this file except in compliance with the License.
7da6c28aaSamw *
8da6c28aaSamw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da6c28aaSamw * or http://www.opensolaris.org/os/licensing.
10da6c28aaSamw * See the License for the specific language governing permissions
11da6c28aaSamw * and limitations under the License.
12da6c28aaSamw *
13da6c28aaSamw * When distributing Covered Code, include this CDDL HEADER in each
14da6c28aaSamw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da6c28aaSamw * If applicable, add the following below this CDDL HEADER, with the
16da6c28aaSamw * fields enclosed by brackets "[]" replaced with your own identifying
17da6c28aaSamw * information: Portions Copyright [yyyy] [name of copyright owner]
18da6c28aaSamw *
19da6c28aaSamw * CDDL HEADER END
20da6c28aaSamw */
21da6c28aaSamw/*
22cb174861Sjoyce mcintosh * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23da6c28aaSamw */
24da6c28aaSamw
25cb174861Sjoyce mcintosh#ifndef _SPOOLSS_NDL_
26cb174861Sjoyce mcintosh#define	_SPOOLSS_NDL_
27da6c28aaSamw
28da6c28aaSamw#include "ndrtypes.ndl"
29cb174861Sjoyce mcintosh#include "security.ndl"
30da6c28aaSamw
31cb174861Sjoyce mcintosh#define TABLE_STRING 1
32cb174861Sjoyce mcintosh#define TABLE_DWORD  2
33cb174861Sjoyce mcintosh#define TABLE_TIME   3
34cb174861Sjoyce mcintosh#define TABLE_DEVMODE 4
35cb174861Sjoyce mcintosh#define TABLE_SECURITY_DESCRIPTOR 5
36da6c28aaSamw
37*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumPrinters			0x00
38da6c28aaSamw#define SPOOLSS_OPNUM_OpenPrinter			0x01
39da6c28aaSamw#define SPOOLSS_OPNUM_GetJob				0x03
40cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumJobs				0x04
41da6c28aaSamw#define SPOOLSS_OPNUM_DeletePrinter			0x06
42cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_GetPrinter			0x08
43da6c28aaSamw#define SPOOLSS_OPNUM_GetPrinterDriver			0x0b
44da6c28aaSamw#define SPOOLSS_OPNUM_DeletePrinterDriver		0x0d
45cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_StartDocPrinter			0x11
46cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_StartPagePrinter			0x12
47cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_WritePrinter			0x13
48cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EndPagePrinter			0x14
49da6c28aaSamw#define SPOOLSS_OPNUM_AbortPrinter			0x15
50cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_AddJob				0x18
51cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_ScheduleJob			0x19
52cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_GetPrinterData			0x1a
53cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_ClosePrinter			0x1d
54*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_AddForm				0x1e
55*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_DeleteForm			0x1f
56cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EndDocPrinter			0x17
57cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumForms				0x22
58*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumPorts				0x23
59*fd9ee8b5Sjoyce mcintosh#define	SPOOLSS_OPNUM_EnumMonitor			0x24
60*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_DeletePort			0x27
61cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_CreatePrinterIC			0x28
62*fd9ee8b5Sjoyce mcintosh#define	SPOOLSS_OPNUM_AddMonitor			0x2e
63*fd9ee8b5Sjoyce mcintosh#define	SPOOLSS_OPNUM_DeleteMonitor			0x2f
64da6c28aaSamw#define SPOOLSS_OPNUM_ResetPrinter			0x34
65cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_GetPrinterDriver2			0x35
66cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_FCPN				0x38
67da6c28aaSamw#define SPOOLSS_OPNUM_ReplyOpenPrinter			0x3a
68da6c28aaSamw#define SPOOLSS_OPNUM_ReplyClosePrinter			0x3c
69*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_AddPortEx				0x3d
70cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_RFFPCNEX				0x41
71cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_RRPCN				0x42
72cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_RFNPCNEX				0x43
73cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_OpenPrinterEx			0x45
74*fd9ee8b5Sjoyce mcintosh#define SPOOLSS_OPNUM_SetPort				0x47
75cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumPrinterData			0x48
76cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumPrinterDataEx			0x4f
77cb174861Sjoyce mcintosh#define SPOOLSS_OPNUM_EnumPrinterKey			0x50
78da6c28aaSamw
798d7e4166Sjose borregoCONTEXT_HANDLE(spoolss_handle) spoolss_handle_t;
80da6c28aaSamw
81cb174861Sjoyce mcintoshstruct spoolssDevmodeContainer {
82cb174861Sjoyce mcintosh	BYTE 	DevContCount;
83cb174861Sjoyce mcintosh  SIZE_IS(DevContCount)
84cb174861Sjoyce mcintosh  	BYTE	*DevMode;
85cb174861Sjoyce mcintosh};
86cb174861Sjoyce mcintosh
87cb174861Sjoyce mcintosh
88cb174861Sjoyce mcintoshstruct spoolss_DeviceMode {
89cb174861Sjoyce mcintosh	BYTE devicename[64];
90cb174861Sjoyce mcintosh	WORD specversion;
91cb174861Sjoyce mcintosh	WORD driverversion;
92cb174861Sjoyce mcintosh	WORD size;
93cb174861Sjoyce mcintosh	WORD driverextra_length;
94cb174861Sjoyce mcintosh	DWORD	fields;
95cb174861Sjoyce mcintosh	WORD orientation;
96cb174861Sjoyce mcintosh	WORD papersize;
97cb174861Sjoyce mcintosh	WORD paperlength;
98cb174861Sjoyce mcintosh	WORD paperwidth;
99cb174861Sjoyce mcintosh	WORD scale;
100cb174861Sjoyce mcintosh	WORD copies;
101cb174861Sjoyce mcintosh	WORD defaultsource;
102cb174861Sjoyce mcintosh	WORD printquality;
103cb174861Sjoyce mcintosh	WORD color;
104cb174861Sjoyce mcintosh	WORD duplex;
105cb174861Sjoyce mcintosh	WORD yresolution;
106cb174861Sjoyce mcintosh	WORD ttoption;
107cb174861Sjoyce mcintosh	WORD collate;
108cb174861Sjoyce mcintosh	BYTE formname[64];
109cb174861Sjoyce mcintosh	WORD logpixels;
110cb174861Sjoyce mcintosh	DWORD	bitsperpel;
111cb174861Sjoyce mcintosh	DWORD	pelswidth;
112cb174861Sjoyce mcintosh	DWORD	pelsheight;
113cb174861Sjoyce mcintosh	DWORD	displayflags;
114cb174861Sjoyce mcintosh	DWORD	displayfrequency;
115cb174861Sjoyce mcintosh	DWORD	icmmethod;
116cb174861Sjoyce mcintosh	DWORD	icmintent;
117cb174861Sjoyce mcintosh	DWORD	mediatype;
118cb174861Sjoyce mcintosh	DWORD	dithertype;
119cb174861Sjoyce mcintosh	DWORD	reserved1;
120cb174861Sjoyce mcintosh	DWORD	reserved2;
121cb174861Sjoyce mcintosh	DWORD	panningwidth;
122cb174861Sjoyce mcintosh	DWORD	panningheight;
123cb174861Sjoyce mcintosh	struct spoolssDevmodeContainer driverextra_data;
124cb174861Sjoyce mcintosh};
125cb174861Sjoyce mcintosh
126cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_CreatePrinterIC)
127cb174861Sjoyce mcintoshstruct spoolss_CreatePrinterIC {
128cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
129cb174861Sjoyce mcintosh	OUT	spoolss_handle_t gdi_handle;
130cb174861Sjoyce mcintosh	IN	struct spoolssDevmodeContainer dmodeContainer;
131cb174861Sjoyce mcintosh	OUT	DWORD status;
132cb174861Sjoyce mcintosh};
133da6c28aaSamw
134da6c28aaSamwOPERATION(SPOOLSS_OPNUM_OpenPrinter)
135da6c28aaSamwstruct spoolss_OpenPrinter {
136cb174861Sjoyce mcintosh	IN	LPTSTR printer_name;
137da6c28aaSamw	OUT	spoolss_handle_t handle;
138cb174861Sjoyce mcintosh	IN	LPTSTR data_type;
139*fd9ee8b5Sjoyce mcintosh	/* IN	struct spoolssDevmodeContainer dmodeContainer; */
140*fd9ee8b5Sjoyce mcintosh	/* IN	DWORD AccessRequired; */
141da6c28aaSamw	OUT	DWORD status;
142da6c28aaSamw};
143da6c28aaSamw
144cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumJobs)
145cb174861Sjoyce mcintoshstruct spoolss_EnumJobs {
146cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
147cb174861Sjoyce mcintosh	IN	DWORD FirstJob;
148cb174861Sjoyce mcintosh	IN	DWORD NoJobs;
149cb174861Sjoyce mcintosh	IN	DWORD level;
150cb174861Sjoyce mcintosh	IN	DWORD Buf2;
151cb174861Sjoyce mcintosh	IN	DWORD 	BufCount;
152cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
153cb174861Sjoyce mcintosh  	OUT		BYTE *pJob;
154cb174861Sjoyce mcintosh	OUT	DWORD needed;
155cb174861Sjoyce mcintosh	OUT	DWORD needed2;
156da6c28aaSamw	OUT	DWORD status;
157da6c28aaSamw};
158da6c28aaSamw
159da6c28aaSamwOPERATION(SPOOLSS_OPNUM_DeletePrinter)
160da6c28aaSamwstruct spoolss_DeletePrinter {
161da6c28aaSamw	IN	DWORD dontcare;
162da6c28aaSamw	OUT	DWORD status;
163da6c28aaSamw};
164da6c28aaSamw
165cb174861Sjoyce mcintosh#define SPOOLSS_ARCHITECTURE_NT_X86	( "Windows NT x86" )
166cb174861Sjoyce mcintoshstruct spoolss_Time {
167cb174861Sjoyce mcintosh	WORD year;
168cb174861Sjoyce mcintosh	WORD month;
169cb174861Sjoyce mcintosh	WORD day_of_week;
170cb174861Sjoyce mcintosh	WORD day;
171cb174861Sjoyce mcintosh	WORD hour;
172cb174861Sjoyce mcintosh	WORD minute;
173cb174861Sjoyce mcintosh	WORD second;
174cb174861Sjoyce mcintosh	WORD millisecond;
175cb174861Sjoyce mcintosh};
176cb174861Sjoyce mcintosh
177cb174861Sjoyce mcintoshstruct spoolss_GetPrinter0 {
178cb174861Sjoyce mcintosh	DWORD printername;
179cb174861Sjoyce mcintosh	DWORD servername;
180cb174861Sjoyce mcintosh	DWORD cjobs;
181cb174861Sjoyce mcintosh	DWORD total_jobs;
182cb174861Sjoyce mcintosh	DWORD total_bytes;
183cb174861Sjoyce mcintosh	DWORD time0;
184cb174861Sjoyce mcintosh	DWORD time1;
185cb174861Sjoyce mcintosh	DWORD time2;
186cb174861Sjoyce mcintosh	DWORD time3;
187cb174861Sjoyce mcintosh	DWORD global_counter;
188cb174861Sjoyce mcintosh	DWORD total_pages;
189cb174861Sjoyce mcintosh	DWORD version;
190cb174861Sjoyce mcintosh	DWORD ffreebuild;
191cb174861Sjoyce mcintosh	DWORD cspooling;
192cb174861Sjoyce mcintosh	DWORD cmaxspooling;
193cb174861Sjoyce mcintosh	DWORD session_counter;
194cb174861Sjoyce mcintosh	DWORD out_of_paper;
195cb174861Sjoyce mcintosh	DWORD not_ready;
196cb174861Sjoyce mcintosh	DWORD job_error;
197cb174861Sjoyce mcintosh	DWORD num_processors;
198cb174861Sjoyce mcintosh	DWORD type_processor;
199cb174861Sjoyce mcintosh	DWORD high_part_total_bytes;
200cb174861Sjoyce mcintosh	DWORD change_id;
201cb174861Sjoyce mcintosh	DWORD last_error;
202cb174861Sjoyce mcintosh	DWORD status;
203cb174861Sjoyce mcintosh	DWORD enum_network_printers;
204cb174861Sjoyce mcintosh	DWORD c_setprinter;
205cb174861Sjoyce mcintosh	WORD processor_arch;
206cb174861Sjoyce mcintosh	WORD processor_level;
207cb174861Sjoyce mcintosh	DWORD ref;
208cb174861Sjoyce mcintosh	DWORD reserved2;
209cb174861Sjoyce mcintosh	DWORD reserved3;
210cb174861Sjoyce mcintosh};
211cb174861Sjoyce mcintosh
212cb174861Sjoyce mcintosh/* bitmap spoolss_EnumPrinterFlags */
213cb174861Sjoyce mcintosh#define PRINTER_ENUM_DEFAULT ( 0x00000001 )
214cb174861Sjoyce mcintosh#define PRINTER_ENUM_LOCAL ( 0x00000002 )
215cb174861Sjoyce mcintosh#define PRINTER_ENUM_CONNECTIONS ( 0x00000004 )
216cb174861Sjoyce mcintosh#define PRINTER_ENUM_FAVORITE ( 0x00000004 )
217cb174861Sjoyce mcintosh#define PRINTER_ENUM_NAME ( 0x00000008 )
218cb174861Sjoyce mcintosh#define PRINTER_ENUM_REMOTE ( 0x00000010 )
219cb174861Sjoyce mcintosh#define PRINTER_ENUM_SHARED ( 0x00000020 )
220cb174861Sjoyce mcintosh#define PRINTER_ENUM_NETWORK ( 0x00000040 )
221cb174861Sjoyce mcintosh#define PRINTER_ENUM_EXPAND ( 0x00004000 )
222cb174861Sjoyce mcintosh#define PRINTER_ENUM_CONTAINER ( 0x00008000 )
223cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON1 ( 0x00010000 )
224cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON2 ( 0x00020000 )
225cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON3 ( 0x00040000 )
226cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON4 ( 0x00080000 )
227cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON5 ( 0x00100000 )
228cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON6 ( 0x00200000 )
229cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON7 ( 0x00400000 )
230cb174861Sjoyce mcintosh#define PRINTER_ENUM_ICON8 ( 0x00800000 )
231cb174861Sjoyce mcintosh#define PRINTER_ENUM_HIDE ( 0x01000000 )
232cb174861Sjoyce mcintosh
233cb174861Sjoyce mcintoshstruct spoolss_GetPrinter1 {
234cb174861Sjoyce mcintosh	DWORD flags;
235cb174861Sjoyce mcintosh	DWORD name;
236cb174861Sjoyce mcintosh	DWORD description;
237cb174861Sjoyce mcintosh	DWORD comment;
238cb174861Sjoyce mcintosh};
239cb174861Sjoyce mcintosh
240cb174861Sjoyce mcintosh/* bitmap spoolss_PrinterAttributes */
241cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_QUEUED ( 0x00000001 )
242cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_DIRECT ( 0x00000002 )
243cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_DEFAULT ( 0x00000004 )
244cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_SHARED ( 0x00000008 )
245cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_NETWORK ( 0x00000010 )
246cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_HIDDEN ( 0x00000020 )
247cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_LOCAL ( 0x00000040 )
248cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_ENABLE_DEVQ ( 0x00000080 )
249cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS ( 0x00000100 )
250cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST ( 0x00000200 )
251cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_WORK_OFFLINE ( 0x00000400 )
252cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_ENABLE_BIDI ( 0x00000800 )
253cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_RAW_ONLY ( 0x00001000 )
254cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_PUBLISHED ( 0x00002000 )
255cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_FAX ( 0x00004000 )
256cb174861Sjoyce mcintosh#define PRINTER_ATTRIBUTE_TS ( 0x00008000 )
257cb174861Sjoyce mcintosh
258cb174861Sjoyce mcintosh/* bitmap spoolss_PrinterStatus */
259cb174861Sjoyce mcintosh#define PRINTER_STATUS_PAUSED ( 0x00000001 )
260cb174861Sjoyce mcintosh#define PRINTER_STATUS_ERROR ( 0x00000002 )
261cb174861Sjoyce mcintosh#define PRINTER_STATUS_PENDING_DELETION ( 0x00000004 )
262cb174861Sjoyce mcintosh#define PRINTER_STATUS_PAPER_JAM ( 0x00000008 )
263cb174861Sjoyce mcintosh#define PRINTER_STATUS_PAPER_OUT ( 0x00000010 )
264cb174861Sjoyce mcintosh#define PRINTER_STATUS_MANUAL_FEED ( 0x00000020 )
265cb174861Sjoyce mcintosh#define PRINTER_STATUS_PAPER_PROBLEM ( 0x00000040 )
266cb174861Sjoyce mcintosh#define PRINTER_STATUS_OFFLINE ( 0x00000080 )
267cb174861Sjoyce mcintosh#define PRINTER_STATUS_IO_ACTIVE ( 0x00000100 )
268cb174861Sjoyce mcintosh#define PRINTER_STATUS_BUSY ( 0x00000200 )
269cb174861Sjoyce mcintosh#define PRINTER_STATUS_PRINTING ( 0x00000400 )
270cb174861Sjoyce mcintosh#define PRINTER_STATUS_OUTPUT_BIN_FULL ( 0x00000800 )
271cb174861Sjoyce mcintosh#define PRINTER_STATUS_NOT_AVAILABLE ( 0x00001000 )
272cb174861Sjoyce mcintosh#define PRINTER_STATUS_WAITING ( 0x00002000 )
273cb174861Sjoyce mcintosh#define PRINTER_STATUS_PROCESSING ( 0x00004000 )
274cb174861Sjoyce mcintosh#define PRINTER_STATUS_INITIALIZING ( 0x00008000 )
275cb174861Sjoyce mcintosh#define PRINTER_STATUS_WARMING_UP ( 0x00010000 )
276cb174861Sjoyce mcintosh#define PRINTER_STATUS_TONER_LOW ( 0x00020000 )
277cb174861Sjoyce mcintosh#define PRINTER_STATUS_NO_TONER ( 0x00040000 )
278cb174861Sjoyce mcintosh#define PRINTER_STATUS_PAGE_PUNT ( 0x00080000 )
279cb174861Sjoyce mcintosh#define PRINTER_STATUS_USER_INTERVENTION ( 0x00100000 )
280cb174861Sjoyce mcintosh#define PRINTER_STATUS_OUT_OF_MEMORY ( 0x00200000 )
281cb174861Sjoyce mcintosh#define PRINTER_STATUS_DOOR_OPEN ( 0x00400000 )
282cb174861Sjoyce mcintosh#define PRINTER_STATUS_SERVER_UNKNOWN ( 0x00800000 )
283cb174861Sjoyce mcintosh#define PRINTER_STATUS_POWER_SAVE ( 0x01000000 )
284cb174861Sjoyce mcintosh
285cb174861Sjoyce mcintoshstruct spoolss_GetPrinter2 {
286cb174861Sjoyce mcintosh	DWORD servername;
287cb174861Sjoyce mcintosh	DWORD printername;
288cb174861Sjoyce mcintosh	DWORD sharename;
289cb174861Sjoyce mcintosh	DWORD portname;
290cb174861Sjoyce mcintosh	DWORD drivername;
291cb174861Sjoyce mcintosh	DWORD comment;
292cb174861Sjoyce mcintosh	DWORD location;
293cb174861Sjoyce mcintosh	DWORD devmode;
294cb174861Sjoyce mcintosh	DWORD sepfile;
295cb174861Sjoyce mcintosh	DWORD printprocessor;
296cb174861Sjoyce mcintosh	DWORD datatype;
297cb174861Sjoyce mcintosh	DWORD parameters;
298cb174861Sjoyce mcintosh	DWORD secdesc;
299cb174861Sjoyce mcintosh	DWORD attributes;
300cb174861Sjoyce mcintosh	DWORD priority;
301cb174861Sjoyce mcintosh	DWORD defaultpriority;
302cb174861Sjoyce mcintosh	DWORD starttime;
303cb174861Sjoyce mcintosh	DWORD untiltime;
304cb174861Sjoyce mcintosh	DWORD status;
305cb174861Sjoyce mcintosh	DWORD cjobs;
306cb174861Sjoyce mcintosh	DWORD averageppm;
307cb174861Sjoyce mcintosh};
308cb174861Sjoyce mcintosh
309cb174861Sjoyce mcintoshtypedef struct spoolss_GetPrinter2 spoolss_GetPrinter2_t;
310cb174861Sjoyce mcintosh
311cb174861Sjoyce mcintoshstruct spoolss_GetPrinter3 {
312cb174861Sjoyce mcintosh	DWORD dummy;
313cb174861Sjoyce mcintosh};
314cb174861Sjoyce mcintosh
315cb174861Sjoyce mcintoshstruct spoolss_GetPrinter4 {
316cb174861Sjoyce mcintosh	DWORD printername;
317cb174861Sjoyce mcintosh	DWORD servername;
318cb174861Sjoyce mcintosh	DWORD attributes;
319cb174861Sjoyce mcintosh};
320cb174861Sjoyce mcintosh
321cb174861Sjoyce mcintoshstruct spoolss_GetPrinter5 {
322cb174861Sjoyce mcintosh	DWORD printername;
323cb174861Sjoyce mcintosh	DWORD portname;
324cb174861Sjoyce mcintosh	DWORD attributes;
325cb174861Sjoyce mcintosh	DWORD device_not_selected_timeout;
326cb174861Sjoyce mcintosh	DWORD transmission_retry_timeout;
327cb174861Sjoyce mcintosh};
328cb174861Sjoyce mcintosh
329cb174861Sjoyce mcintoshstruct spoolss_GetPrinter6 {
330cb174861Sjoyce mcintosh	DWORD status;
331cb174861Sjoyce mcintosh};
332cb174861Sjoyce mcintosh
333cb174861Sjoyce mcintosh/* bitmap spoolss_DsPrintAction */
334cb174861Sjoyce mcintosh#define DSPRINT_PUBLISH ( 0x00000001 )
335cb174861Sjoyce mcintosh#define DSPRINT_UPDATE ( 0x00000002 )
336cb174861Sjoyce mcintosh#define DSPRINT_UNPUBLISH ( 0x00000004 )
337cb174861Sjoyce mcintosh#define DSPRINT_REPUBLISH ( 0x00000008 )
338cb174861Sjoyce mcintosh#define DSPRINT_PENDING ( 0x80000000 )
339cb174861Sjoyce mcintosh
340cb174861Sjoyce mcintoshstruct spoolss_GetPrinter7 {
341cb174861Sjoyce mcintosh	DWORD guid;
342cb174861Sjoyce mcintosh	DWORD action;
343cb174861Sjoyce mcintosh};
344cb174861Sjoyce mcintosh
345cb174861Sjoyce mcintoshstruct spoolss_GetPrinter8 {
346cb174861Sjoyce mcintosh	DWORD flags;
347cb174861Sjoyce mcintosh	DWORD name;
348cb174861Sjoyce mcintosh	DWORD description;
349cb174861Sjoyce mcintosh	DWORD comment;
350cb174861Sjoyce mcintosh};
351cb174861Sjoyce mcintosh
352cb174861Sjoyce mcintoshunion spoolss_GetPrinter_result_u {
353cb174861Sjoyce mcintosh	UNION_INFO_ENT(0, spoolss_GetPrinter);
354cb174861Sjoyce mcintosh	UNION_INFO_ENT(1, spoolss_GetPrinter);
355cb174861Sjoyce mcintosh	UNION_INFO_ENT(2, spoolss_GetPrinter);
356cb174861Sjoyce mcintosh	UNION_INFO_ENT(3, spoolss_GetPrinter);
357cb174861Sjoyce mcintosh	UNION_INFO_ENT(4, spoolss_GetPrinter);
358cb174861Sjoyce mcintosh	UNION_INFO_ENT(5, spoolss_GetPrinter);
359cb174861Sjoyce mcintosh	UNION_INFO_ENT(6, spoolss_GetPrinter);
360cb174861Sjoyce mcintosh	UNION_INFO_ENT(7, spoolss_GetPrinter);
361cb174861Sjoyce mcintosh	UNION_INFO_ENT(8, spoolss_GetPrinter);
362cb174861Sjoyce mcintosh	DEFAULT char *nullptr;
363cb174861Sjoyce mcintosh};
364cb174861Sjoyce mcintosh
365cb174861Sjoyce mcintoshstruct spoolss_GetPrinter_result {
366cb174861Sjoyce mcintosh	DWORD switch_value;
367cb174861Sjoyce mcintosh	SWITCH(switch_value)
368cb174861Sjoyce mcintosh		union spoolss_GetPrinter_result_u ru;
369cb174861Sjoyce mcintosh};
370cb174861Sjoyce mcintosh
371cb174861Sjoyce mcintoshstruct spoolss_RPC_V2_NOTIFY_OPTIONS_TYPE {
372cb174861Sjoyce mcintosh	WORD type;
373cb174861Sjoyce mcintosh	WORD reserved0;
374cb174861Sjoyce mcintosh	DWORD reserved1;
375cb174861Sjoyce mcintosh	DWORD reserved2;
376cb174861Sjoyce mcintosh	DWORD count;
377cb174861Sjoyce mcintosh	SIZE_IS(count)
378cb174861Sjoyce mcintosh		WORD *pFields;
379cb174861Sjoyce mcintosh};
380cb174861Sjoyce mcintosh
381cb174861Sjoyce mcintoshstruct spoolss_RPC_V2_NOTIFY_OPTIONS {
382cb174861Sjoyce mcintosh	DWORD version;
383cb174861Sjoyce mcintosh	DWORD reserved;
384cb174861Sjoyce mcintosh	DWORD count;
385cb174861Sjoyce mcintosh	SIZE_IS(count)
386cb174861Sjoyce mcintosh		struct spoolss_RPC_V2_NOTIFY_OPTIONS_TYPE *ptypes;
387cb174861Sjoyce mcintosh};
388cb174861Sjoyce mcintosh
389cb174861Sjoyce mcintoshstruct SYSTEMTIME {
390cb174861Sjoyce mcintosh	WORD year;
391cb174861Sjoyce mcintosh	WORD month;
392cb174861Sjoyce mcintosh	WORD dayofweek;
393cb174861Sjoyce mcintosh	WORD day;
394cb174861Sjoyce mcintosh	WORD hour;
395cb174861Sjoyce mcintosh	WORD minute;
396cb174861Sjoyce mcintosh	WORD second;
397cb174861Sjoyce mcintosh	WORD millisecs;
398cb174861Sjoyce mcintosh};
399cb174861Sjoyce mcintosh
400cb174861Sjoyce mcintoshstruct SECURITY_CONTAINER {
401cb174861Sjoyce mcintosh	DWORD count;
402cb174861Sjoyce mcintosh	SIZE_IS(count)
403cb174861Sjoyce mcintosh		BYTE *psecurity;
404cb174861Sjoyce mcintosh};
405cb174861Sjoyce mcintosh
406cb174861Sjoyce mcintoshstruct SYSTEMTIME_CONTAINER {
407cb174861Sjoyce mcintosh	DWORD count;
408cb174861Sjoyce mcintosh	struct SYSTEMTIME *psystemtime;
409cb174861Sjoyce mcintosh};
410cb174861Sjoyce mcintosh
411cb174861Sjoyce mcintoshstruct STRING_CONTAINER {
412cb174861Sjoyce mcintosh	DWORD count;
413cb174861Sjoyce mcintosh	SIZE_IS(count / 2)
414cb174861Sjoyce mcintosh		LPTSTR pstring;
415cb174861Sjoyce mcintosh};
416cb174861Sjoyce mcintosh
417cb174861Sjoyce mcintoshunion spoolss_RPC_V2_NOTIFY_INFO_DATA_DATA {
418cb174861Sjoyce mcintosh	CASE(TABLE_STRING)
419cb174861Sjoyce mcintosh		struct STRING_CONTAINER pcont;
420cb174861Sjoyce mcintosh	CASE(TABLE_DWORD)
421cb174861Sjoyce mcintosh		DWORD data[2];
422cb174861Sjoyce mcintosh	CASE(TABLE_TIME)
423cb174861Sjoyce mcintosh		struct SYSTEMTIME_CONTAINER system_time;
424cb174861Sjoyce mcintosh	CASE(TABLE_DEVMODE)
425cb174861Sjoyce mcintosh		struct spoolssDevmodeContainer devmode;
426cb174861Sjoyce mcintosh	CASE(TABLE_SECURITY_DESCRIPTOR)
427cb174861Sjoyce mcintosh		struct SECURITY_CONTAINER security_descriptor;
428cb174861Sjoyce mcintosh};
429cb174861Sjoyce mcintosh
430cb174861Sjoyce mcintoshstruct spoolss_RPC_V2_NOTIFY_INFO_DATA {
431cb174861Sjoyce mcintosh	WORD Type;
432cb174861Sjoyce mcintosh	WORD Field;
433cb174861Sjoyce mcintosh	DWORD Reserved;
434cb174861Sjoyce mcintosh	DWORD Id;
435cb174861Sjoyce mcintosh	SWITCH(Reserved & 0x0000FFFF)
436cb174861Sjoyce mcintosh		union spoolss_RPC_V2_NOTIFY_INFO_DATA_DATA data;
437cb174861Sjoyce mcintosh};
438cb174861Sjoyce mcintosh
439cb174861Sjoyce mcintoshstruct spoolss_RPC_V2_NOTIFY_INFO {
440cb174861Sjoyce mcintosh	DWORD Version;
441cb174861Sjoyce mcintosh	DWORD Flags;
442cb174861Sjoyce mcintosh	DWORD Count;
443cb174861Sjoyce mcintosh	SIZE_IS(Count)
444cb174861Sjoyce mcintosh		struct spoolss_RPC_V2_NOTIFY_INFO_DATA *aData;
445cb174861Sjoyce mcintosh};
446cb174861Sjoyce mcintosh
447cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_GetPrinter)
448cb174861Sjoyce mcintoshstruct spoolss_GetPrinter {
449cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
450cb174861Sjoyce mcintosh	IN 	DWORD 	switch_value;
451cb174861Sjoyce mcintosh  	IN	DWORD   Buf2;
452cb174861Sjoyce mcintosh	IN	DWORD 	BufCount;
453cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
454cb174861Sjoyce mcintosh  	OUT		BYTE *Buf;
455cb174861Sjoyce mcintosh	OUT	DWORD needed;
456cb174861Sjoyce mcintosh	OUT	DWORD status;
457cb174861Sjoyce mcintosh};
458cb174861Sjoyce mcintosh
459cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_GetPrinterData)
460cb174861Sjoyce mcintoshstruct spoolss_GetPrinterData {
461cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
462cb174861Sjoyce mcintosh	IN	REFERENCE LPTSTR pValueName;
463cb174861Sjoyce mcintosh	OUT	DWORD pType;
464cb174861Sjoyce mcintosh    SIZE_IS(Size)
465*fd9ee8b5Sjoyce mcintosh   	OUT	REFERENCE LPBYTE Buf;
466cb174861Sjoyce mcintosh	IN	DWORD Size;
467cb174861Sjoyce mcintosh	OUT	DWORD Needed;
468cb174861Sjoyce mcintosh	OUT	DWORD status;
469cb174861Sjoyce mcintosh};
470da6c28aaSamw
471da6c28aaSamwOPERATION(SPOOLSS_OPNUM_GetPrinterDriver)
472da6c28aaSamwstruct spoolss_GetPrinterDriver {
473da6c28aaSamw	IN	DWORD dontcare;
474da6c28aaSamw	OUT	DWORD status;
475da6c28aaSamw};
476da6c28aaSamw
477da6c28aaSamwOPERATION(SPOOLSS_OPNUM_DeletePrinterDriver)
478da6c28aaSamwstruct spoolss_DeletePrinterDriver {
479da6c28aaSamw	IN	DWORD dontcare;
480da6c28aaSamw	OUT	DWORD status;
481da6c28aaSamw};
482da6c28aaSamw
483cb174861Sjoyce mcintoshstruct spoolss_DocInfo {
484cb174861Sjoyce mcintosh	LPTSTR doc_name;
485cb174861Sjoyce mcintosh	LPTSTR printer_name;
486cb174861Sjoyce mcintosh	LPTSTR type;
487cb174861Sjoyce mcintosh};
488cb174861Sjoyce mcintoshtypedef struct spoolss_DocInfo spoolss_DocInfo_t;
489da6c28aaSamw
490cb174861Sjoyce mcintoshstruct spoolss_DocInfo_Container {
491cb174861Sjoyce mcintosh	DWORD level;
492cb174861Sjoyce mcintosh	DWORD switch_value;
493cb174861Sjoyce mcintosh	spoolss_DocInfo_t *DocInfoContainer;
494cb174861Sjoyce mcintosh};
495cb174861Sjoyce mcintoshtypedef struct spoolss_DocInfo_Container spoolss_DocInfo_Container_t;
496cb174861Sjoyce mcintosh
497cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_StartDocPrinter)
498cb174861Sjoyce mcintoshstruct spoolss_StartDocPrinter {
499cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
500cb174861Sjoyce mcintosh	IN	spoolss_DocInfo_Container_t dinfo;
501cb174861Sjoyce mcintosh	OUT	DWORD JobId;
502da6c28aaSamw	OUT	DWORD status;
503da6c28aaSamw};
504da6c28aaSamw
505da6c28aaSamwOPERATION(SPOOLSS_OPNUM_AbortPrinter)
506da6c28aaSamwstruct spoolss_AbortPrinter {
507cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
508da6c28aaSamw	OUT	DWORD status;
509da6c28aaSamw};
510da6c28aaSamw
511*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumPorts)
512*fd9ee8b5Sjoyce mcintoshstruct spoolss_EnumPorts {
513*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
514*fd9ee8b5Sjoyce mcintosh	IN	DWORD level;
515*fd9ee8b5Sjoyce mcintosh	OUT	DWORD needed;
516*fd9ee8b5Sjoyce mcintosh	OUT	DWORD returned;
517*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
518*fd9ee8b5Sjoyce mcintosh};
519*fd9ee8b5Sjoyce mcintosh
520*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_DeletePort)
521*fd9ee8b5Sjoyce mcintoshstruct spoolss_DeletePort {
522*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
523*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
524*fd9ee8b5Sjoyce mcintosh};
525*fd9ee8b5Sjoyce mcintosh
526*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_AddPortEx)
527*fd9ee8b5Sjoyce mcintoshstruct spoolss_AddPortEx {
528*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
529*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
530*fd9ee8b5Sjoyce mcintosh};
531*fd9ee8b5Sjoyce mcintosh
532*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_SetPort)
533*fd9ee8b5Sjoyce mcintoshstruct spoolss_SetPort {
534*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
535*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
536*fd9ee8b5Sjoyce mcintosh};
537*fd9ee8b5Sjoyce mcintosh
538*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumMonitor)
539*fd9ee8b5Sjoyce mcintoshstruct spoolss_EnumMonitor {
540*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
541*fd9ee8b5Sjoyce mcintosh	IN	DWORD level;
542*fd9ee8b5Sjoyce mcintosh	OUT	DWORD needed;
543*fd9ee8b5Sjoyce mcintosh	OUT	DWORD returned;
544*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
545*fd9ee8b5Sjoyce mcintosh};
546*fd9ee8b5Sjoyce mcintosh
547*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_AddMonitor)
548*fd9ee8b5Sjoyce mcintoshstruct spoolss_AddMonitor {
549*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
550*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
551*fd9ee8b5Sjoyce mcintosh};
552*fd9ee8b5Sjoyce mcintosh
553*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_DeleteMonitor)
554*fd9ee8b5Sjoyce mcintoshstruct spoolss_DeleteMonitor {
555*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR name;
556*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
557*fd9ee8b5Sjoyce mcintosh};
558*fd9ee8b5Sjoyce mcintosh
559da6c28aaSamwOPERATION(SPOOLSS_OPNUM_ResetPrinter)
560da6c28aaSamwstruct spoolss_ResetPrinter {
561cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
562cb174861Sjoyce mcintosh	OUT	DWORD status;
563cb174861Sjoyce mcintosh};
564cb174861Sjoyce mcintosh
565cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_StartPagePrinter)
566cb174861Sjoyce mcintoshstruct spoolss_StartPagePrinter {
567cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
568cb174861Sjoyce mcintosh	OUT	DWORD status;
569cb174861Sjoyce mcintosh};
570cb174861Sjoyce mcintosh
571cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EndPagePrinter)
572cb174861Sjoyce mcintoshstruct spoolss_EndPagePrinter {
573cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
574cb174861Sjoyce mcintosh	OUT	DWORD status;
575cb174861Sjoyce mcintosh};
576cb174861Sjoyce mcintosh
577cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_WritePrinter)
578cb174861Sjoyce mcintoshstruct spoolss_WritePrinter {
579cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
580cb174861Sjoyce mcintosh	IN	DWORD BufCount;
581cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
582cb174861Sjoyce mcintosh  	IN	REFERENCE LPBYTE pBuf;
583cb174861Sjoyce mcintosh	OUT	DWORD written;
584cb174861Sjoyce mcintosh	OUT	DWORD status;
585cb174861Sjoyce mcintosh};
586cb174861Sjoyce mcintosh
587cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_ScheduleJob)
588cb174861Sjoyce mcintoshstruct spoolss_ScheduleJob {
589cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
590cb174861Sjoyce mcintosh	IN 	DWORD 	JobId;
591cb174861Sjoyce mcintosh	OUT	DWORD status;
592cb174861Sjoyce mcintosh};
593cb174861Sjoyce mcintosh
594cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_GetJob)
595cb174861Sjoyce mcintoshstruct spoolss_GetJob {
596cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
597cb174861Sjoyce mcintosh	IN 	DWORD 	JobId;
598cb174861Sjoyce mcintosh	IN	DWORD 	level;
599cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
600cb174861Sjoyce mcintosh  	INOUT		BYTE *pJob;
601cb174861Sjoyce mcintosh	IN	DWORD BufCount;
602cb174861Sjoyce mcintosh	OUT	DWORD needed;
603cb174861Sjoyce mcintosh	OUT	DWORD status;
604cb174861Sjoyce mcintosh};
605cb174861Sjoyce mcintosh
606cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_AddJob)
607cb174861Sjoyce mcintoshstruct spoolss_AddJob {
608cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
609cb174861Sjoyce mcintosh	IN 	DWORD 	level;
610cb174861Sjoyce mcintosh  	IN	DWORD   Buf2;
611cb174861Sjoyce mcintosh	IN	DWORD 	BufCount;
612cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
613cb174861Sjoyce mcintosh  	OUT		BYTE *pAddJob;
614cb174861Sjoyce mcintosh	OUT	DWORD needed;
615cb174861Sjoyce mcintosh	OUT	DWORD status;
616cb174861Sjoyce mcintosh};
617cb174861Sjoyce mcintosh
618cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_ClosePrinter)
619cb174861Sjoyce mcintoshstruct spoolss_ClosePrinter {
620cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
621cb174861Sjoyce mcintosh	OUT	spoolss_handle_t result_handle;
622cb174861Sjoyce mcintosh	OUT	DWORD status;
623cb174861Sjoyce mcintosh};
624cb174861Sjoyce mcintosh
625cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EndDocPrinter)
626cb174861Sjoyce mcintoshstruct spoolss_EndDocPrinter {
627cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
628cb174861Sjoyce mcintosh	OUT	DWORD status;
629cb174861Sjoyce mcintosh};
630cb174861Sjoyce mcintosh
631*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_AddForm)
632*fd9ee8b5Sjoyce mcintoshstruct spoolss_AddForm {
633*fd9ee8b5Sjoyce mcintosh	IN	spoolss_handle_t handle;
634*fd9ee8b5Sjoyce mcintosh	/*	FORM_CONTAINER *form_container; */
635*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
636*fd9ee8b5Sjoyce mcintosh};
637*fd9ee8b5Sjoyce mcintosh
638*fd9ee8b5Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_DeleteForm)
639*fd9ee8b5Sjoyce mcintoshstruct spoolss_DeleteForm {
640*fd9ee8b5Sjoyce mcintosh	IN	spoolss_handle_t handle;
641*fd9ee8b5Sjoyce mcintosh	/* IN	REFERENCE LPTSTR form_name; */
642*fd9ee8b5Sjoyce mcintosh	OUT	DWORD status;
643*fd9ee8b5Sjoyce mcintosh};
644*fd9ee8b5Sjoyce mcintosh
645cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumForms)
646cb174861Sjoyce mcintoshstruct spoolss_EnumForms {
647cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
648cb174861Sjoyce mcintosh	IN 	DWORD 	level;
649cb174861Sjoyce mcintosh	IN	DWORD 	BufCount;
650cb174861Sjoyce mcintosh		SIZE_IS(BufCount)
651cb174861Sjoyce mcintosh  	INOUT		BYTE *pEnumForms;
652cb174861Sjoyce mcintosh	OUT	DWORD needed;
653cb174861Sjoyce mcintosh	OUT	DWORD pcRet;
654cb174861Sjoyce mcintosh	OUT	DWORD status;
655cb174861Sjoyce mcintosh};
656cb174861Sjoyce mcintosh
657cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_GetPrinterDriver2)
658cb174861Sjoyce mcintoshstruct spoolss_GetPrinterDriver2 {
659da6c28aaSamw	IN	DWORD dontcare;
660da6c28aaSamw	OUT	DWORD status;
661da6c28aaSamw};
662da6c28aaSamw
663cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_FCPN)
664cb174861Sjoyce mcintoshstruct spoolss_FCPN {
665da6c28aaSamw	IN	DWORD dontcare;
666da6c28aaSamw	OUT	DWORD status;
667da6c28aaSamw};
668da6c28aaSamw
669da6c28aaSamwOPERATION(SPOOLSS_OPNUM_ReplyOpenPrinter)
670da6c28aaSamwstruct spoolss_ReplyOpenPrinter {
671da6c28aaSamw	IN	DWORD dontcare;
672da6c28aaSamw	OUT	DWORD status;
673da6c28aaSamw};
674da6c28aaSamw
675da6c28aaSamwOPERATION(SPOOLSS_OPNUM_ReplyClosePrinter)
676da6c28aaSamwstruct spoolss_ReplyClosePrinter {
677da6c28aaSamw	IN	DWORD dontcare;
678da6c28aaSamw	OUT	DWORD status;
679da6c28aaSamw};
680da6c28aaSamw
681da6c28aaSamw
682cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_RFFPCNEX)
683cb174861Sjoyce mcintoshstruct spoolss_RFFPCNEX {
684cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
685cb174861Sjoyce mcintosh	OUT	DWORD status;
686cb174861Sjoyce mcintosh};
687cb174861Sjoyce mcintosh
688cb174861Sjoyce mcintoshstruct spoolss_infores {
689cb174861Sjoyce mcintosh	DWORD entriesread;
690cb174861Sjoyce mcintosh	struct spoolss_RPC_V2_NOTIFY_INFO *pinfo;
691cb174861Sjoyce mcintosh};
692cb174861Sjoyce mcintosh
693cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_RFNPCNEX)
694cb174861Sjoyce mcintoshstruct spoolss_RFNPCNEX {
695cb174861Sjoyce mcintosh	IN	spoolss_handle_t handle;
696cb174861Sjoyce mcintosh	IN 	DWORD color;
697cb174861Sjoyce mcintosh	IN	struct spoolss_RPC_V2_NOTIFY_OPTIONS *poptions;
698cb174861Sjoyce mcintosh	OUT	struct spoolss_infores *ppinfo;
699cb174861Sjoyce mcintosh	OUT	DWORD status;
700cb174861Sjoyce mcintosh};
701cb174861Sjoyce mcintosh
702cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_RRPCN)
703cb174861Sjoyce mcintoshstruct spoolss_RRPCN {
704da6c28aaSamw	IN	DWORD dontcare;
705da6c28aaSamw	OUT	DWORD status;
706da6c28aaSamw};
707da6c28aaSamw
708cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_OpenPrinterEx)
709cb174861Sjoyce mcintoshstruct spoolss_OpenPrinterEx {
710cb174861Sjoyce mcintosh	IN	LPTSTR printer_name;
711da6c28aaSamw	OUT	spoolss_handle_t handle;
712*fd9ee8b5Sjoyce mcintosh	IN	LPTSTR data_type;
713*fd9ee8b5Sjoyce mcintosh	/* IN	struct spoolssDevmodeContainer dmodeContainer; */
714*fd9ee8b5Sjoyce mcintosh	/* IN	DWORD AccessRequired; */
715*fd9ee8b5Sjoyce mcintosh	/* IN	CLIENT_CONTAINER client_info; */
716da6c28aaSamw	OUT	DWORD status;
717da6c28aaSamw};
718da6c28aaSamw
719cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumPrinterData)
720cb174861Sjoyce mcintoshstruct spoolss_EnumPrinterData {
721cb174861Sjoyce mcintosh	IN	DWORD dontcare;
722cb174861Sjoyce mcintosh	OUT	DWORD status;
723cb174861Sjoyce mcintosh};
724cb174861Sjoyce mcintosh
725cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumPrinterDataEx)
726cb174861Sjoyce mcintoshstruct spoolss_EnumPrinterDataEx {
727cb174861Sjoyce mcintosh	IN	DWORD dontcare;
728cb174861Sjoyce mcintosh	OUT	DWORD status;
729cb174861Sjoyce mcintosh};
730cb174861Sjoyce mcintosh
731cb174861Sjoyce mcintoshOPERATION(SPOOLSS_OPNUM_EnumPrinterKey)
732cb174861Sjoyce mcintoshstruct spoolss_EnumPrinterKey {
733cb174861Sjoyce mcintosh	IN	DWORD dontcare;
734cb174861Sjoyce mcintosh	OUT	DWORD status;
735cb174861Sjoyce mcintosh};
736da6c28aaSamw
737da6c28aaSamw/*
738da6c28aaSamw ***********************************************************************
739da6c28aaSamw * The spoolss interface definition.
740da6c28aaSamw ***********************************************************************
741da6c28aaSamw */
742cb174861Sjoyce mcintosh
743da6c28aaSamwINTERFACE(0)
744da6c28aaSamwunion spoolss_interface {
745da6c28aaSamw 	CASE(SPOOLSS_OPNUM_OpenPrinter)
746da6c28aaSamw		struct spoolss_OpenPrinter OpenPrinter;
747cb174861Sjoyce mcintosh
748da6c28aaSamw	CASE(SPOOLSS_OPNUM_DeletePrinter)
749da6c28aaSamw		struct spoolss_DeletePrinter DeletePrinter;
750cb174861Sjoyce mcintosh
751cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_GetPrinter)
752cb174861Sjoyce mcintosh		struct spoolss_GetPrinter GetPrinter;
753cb174861Sjoyce mcintosh
754cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_GetPrinterData)
755cb174861Sjoyce mcintosh		struct spoolss_GetPrinterData GetPrinterData;
756cb174861Sjoyce mcintosh
757da6c28aaSamw	CASE(SPOOLSS_OPNUM_AbortPrinter)
758da6c28aaSamw		struct spoolss_AbortPrinter AbortPrinter;
759cb174861Sjoyce mcintosh
760cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_StartDocPrinter)
761cb174861Sjoyce mcintosh		struct spoolss_StartDocPrinter StartDocPrinter;
762cb174861Sjoyce mcintosh
763cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_EndDocPrinter)
764cb174861Sjoyce mcintosh		struct spoolss_EndDocPrinter EndDocPrinter;
765cb174861Sjoyce mcintosh
766cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_CreatePrinterIC)
767cb174861Sjoyce mcintosh		struct spoolss_CreatePrinterIC CreatePrinterIC;
768cb174861Sjoyce mcintosh
769da6c28aaSamw	CASE(SPOOLSS_OPNUM_ResetPrinter)
770da6c28aaSamw		struct spoolss_ResetPrinter ResetPrinter;
771cb174861Sjoyce mcintosh
772*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_EnumMonitor)
773*fd9ee8b5Sjoyce mcintosh		struct spoolss_EnumMonitor EnumMonitor;
774*fd9ee8b5Sjoyce mcintosh
775*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_AddMonitor)
776*fd9ee8b5Sjoyce mcintosh		struct spoolss_AddMonitor AddMonitor;
777*fd9ee8b5Sjoyce mcintosh
778*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_DeleteMonitor)
779*fd9ee8b5Sjoyce mcintosh		struct spoolss_DeleteMonitor DeleteMonitor;
780*fd9ee8b5Sjoyce mcintosh
781cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_WritePrinter)
782cb174861Sjoyce mcintosh		struct spoolss_WritePrinter WritePrinter;
783cb174861Sjoyce mcintosh
784cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_StartPagePrinter)
785cb174861Sjoyce mcintosh		struct spoolss_StartPagePrinter StartPagePrinter;
786cb174861Sjoyce mcintosh
787cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_EndPagePrinter)
788cb174861Sjoyce mcintosh		struct spoolss_EndPagePrinter EndPagePrinter;
789cb174861Sjoyce mcintosh
790cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_ClosePrinter)
791cb174861Sjoyce mcintosh		struct spoolss_ClosePrinter ClosePrinter;
792cb174861Sjoyce mcintosh
793cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_OpenPrinterEx)
794cb174861Sjoyce mcintosh		struct spoolss_OpenPrinterEx OpenPrinterEx;
795cb174861Sjoyce mcintosh
796cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_AddJob)
797cb174861Sjoyce mcintosh		struct spoolss_AddJob AddJob;
798cb174861Sjoyce mcintosh
799cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_GetJob)
800cb174861Sjoyce mcintosh		struct spoolss_GetJob GetJob;
801cb174861Sjoyce mcintosh
802cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_ScheduleJob)
803cb174861Sjoyce mcintosh		struct spoolss_ScheduleJob ScheduleJob;
804cb174861Sjoyce mcintosh
805*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_AddForm)
806*fd9ee8b5Sjoyce mcintosh		struct spoolss_AddForm AddForm;
807*fd9ee8b5Sjoyce mcintosh
808*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_DeleteForm)
809*fd9ee8b5Sjoyce mcintosh		struct spoolss_DeleteForm DeleteForm;
810*fd9ee8b5Sjoyce mcintosh
811cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_EnumForms)
812cb174861Sjoyce mcintosh		struct spoolss_EnumForms EnumForms;
813cb174861Sjoyce mcintosh
814*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_EnumPorts)
815*fd9ee8b5Sjoyce mcintosh		struct spoolss_EnumPorts EnumPorts;
816*fd9ee8b5Sjoyce mcintosh
817*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_DeletePort)
818*fd9ee8b5Sjoyce mcintosh		struct spoolss_DeletePort DeletePort;
819*fd9ee8b5Sjoyce mcintosh
820*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_AddPortEx)
821*fd9ee8b5Sjoyce mcintosh		struct spoolss_AddPortEx AddPortEx;
822*fd9ee8b5Sjoyce mcintosh
823*fd9ee8b5Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_SetPort)
824*fd9ee8b5Sjoyce mcintosh		struct spoolss_SetPort SetPort;
825cb174861Sjoyce mcintosh
826cb174861Sjoyce mcintosh	CASE(SPOOLSS_OPNUM_RFNPCNEX)
827cb174861Sjoyce mcintosh		struct spoolss_RFNPCNEX RFNPCNEX;
828cb174861Sjoyce mcintosh
829da6c28aaSamw};
830da6c28aaSamwtypedef union spoolss_interface	spoolss_interface_t;
831da6c28aaSamwEXTERNTYPEINFO(spoolss_interface)
832da6c28aaSamw
833cb174861Sjoyce mcintosh#endif /* _SPOOLSS_NDL_ */
834