2
Unix SMB/Netbios implementation.
4
Copyright (C) Andrew Tridgell 1992-2000,
5
Copyright (C) Luke Kenneth Casson Leighton 1996-2000,
6
Copyright (C) Jean Francois Micouleau 1998-2000.
7
Copyright (C) Gerald Carter 2001-2006.
9
This program is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 2 of the License, or
12
(at your option) any later version.
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
19
You should have received a copy of the GNU General Public License
20
along with this program; if not, write to the Free Software
21
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24
#ifndef _RPC_SPOOLSS_H /* _RPC_SPOOLSS_H */
25
#define _RPC_SPOOLSS_H
27
/* spoolss pipe: this are the calls which are not implemented ...
28
#define SPOOLSS_GETPRINTERDRIVER 0x0b
29
#define SPOOLSS_READPRINTER 0x16
30
#define SPOOLSS_WAITFORPRINTERCHANGE 0x1c
31
#define SPOOLSS_ADDPORT 0x25
32
#define SPOOLSS_CONFIGUREPORT 0x26
33
#define SPOOLSS_DELETEPORT 0x27
34
#define SPOOLSS_CREATEPRINTERIC 0x28
35
#define SPOOLSS_PLAYGDISCRIPTONPRINTERIC 0x29
36
#define SPOOLSS_DELETEPRINTERIC 0x2a
37
#define SPOOLSS_ADDPRINTERCONNECTION 0x2b
38
#define SPOOLSS_DELETEPRINTERCONNECTION 0x2c
39
#define SPOOLSS_PRINTERMESSAGEBOX 0x2d
40
#define SPOOLSS_ADDMONITOR 0x2e
41
#define SPOOLSS_DELETEMONITOR 0x2f
42
#define SPOOLSS_DELETEPRINTPROCESSOR 0x30
43
#define SPOOLSS_ADDPRINTPROVIDOR 0x31
44
#define SPOOLSS_DELETEPRINTPROVIDOR 0x32
45
#define SPOOLSS_FINDFIRSTPRINTERCHANGENOTIFICATION 0x36
46
#define SPOOLSS_FINDNEXTPRINTERCHANGENOTIFICATION 0x37
47
#define SPOOLSS_ROUTERFINDFIRSTPRINTERNOTIFICATIONOLD 0x39
48
#define SPOOLSS_ADDPORTEX 0x3d
49
#define SPOOLSS_REMOTEFINDFIRSTPRINTERCHANGENOTIFICATION0x3e
50
#define SPOOLSS_SPOOLERINIT 0x3f
51
#define SPOOLSS_RESETPRINTEREX 0x40
54
/* those are implemented */
55
#define SPOOLSS_ENUMPRINTERS 0x00
56
#define SPOOLSS_OPENPRINTER 0x01
57
#define SPOOLSS_SETJOB 0x02
58
#define SPOOLSS_GETJOB 0x03
59
#define SPOOLSS_ENUMJOBS 0x04
60
#define SPOOLSS_ADDPRINTER 0x05
61
#define SPOOLSS_DELETEPRINTER 0x06
62
#define SPOOLSS_SETPRINTER 0x07
63
#define SPOOLSS_GETPRINTER 0x08
64
#define SPOOLSS_ADDPRINTERDRIVER 0x09
65
#define SPOOLSS_ENUMPRINTERDRIVERS 0x0a
66
#define SPOOLSS_GETPRINTERDRIVERDIRECTORY 0x0c
67
#define SPOOLSS_DELETEPRINTERDRIVER 0x0d
68
#define SPOOLSS_ADDPRINTPROCESSOR 0x0e
69
#define SPOOLSS_ENUMPRINTPROCESSORS 0x0f
70
#define SPOOLSS_GETPRINTPROCESSORDIRECTORY 0x10
71
#define SPOOLSS_STARTDOCPRINTER 0x11
72
#define SPOOLSS_STARTPAGEPRINTER 0x12
73
#define SPOOLSS_WRITEPRINTER 0x13
74
#define SPOOLSS_ENDPAGEPRINTER 0x14
75
#define SPOOLSS_ABORTPRINTER 0x15
76
#define SPOOLSS_ENDDOCPRINTER 0x17
77
#define SPOOLSS_ADDJOB 0x18
78
#define SPOOLSS_SCHEDULEJOB 0x19
79
#define SPOOLSS_GETPRINTERDATA 0x1a
80
#define SPOOLSS_SETPRINTERDATA 0x1b
81
#define SPOOLSS_CLOSEPRINTER 0x1d
82
#define SPOOLSS_ADDFORM 0x1e
83
#define SPOOLSS_DELETEFORM 0x1f
84
#define SPOOLSS_GETFORM 0x20
85
#define SPOOLSS_SETFORM 0x21
86
#define SPOOLSS_ENUMFORMS 0x22
87
#define SPOOLSS_ENUMPORTS 0x23
88
#define SPOOLSS_ENUMMONITORS 0x24
89
#define SPOOLSS_ENUMPRINTPROCDATATYPES 0x33
90
#define SPOOLSS_RESETPRINTER 0x34
91
#define SPOOLSS_GETPRINTERDRIVER2 0x35
92
#define SPOOLSS_FCPN 0x38 /* FindClosePrinterNotify */
93
#define SPOOLSS_REPLYOPENPRINTER 0x3a
94
#define SPOOLSS_ROUTERREPLYPRINTER 0x3b
95
#define SPOOLSS_REPLYCLOSEPRINTER 0x3c
96
#define SPOOLSS_RFFPCNEX 0x41 /* RemoteFindFirstPrinterChangeNotifyEx */
97
#define SPOOLSS_RRPCN 0x42 /* RouteRefreshPrinterChangeNotification */
98
#define SPOOLSS_RFNPCNEX 0x43 /* RemoteFindNextPrinterChangeNotifyEx */
99
#define SPOOLSS_OPENPRINTEREX 0x45
100
#define SPOOLSS_ADDPRINTEREX 0x46
101
#define SPOOLSS_ENUMPRINTERDATA 0x48
102
#define SPOOLSS_DELETEPRINTERDATA 0x49
103
#define SPOOLSS_SETPRINTERDATAEX 0x4d
104
#define SPOOLSS_GETPRINTERDATAEX 0x4e
105
#define SPOOLSS_ENUMPRINTERDATAEX 0x4f
106
#define SPOOLSS_ENUMPRINTERKEY 0x50
107
#define SPOOLSS_DELETEPRINTERDATAEX 0x51
108
#define SPOOLSS_DELETEPRINTERKEY 0x52
109
#define SPOOLSS_DELETEPRINTERDRIVEREX 0x54
110
#define SPOOLSS_XCVDATAPORT 0x58
111
#define SPOOLSS_ADDPRINTERDRIVEREX 0x59
114
* Special strings for the OpenPrinter() call. See the MSDN DDK
115
* docs on the XcvDataPort() for more details.
118
#define SPL_LOCAL_PORT "Local Port"
119
#define SPL_TCPIP_PORT "Standard TCP/IP Port"
120
#define SPL_XCV_MONITOR_LOCALMON ",XcvMonitor Local Port"
121
#define SPL_XCV_MONITOR_TCPMON ",XcvMonitor Standard TCP/IP Port"
124
#define PRINTER_CONTROL_UNPAUSE 0x00000000
125
#define PRINTER_CONTROL_PAUSE 0x00000001
126
#define PRINTER_CONTROL_RESUME 0x00000002
127
#define PRINTER_CONTROL_PURGE 0x00000003
128
#define PRINTER_CONTROL_SET_STATUS 0x00000004
130
#define PRINTER_STATUS_OK 0x00000000
131
#define PRINTER_STATUS_PAUSED 0x00000001
132
#define PRINTER_STATUS_ERROR 0x00000002
133
#define PRINTER_STATUS_PENDING_DELETION 0x00000004
134
#define PRINTER_STATUS_PAPER_JAM 0x00000008
136
#define PRINTER_STATUS_PAPER_OUT 0x00000010
137
#define PRINTER_STATUS_MANUAL_FEED 0x00000020
138
#define PRINTER_STATUS_PAPER_PROBLEM 0x00000040
139
#define PRINTER_STATUS_OFFLINE 0x00000080
141
#define PRINTER_STATUS_IO_ACTIVE 0x00000100
142
#define PRINTER_STATUS_BUSY 0x00000200
143
#define PRINTER_STATUS_PRINTING 0x00000400
144
#define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800
146
#define PRINTER_STATUS_NOT_AVAILABLE 0x00001000
147
#define PRINTER_STATUS_WAITING 0x00002000
148
#define PRINTER_STATUS_PROCESSING 0x00004000
149
#define PRINTER_STATUS_INITIALIZING 0x00008000
151
#define PRINTER_STATUS_WARMING_UP 0x00010000
152
#define PRINTER_STATUS_TONER_LOW 0x00020000
153
#define PRINTER_STATUS_NO_TONER 0x00040000
154
#define PRINTER_STATUS_PAGE_PUNT 0x00080000
156
#define PRINTER_STATUS_USER_INTERVENTION 0x00100000
157
#define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000
158
#define PRINTER_STATUS_DOOR_OPEN 0x00400000
159
#define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000
161
#define PRINTER_STATUS_POWER_SAVE 0x01000000
163
#define SERVER_ACCESS_ADMINISTER 0x00000001
164
#define SERVER_ACCESS_ENUMERATE 0x00000002
165
#define PRINTER_ACCESS_ADMINISTER 0x00000004
166
#define PRINTER_ACCESS_USE 0x00000008
167
#define JOB_ACCESS_ADMINISTER 0x00000010
169
/* JOB status codes. */
171
#define JOB_STATUS_QUEUED 0x0000
172
#define JOB_STATUS_PAUSED 0x0001
173
#define JOB_STATUS_ERROR 0x0002
174
#define JOB_STATUS_DELETING 0x0004
175
#define JOB_STATUS_SPOOLING 0x0008
176
#define JOB_STATUS_PRINTING 0x0010
177
#define JOB_STATUS_OFFLINE 0x0020
178
#define JOB_STATUS_PAPEROUT 0x0040
179
#define JOB_STATUS_PRINTED 0x0080
180
#define JOB_STATUS_DELETED 0x0100
181
#define JOB_STATUS_BLOCKED 0x0200
182
#define JOB_STATUS_USER_INTERVENTION 0x0400
184
/* Access rights for print servers */
185
#define SERVER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE
186
#define SERVER_READ STANDARD_RIGHTS_READ_ACCESS|SERVER_ACCESS_ENUMERATE
187
#define SERVER_WRITE STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE
188
#define SERVER_EXECUTE STANDARD_RIGHTS_EXECUTE_ACCESS|SERVER_ACCESS_ENUMERATE
190
/* Access rights for printers */
191
#define PRINTER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED_ACCESS|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE
192
#define PRINTER_READ STANDARD_RIGHTS_READ_ACCESS|PRINTER_ACCESS_USE
193
#define PRINTER_WRITE STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE
194
#define PRINTER_EXECUTE STANDARD_RIGHTS_EXECUTE_ACCESS|PRINTER_ACCESS_USE
196
/* Access rights for jobs */
197
#define JOB_ALL_ACCESS STANDARD_RIGHTS_REQUIRED_ACCESS|JOB_ACCESS_ADMINISTER
198
#define JOB_READ STANDARD_RIGHTS_READ_ACCESS|JOB_ACCESS_ADMINISTER
199
#define JOB_WRITE STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER
200
#define JOB_EXECUTE STANDARD_RIGHTS_EXECUTE_ACCESS|JOB_ACCESS_ADMINISTER
202
/* ACE masks for the various print permissions */
204
#define PRINTER_ACE_FULL_CONTROL (GENERIC_ALL_ACCESS|PRINTER_ALL_ACCESS)
205
#define PRINTER_ACE_MANAGE_DOCUMENTS (GENERIC_ALL_ACCESS|READ_CONTROL_ACCESS)
206
#define PRINTER_ACE_PRINT (GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE)
209
/* Notify field types */
211
#define NOTIFY_ONE_VALUE 1 /* Notify data is stored in value1 */
212
#define NOTIFY_TWO_VALUE 2 /* Notify data is stored in value2 */
213
#define NOTIFY_POINTER 3 /* Data is a pointer to a buffer */
214
#define NOTIFY_STRING 4 /* Data is a pointer to a buffer w/length */
215
#define NOTIFY_SECDESC 5 /* Data is a security descriptor */
217
#define PRINTER_NOTIFY_TYPE 0x00
218
#define JOB_NOTIFY_TYPE 0x01
219
#define PRINT_TABLE_END 0xFF
221
#define MAX_PRINTER_NOTIFY 26
222
#define MAX_JOB_NOTIFY 24
224
#define MAX_NOTIFY_TYPE_FOR_NOW 26
226
#define PRINTER_NOTIFY_SERVER_NAME 0x00
227
#define PRINTER_NOTIFY_PRINTER_NAME 0x01
228
#define PRINTER_NOTIFY_SHARE_NAME 0x02
229
#define PRINTER_NOTIFY_PORT_NAME 0x03
230
#define PRINTER_NOTIFY_DRIVER_NAME 0x04
231
#define PRINTER_NOTIFY_COMMENT 0x05
232
#define PRINTER_NOTIFY_LOCATION 0x06
233
#define PRINTER_NOTIFY_DEVMODE 0x07
234
#define PRINTER_NOTIFY_SEPFILE 0x08
235
#define PRINTER_NOTIFY_PRINT_PROCESSOR 0x09
236
#define PRINTER_NOTIFY_PARAMETERS 0x0A
237
#define PRINTER_NOTIFY_DATATYPE 0x0B
238
#define PRINTER_NOTIFY_SECURITY_DESCRIPTOR 0x0C
239
#define PRINTER_NOTIFY_ATTRIBUTES 0x0D
240
#define PRINTER_NOTIFY_PRIORITY 0x0E
241
#define PRINTER_NOTIFY_DEFAULT_PRIORITY 0x0F
242
#define PRINTER_NOTIFY_START_TIME 0x10
243
#define PRINTER_NOTIFY_UNTIL_TIME 0x11
244
#define PRINTER_NOTIFY_STATUS 0x12
245
#define PRINTER_NOTIFY_STATUS_STRING 0x13
246
#define PRINTER_NOTIFY_CJOBS 0x14
247
#define PRINTER_NOTIFY_AVERAGE_PPM 0x15
248
#define PRINTER_NOTIFY_TOTAL_PAGES 0x16
249
#define PRINTER_NOTIFY_PAGES_PRINTED 0x17
250
#define PRINTER_NOTIFY_TOTAL_BYTES 0x18
251
#define PRINTER_NOTIFY_BYTES_PRINTED 0x19
253
#define JOB_NOTIFY_PRINTER_NAME 0x00
254
#define JOB_NOTIFY_MACHINE_NAME 0x01
255
#define JOB_NOTIFY_PORT_NAME 0x02
256
#define JOB_NOTIFY_USER_NAME 0x03
257
#define JOB_NOTIFY_NOTIFY_NAME 0x04
258
#define JOB_NOTIFY_DATATYPE 0x05
259
#define JOB_NOTIFY_PRINT_PROCESSOR 0x06
260
#define JOB_NOTIFY_PARAMETERS 0x07
261
#define JOB_NOTIFY_DRIVER_NAME 0x08
262
#define JOB_NOTIFY_DEVMODE 0x09
263
#define JOB_NOTIFY_STATUS 0x0A
264
#define JOB_NOTIFY_STATUS_STRING 0x0B
265
#define JOB_NOTIFY_SECURITY_DESCRIPTOR 0x0C
266
#define JOB_NOTIFY_DOCUMENT 0x0D
267
#define JOB_NOTIFY_PRIORITY 0x0E
268
#define JOB_NOTIFY_POSITION 0x0F
269
#define JOB_NOTIFY_SUBMITTED 0x10
270
#define JOB_NOTIFY_START_TIME 0x11
271
#define JOB_NOTIFY_UNTIL_TIME 0x12
272
#define JOB_NOTIFY_TIME 0x13
273
#define JOB_NOTIFY_TOTAL_PAGES 0x14
274
#define JOB_NOTIFY_PAGES_PRINTED 0x15
275
#define JOB_NOTIFY_TOTAL_BYTES 0x16
276
#define JOB_NOTIFY_BYTES_PRINTED 0x17
278
#define PRINTER_NOTIFY_OPTIONS_REFRESH 0x01
280
#define PRINTER_CHANGE_ADD_PRINTER 0x00000001
281
#define PRINTER_CHANGE_SET_PRINTER 0x00000002
282
#define PRINTER_CHANGE_DELETE_PRINTER 0x00000004
283
#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
284
#define PRINTER_CHANGE_PRINTER (PRINTER_CHANGE_ADD_PRINTER | \
285
PRINTER_CHANGE_SET_PRINTER | \
286
PRINTER_CHANGE_DELETE_PRINTER | \
287
PRINTER_CHANGE_FAILED_CONNECTION_PRINTER )
289
#define PRINTER_CHANGE_ADD_JOB 0x00000100
290
#define PRINTER_CHANGE_SET_JOB 0x00000200
291
#define PRINTER_CHANGE_DELETE_JOB 0x00000400
292
#define PRINTER_CHANGE_WRITE_JOB 0x00000800
293
#define PRINTER_CHANGE_JOB (PRINTER_CHANGE_ADD_JOB | \
294
PRINTER_CHANGE_SET_JOB | \
295
PRINTER_CHANGE_DELETE_JOB | \
296
PRINTER_CHANGE_WRITE_JOB )
298
#define PRINTER_CHANGE_ADD_FORM 0x00010000
299
#define PRINTER_CHANGE_SET_FORM 0x00020000
300
#define PRINTER_CHANGE_DELETE_FORM 0x00040000
301
#define PRINTER_CHANGE_FORM (PRINTER_CHANGE_ADD_FORM | \
302
PRINTER_CHANGE_SET_FORM | \
303
PRINTER_CHANGE_DELETE_FORM )
305
#define PRINTER_CHANGE_ADD_PORT 0x00100000
306
#define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000
307
#define PRINTER_CHANGE_DELETE_PORT 0x00400000
308
#define PRINTER_CHANGE_PORT (PRINTER_CHANGE_ADD_PORT | \
309
PRINTER_CHANGE_CONFIGURE_PORT | \
310
PRINTER_CHANGE_DELETE_PORT )
312
#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000
313
#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000
314
#define PRINTER_CHANGE_PRINT_PROCESSOR (PRINTER_CHANGE_ADD_PRINT_PROCESSOR | \
315
PRINTER_CHANGE_DELETE_PRINT_PROCESSOR )
317
#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000
318
#define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000
319
#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000
320
#define PRINTER_CHANGE_PRINTER_DRIVER (PRINTER_CHANGE_ADD_PRINTER_DRIVER | \
321
PRINTER_CHANGE_SET_PRINTER_DRIVER | \
322
PRINTER_CHANGE_DELETE_PRINTER_DRIVER )
324
#define PRINTER_CHANGE_TIMEOUT 0x80000000
325
#define PRINTER_CHANGE_ALL (PRINTER_CHANGE_JOB | \
326
PRINTER_CHANGE_FORM | \
327
PRINTER_CHANGE_PORT | \
328
PRINTER_CHANGE_PRINT_PROCESSOR | \
329
PRINTER_CHANGE_PRINTER_DRIVER )
331
#define PRINTER_NOTIFY_INFO_DISCARDED 0x1
334
* Set of macros for flagging what changed in the PRINTER_INFO_2 struct
335
* when sending messages to other smbd's
337
#define PRINTER_MESSAGE_NULL 0x00000000
338
#define PRINTER_MESSAGE_DRIVER 0x00000001
339
#define PRINTER_MESSAGE_COMMENT 0x00000002
340
#define PRINTER_MESSAGE_PRINTERNAME 0x00000004
341
#define PRINTER_MESSAGE_LOCATION 0x00000008
342
#define PRINTER_MESSAGE_DEVMODE 0x00000010 /* not curently supported */
343
#define PRINTER_MESSAGE_SEPFILE 0x00000020
344
#define PRINTER_MESSAGE_PRINTPROC 0x00000040
345
#define PRINTER_MESSAGE_PARAMS 0x00000080
346
#define PRINTER_MESSAGE_DATATYPE 0x00000100
347
#define PRINTER_MESSAGE_SECDESC 0x00000200
348
#define PRINTER_MESSAGE_CJOBS 0x00000400
349
#define PRINTER_MESSAGE_PORT 0x00000800
350
#define PRINTER_MESSAGE_SHARENAME 0x00001000
351
#define PRINTER_MESSAGE_ATTRIBUTES 0x00002000
353
typedef struct printer_message_info {
354
uint32 low; /* PRINTER_CHANGE_XXX */
355
uint32 high; /* PRINTER_CHANGE_XXX */
356
fstring printer_name;
357
uint32 flags; /* PRINTER_MESSAGE_XXX */
359
PRINTER_MESSAGE_INFO;
362
* The printer attributes.
363
* I #defined all of them (grabbed form MSDN)
365
* ( SHARED | NETWORK | RAW_ONLY )
366
* RAW_ONLY _MUST_ be present otherwise NT will send an EMF file
369
#define PRINTER_ATTRIBUTE_QUEUED 0x00000001
370
#define PRINTER_ATTRIBUTE_DIRECT 0x00000002
371
#define PRINTER_ATTRIBUTE_DEFAULT 0x00000004
372
#define PRINTER_ATTRIBUTE_SHARED 0x00000008
374
#define PRINTER_ATTRIBUTE_NETWORK 0x00000010
375
#define PRINTER_ATTRIBUTE_HIDDEN 0x00000020
376
#define PRINTER_ATTRIBUTE_LOCAL 0x00000040
377
#define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080
379
#define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100
380
#define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
381
#define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400
382
#define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800
384
#define PRINTER_ATTRIBUTE_RAW_ONLY 0x00001000
385
#define PRINTER_ATTRIBUTE_PUBLISHED 0x00002000
387
#define PRINTER_ATTRIBUTE_SAMBA (PRINTER_ATTRIBUTE_RAW_ONLY|\
388
PRINTER_ATTRIBUTE_SHARED|\
389
PRINTER_ATTRIBUTE_LOCAL)
390
#define PRINTER_ATTRIBUTE_NOT_SAMBA (PRINTER_ATTRIBUTE_NETWORK)
392
#define NO_PRIORITY 0
393
#define MAX_PRIORITY 99
394
#define MIN_PRIORITY 1
395
#define DEF_PRIORITY 1
397
/* the flags of the query */
398
#define PRINTER_ENUM_DEFAULT 0x00000001
399
#define PRINTER_ENUM_LOCAL 0x00000002
400
#define PRINTER_ENUM_CONNECTIONS 0x00000004
401
#define PRINTER_ENUM_FAVORITE 0x00000004
402
#define PRINTER_ENUM_NAME 0x00000008
403
#define PRINTER_ENUM_REMOTE 0x00000010
404
#define PRINTER_ENUM_SHARED 0x00000020
405
#define PRINTER_ENUM_NETWORK 0x00000040
407
/* the flags of each printers */
408
#define PRINTER_ENUM_UNKNOWN_8 0x00000008
409
#define PRINTER_ENUM_EXPAND 0x00004000
410
#define PRINTER_ENUM_CONTAINER 0x00008000
411
#define PRINTER_ENUM_ICONMASK 0x00ff0000
412
#define PRINTER_ENUM_ICON1 0x00010000
413
#define PRINTER_ENUM_ICON2 0x00020000
414
#define PRINTER_ENUM_ICON3 0x00040000
415
#define PRINTER_ENUM_ICON4 0x00080000
416
#define PRINTER_ENUM_ICON5 0x00100000
417
#define PRINTER_ENUM_ICON6 0x00200000
418
#define PRINTER_ENUM_ICON7 0x00400000
419
#define PRINTER_ENUM_ICON8 0x00800000
421
/* FLAGS for SPOOLSS_DELETEPRINTERDRIVEREX */
423
#define DPD_DELETE_UNUSED_FILES 0x00000001
424
#define DPD_DELETE_SPECIFIC_VERSION 0x00000002
425
#define DPD_DELETE_ALL_FILES 0x00000004
427
#define DRIVER_ANY_VERSION 0xffffffff
428
#define DRIVER_MAX_VERSION 4
430
/* FLAGS for SPOOLSS_ADDPRINTERDRIVEREX */
432
#define APD_STRICT_UPGRADE 0x00000001
433
#define APD_STRICT_DOWNGRADE 0x00000002
434
#define APD_COPY_ALL_FILES 0x00000004
435
#define APD_COPY_NEW_FILES 0x00000008
438
/* this struct is undocumented */
439
/* thanks to the ddk ... */
441
uint32 size; /* length of user_name & client_name + 2? */
442
UNISTR2 *client_name;
458
* various bits in the DEVICEMODE.fields member
461
#define DEVMODE_ORIENTATION 0x00000001
462
#define DEVMODE_PAPERSIZE 0x00000002
463
#define DEVMODE_PAPERLENGTH 0x00000004
464
#define DEVMODE_PAPERWIDTH 0x00000008
465
#define DEVMODE_SCALE 0x00000010
466
#define DEVMODE_POSITION 0x00000020
467
#define DEVMODE_NUP 0x00000040
468
#define DEVMODE_COPIES 0x00000100
469
#define DEVMODE_DEFAULTSOURCE 0x00000200
470
#define DEVMODE_PRINTQUALITY 0x00000400
471
#define DEVMODE_COLOR 0x00000800
472
#define DEVMODE_DUPLEX 0x00001000
473
#define DEVMODE_YRESOLUTION 0x00002000
474
#define DEVMODE_TTOPTION 0x00004000
475
#define DEVMODE_COLLATE 0x00008000
476
#define DEVMODE_FORMNAME 0x00010000
477
#define DEVMODE_LOGPIXELS 0x00020000
478
#define DEVMODE_BITSPERPEL 0x00040000
479
#define DEVMODE_PELSWIDTH 0x00080000
480
#define DEVMODE_PELSHEIGHT 0x00100000
481
#define DEVMODE_DISPLAYFLAGS 0x00200000
482
#define DEVMODE_DISPLAYFREQUENCY 0x00400000
483
#define DEVMODE_ICMMETHOD 0x00800000
484
#define DEVMODE_ICMINTENT 0x01000000
485
#define DEVMODE_MEDIATYPE 0x02000000
486
#define DEVMODE_DITHERTYPE 0x04000000
487
#define DEVMODE_PANNINGWIDTH 0x08000000
488
#define DEVMODE_PANNINGHEIGHT 0x10000000
492
* Devicemode structure
495
typedef struct devicemode
499
uint16 driverversion;
509
uint16 defaultsource;
522
uint32 displayfrequency;
530
uint32 panningheight;
535
typedef struct _devmode_cont
543
typedef struct _printer_default
547
DEVMODE_CTR devmode_cont;
548
uint32 access_required;
552
/********************************************/
555
UNISTR2 *printername;
556
PRINTER_DEFAULT printer_default;
557
} SPOOL_Q_OPEN_PRINTER;
560
POLICY_HND handle; /* handle used along all transactions (20*uint8) */
562
} SPOOL_R_OPEN_PRINTER;
564
/********************************************/
567
UNISTR2 *printername;
568
PRINTER_DEFAULT printer_default;
570
SPOOL_USER_CTR user_ctr;
571
} SPOOL_Q_OPEN_PRINTER_EX;
574
POLICY_HND handle; /* handle used along all transactions (20*uint8) */
576
} SPOOL_R_OPEN_PRINTER_EX;
578
/********************************************/
580
typedef struct spool_notify_option_type
589
uint16 fields[MAX_NOTIFY_TYPE_FOR_NOW];
591
SPOOL_NOTIFY_OPTION_TYPE;
593
typedef struct spool_notify_option_type_ctr
596
SPOOL_NOTIFY_OPTION_TYPE *type;
598
SPOOL_NOTIFY_OPTION_TYPE_CTR;
602
typedef struct s_header_type
615
typedef struct spool_q_getprinterdata
621
SPOOL_Q_GETPRINTERDATA;
623
typedef struct spool_r_getprinterdata
631
SPOOL_R_GETPRINTERDATA;
633
typedef struct spool_q_deleteprinterdata
638
SPOOL_Q_DELETEPRINTERDATA;
640
typedef struct spool_r_deleteprinterdata
644
SPOOL_R_DELETEPRINTERDATA;
646
typedef struct spool_q_closeprinter
650
SPOOL_Q_CLOSEPRINTER;
652
typedef struct spool_r_closeprinter
657
SPOOL_R_CLOSEPRINTER;
659
typedef struct spool_q_startpageprinter
663
SPOOL_Q_STARTPAGEPRINTER;
665
typedef struct spool_r_startpageprinter
669
SPOOL_R_STARTPAGEPRINTER;
671
typedef struct spool_q_endpageprinter
675
SPOOL_Q_ENDPAGEPRINTER;
677
typedef struct spool_r_endpageprinter
681
SPOOL_R_ENDPAGEPRINTER;
684
typedef struct spool_q_deleteprinterdriver
691
SPOOL_Q_DELETEPRINTERDRIVER;
693
typedef struct spool_r_deleteprinterdriver
697
SPOOL_R_DELETEPRINTERDRIVER;
699
typedef struct spool_q_deleteprinterdriverex
708
SPOOL_Q_DELETEPRINTERDRIVEREX;
710
typedef struct spool_r_deleteprinterdriverex
714
SPOOL_R_DELETEPRINTERDRIVEREX;
717
typedef struct spool_doc_info_1
728
typedef struct spool_doc_info
731
DOC_INFO_1 doc_info_1;
735
typedef struct spool_doc_info_container
742
typedef struct spool_q_startdocprinter
745
DOC_INFO_CONTAINER doc_info_container;
747
SPOOL_Q_STARTDOCPRINTER;
749
typedef struct spool_r_startdocprinter
754
SPOOL_R_STARTDOCPRINTER;
756
typedef struct spool_q_enddocprinter
760
SPOOL_Q_ENDDOCPRINTER;
762
typedef struct spool_r_enddocprinter
766
SPOOL_R_ENDDOCPRINTER;
768
typedef struct spool_q_writeprinter
775
SPOOL_Q_WRITEPRINTER;
777
typedef struct spool_r_writeprinter
779
uint32 buffer_written;
782
SPOOL_R_WRITEPRINTER;
784
typedef struct spool_notify_option
789
uint32 option_type_ptr;
790
SPOOL_NOTIFY_OPTION_TYPE_CTR ctr;
794
typedef struct spool_notify_info_data
814
} SPOOL_NOTIFY_INFO_DATA;
816
typedef struct spool_notify_info
821
SPOOL_NOTIFY_INFO_DATA *data;
825
/* If the struct name looks obscure, yes it is ! */
826
/* RemoteFindFirstPrinterChangeNotificationEx query struct */
827
typedef struct spoolss_q_rffpcnex
832
uint32 localmachine_ptr;
833
UNISTR2 localmachine;
836
SPOOL_NOTIFY_OPTION *option;
840
typedef struct spool_r_rffpcnex
846
/* Remote Find Next Printer Change Notify Ex */
847
typedef struct spool_q_rfnpcnex
852
SPOOL_NOTIFY_OPTION *option;
856
typedef struct spool_r_rfnpcnex
859
SPOOL_NOTIFY_INFO info;
864
/* Find Close Printer Notify */
865
typedef struct spool_q_fcpn
871
typedef struct spool_r_fcpn
878
typedef struct printer_info_0
895
uint32 global_counter;
898
uint16 major_version;
899
uint16 build_version;
904
uint32 session_counter;
906
uint32 printer_errors;
927
typedef struct printer_info_1
936
typedef struct printer_info_2
947
UNISTR printprocessor;
953
uint32 defaultpriority;
962
typedef struct printer_info_3
969
typedef struct printer_info_4
977
typedef struct printer_info_5
982
uint32 device_not_selected_timeout;
983
uint32 transmission_retry_timeout;
987
#define SPOOL_DS_PUBLISH 1
988
#define SPOOL_DS_UPDATE 2
989
#define SPOOL_DS_UNPUBLISH 4
990
#define SPOOL_DS_PENDING 0x80000000
992
typedef struct printer_info_7
994
UNISTR guid; /* text form of printer guid */
999
typedef struct spool_q_enumprinters
1002
uint32 servername_ptr;
1008
SPOOL_Q_ENUMPRINTERS;
1010
typedef struct printer_info_ctr_info
1012
PRINTER_INFO_0 *printers_0;
1013
PRINTER_INFO_1 *printers_1;
1014
PRINTER_INFO_2 *printers_2;
1015
PRINTER_INFO_3 *printers_3;
1016
PRINTER_INFO_4 *printers_4;
1017
PRINTER_INFO_5 *printers_5;
1018
PRINTER_INFO_7 *printers_7;
1022
typedef struct spool_r_enumprinters
1025
uint32 needed; /* bytes needed */
1026
uint32 returned; /* number of printers */
1029
SPOOL_R_ENUMPRINTERS;
1032
typedef struct spool_q_getprinter
1041
typedef struct printer_info_info
1045
PRINTER_INFO_0 *info0;
1046
PRINTER_INFO_1 *info1;
1047
PRINTER_INFO_2 *info2;
1052
typedef struct spool_r_getprinter
1057
} SPOOL_R_GETPRINTER;
1059
typedef struct driver_info_1
1064
typedef struct driver_info_2
1068
UNISTR architecture;
1074
typedef struct driver_info_3
1078
UNISTR architecture;
1083
uint16 *dependentfiles;
1085
UNISTR defaultdatatype;
1089
typedef struct driver_info_6
1093
UNISTR architecture;
1098
uint16 *dependentfiles;
1100
UNISTR defaultdatatype;
1101
uint16* previousdrivernames;
1104
uint32 driver_version_low;
1105
uint32 driver_version_high;
1113
typedef struct driver_info_info
1115
DRIVER_INFO_1 *info1;
1116
DRIVER_INFO_2 *info2;
1117
DRIVER_INFO_3 *info3;
1118
DRIVER_INFO_6 *info6;
1122
typedef struct spool_q_getprinterdriver2
1125
uint32 architecture_ptr;
1126
UNISTR2 architecture;
1130
uint32 clientmajorversion;
1131
uint32 clientminorversion;
1133
SPOOL_Q_GETPRINTERDRIVER2;
1135
typedef struct spool_r_getprinterdriver2
1139
uint32 servermajorversion;
1140
uint32 serverminorversion;
1143
SPOOL_R_GETPRINTERDRIVER2;
1146
typedef struct add_jobinfo_1
1154
typedef struct spool_q_addjob
1163
typedef struct spool_r_addjob
1172
* I'm really wondering how many different time formats
1173
* I will have to cope with
1175
* JFM, 09/13/98 In a mad mood ;-(
1177
typedef struct systemtime
1186
uint16 milliseconds;
1190
typedef struct s_job_info_1
1203
uint32 pagesprinted;
1204
SYSTEMTIME submitted;
1208
typedef struct s_job_info_2
1217
UNISTR printprocessor;
1220
DEVICEMODE *devmode;
1222
/* SEC_DESC sec_desc;*/
1230
SYSTEMTIME submitted;
1232
uint32 pagesprinted;
1236
typedef struct spool_q_enumjobs
1247
typedef struct job_info_ctr_info
1251
JOB_INFO_1 *job_info_1;
1252
JOB_INFO_2 *job_info_2;
1258
typedef struct spool_r_enumjobs
1267
typedef struct spool_q_schedulejob
1272
SPOOL_Q_SCHEDULEJOB;
1274
typedef struct spool_r_schedulejob
1278
SPOOL_R_SCHEDULEJOB;
1280
typedef struct s_port_info_1
1286
typedef struct s_port_info_2
1289
UNISTR monitor_name;
1296
/* Port Type bits */
1297
#define PORT_TYPE_WRITE 0x0001
1298
#define PORT_TYPE_READ 0x0002
1299
#define PORT_TYPE_REDIRECTED 0x0004
1300
#define PORT_TYPE_NET_ATTACHED 0x0008
1302
typedef struct spool_q_enumports
1312
typedef struct port_info_ctr_info
1316
PORT_INFO_1 *info_1;
1317
PORT_INFO_2 *info_2;
1324
typedef struct spool_r_enumports
1327
uint32 needed; /* bytes needed */
1328
uint32 returned; /* number of printers */
1333
#define JOB_CONTROL_PAUSE 1
1334
#define JOB_CONTROL_RESUME 2
1335
#define JOB_CONTROL_CANCEL 3
1336
#define JOB_CONTROL_RESTART 4
1337
#define JOB_CONTROL_DELETE 5
1339
typedef struct job_info_info
1343
JOB_INFO_1 job_info_1;
1344
JOB_INFO_2 job_info_2;
1351
typedef struct spool_q_setjob
1362
typedef struct spool_r_setjob
1369
typedef struct spool_q_enumprinterdrivers
1373
uint32 environment_ptr;
1374
UNISTR2 environment;
1379
SPOOL_Q_ENUMPRINTERDRIVERS;
1381
typedef struct spool_r_enumprinterdrivers
1388
SPOOL_R_ENUMPRINTERDRIVERS;
1391
#define FORM_BUILTIN 1
1392
#define FORM_PRINTER 2
1394
typedef struct spool_form_1
1407
typedef struct spool_q_enumforms
1416
typedef struct spool_r_enumforms
1425
typedef struct spool_q_getform
1435
typedef struct spool_r_getform
1443
typedef struct spool_printer_info_level_1
1446
uint32 description_ptr;
1449
UNISTR2 description;
1452
} SPOOL_PRINTER_INFO_LEVEL_1;
1454
typedef struct spool_printer_info_level_2
1456
uint32 servername_ptr;
1457
uint32 printername_ptr;
1458
uint32 sharename_ptr;
1459
uint32 portname_ptr;
1460
uint32 drivername_ptr;
1462
uint32 location_ptr;
1465
uint32 printprocessor_ptr;
1466
uint32 datatype_ptr;
1467
uint32 parameters_ptr;
1471
uint32 default_priority;
1478
UNISTR2 printername;
1485
UNISTR2 printprocessor;
1489
SPOOL_PRINTER_INFO_LEVEL_2;
1491
typedef struct spool_printer_info_level_3
1495
SPOOL_PRINTER_INFO_LEVEL_3;
1497
typedef struct spool_printer_info_level_7
1503
SPOOL_PRINTER_INFO_LEVEL_7;
1505
typedef struct spool_printer_info_level
1509
SPOOL_PRINTER_INFO_LEVEL_1 *info_1;
1510
SPOOL_PRINTER_INFO_LEVEL_2 *info_2;
1511
SPOOL_PRINTER_INFO_LEVEL_3 *info_3;
1512
SPOOL_PRINTER_INFO_LEVEL_7 *info_7;
1514
SPOOL_PRINTER_INFO_LEVEL;
1516
typedef struct spool_printer_driver_info_level_3
1520
uint32 environment_ptr;
1521
uint32 driverpath_ptr;
1522
uint32 datafile_ptr;
1523
uint32 configfile_ptr;
1524
uint32 helpfile_ptr;
1525
uint32 monitorname_ptr;
1526
uint32 defaultdatatype_ptr;
1527
uint32 dependentfilessize;
1528
uint32 dependentfiles_ptr;
1531
UNISTR2 environment;
1536
UNISTR2 monitorname;
1537
UNISTR2 defaultdatatype;
1538
BUFFER5 dependentfiles;
1541
SPOOL_PRINTER_DRIVER_INFO_LEVEL_3;
1543
/* SPOOL_PRINTER_DRIVER_INFO_LEVEL_6 structure */
1547
uint32 environment_ptr;
1548
uint32 driverpath_ptr;
1549
uint32 datafile_ptr;
1550
uint32 configfile_ptr;
1551
uint32 helpfile_ptr;
1552
uint32 monitorname_ptr;
1553
uint32 defaultdatatype_ptr;
1554
uint32 dependentfiles_len;
1555
uint32 dependentfiles_ptr;
1556
uint32 previousnames_len;
1557
uint32 previousnames_ptr;
1559
UINT64_S driverversion;
1563
uint32 hardwareid_ptr;
1564
uint32 provider_ptr;
1566
UNISTR2 environment;
1571
UNISTR2 monitorname;
1572
UNISTR2 defaultdatatype;
1573
BUFFER5 dependentfiles;
1574
BUFFER5 previousnames;
1579
} SPOOL_PRINTER_DRIVER_INFO_LEVEL_6;
1582
typedef struct spool_printer_driver_info_level
1586
SPOOL_PRINTER_DRIVER_INFO_LEVEL_3 *info_3;
1587
SPOOL_PRINTER_DRIVER_INFO_LEVEL_6 *info_6;
1589
SPOOL_PRINTER_DRIVER_INFO_LEVEL;
1592
typedef struct spool_q_setprinter
1596
SPOOL_PRINTER_INFO_LEVEL info;
1597
SEC_DESC_BUF *secdesc_ctr;
1598
DEVMODE_CTR devmode_ctr;
1605
typedef struct spool_r_setprinter
1611
/********************************************/
1615
} SPOOL_Q_DELETEPRINTER;
1620
} SPOOL_R_DELETEPRINTER;
1622
/********************************************/
1626
} SPOOL_Q_ABORTPRINTER;
1630
} SPOOL_R_ABORTPRINTER;
1633
/********************************************/
1636
UNISTR2 *server_name;
1638
SPOOL_PRINTER_INFO_LEVEL info;
1639
DEVMODE_CTR devmode_ctr;
1640
SEC_DESC_BUF *secdesc_ctr;
1642
SPOOL_USER_CTR user_ctr;
1643
} SPOOL_Q_ADDPRINTEREX;
1648
} SPOOL_R_ADDPRINTEREX;
1650
/********************************************/
1652
typedef struct spool_q_addprinterdriver
1654
uint32 server_name_ptr;
1655
UNISTR2 server_name;
1657
SPOOL_PRINTER_DRIVER_INFO_LEVEL info;
1659
SPOOL_Q_ADDPRINTERDRIVER;
1661
typedef struct spool_r_addprinterdriver
1665
SPOOL_R_ADDPRINTERDRIVER;
1667
typedef struct spool_q_addprinterdriverex
1669
uint32 server_name_ptr;
1670
UNISTR2 server_name;
1672
SPOOL_PRINTER_DRIVER_INFO_LEVEL info;
1675
SPOOL_Q_ADDPRINTERDRIVEREX;
1677
typedef struct spool_r_addprinterdriverex
1681
SPOOL_R_ADDPRINTERDRIVEREX;
1684
typedef struct driver_directory_1
1690
typedef struct driver_info_ctr_info
1692
DRIVER_DIRECTORY_1 *info1;
1694
DRIVER_DIRECTORY_CTR;
1696
typedef struct spool_q_getprinterdriverdirectory
1700
uint32 environment_ptr;
1701
UNISTR2 environment;
1706
SPOOL_Q_GETPRINTERDRIVERDIR;
1708
typedef struct spool_r_getprinterdriverdirectory
1714
SPOOL_R_GETPRINTERDRIVERDIR;
1716
typedef struct spool_q_addprintprocessor
1720
UNISTR2 environment;
1724
SPOOL_Q_ADDPRINTPROCESSOR;
1726
typedef struct spool_r_addprintprocessor
1730
SPOOL_R_ADDPRINTPROCESSOR;
1733
typedef struct spool_q_enumprintprocessors
1737
uint32 environment_ptr;
1738
UNISTR2 environment;
1743
SPOOL_Q_ENUMPRINTPROCESSORS;
1745
typedef struct printprocessor_1
1751
typedef struct spool_r_enumprintprocessors
1758
SPOOL_R_ENUMPRINTPROCESSORS;
1760
typedef struct spool_q_enumprintprocdatatypes
1764
uint32 processor_ptr;
1770
SPOOL_Q_ENUMPRINTPROCDATATYPES;
1772
typedef struct ppdatatype_1
1776
PRINTPROCDATATYPE_1;
1778
typedef struct spool_r_enumprintprocdatatypes
1785
SPOOL_R_ENUMPRINTPROCDATATYPES;
1787
typedef struct printmonitor_1
1793
typedef struct printmonitor_2
1801
typedef struct spool_q_enumprintmonitors
1809
SPOOL_Q_ENUMPRINTMONITORS;
1811
typedef struct spool_r_enumprintmonitors
1818
SPOOL_R_ENUMPRINTMONITORS;
1821
typedef struct spool_q_enumprinterdata
1828
SPOOL_Q_ENUMPRINTERDATA;
1830
typedef struct spool_r_enumprinterdata
1834
uint32 realvaluesize;
1838
uint32 realdatasize;
1841
SPOOL_R_ENUMPRINTERDATA;
1843
typedef struct spool_q_setprinterdata
1851
uint32 numeric_data;
1853
SPOOL_Q_SETPRINTERDATA;
1855
typedef struct spool_r_setprinterdata
1859
SPOOL_R_SETPRINTERDATA;
1861
typedef struct spool_q_resetprinter
1864
uint32 datatype_ptr;
1866
DEVMODE_CTR devmode_ctr;
1868
} SPOOL_Q_RESETPRINTER;
1870
typedef struct spool_r_resetprinter
1874
SPOOL_R_RESETPRINTER;
1878
typedef struct _form
1892
typedef struct spool_q_addform
1896
uint32 level2; /* This should really be part of the FORM structure */
1901
typedef struct spool_r_addform
1907
typedef struct spool_q_setform
1917
typedef struct spool_r_setform
1923
typedef struct spool_q_deleteform
1930
typedef struct spool_r_deleteform
1936
typedef struct spool_q_getjob
1946
typedef struct pjob_info_info
1950
JOB_INFO_1 *job_info_1;
1951
JOB_INFO_2 *job_info_2;
1959
typedef struct spool_r_getjob
1967
typedef struct spool_q_replyopenprinter
1975
SPOOL_Q_REPLYOPENPRINTER;
1977
typedef struct spool_r_replyopenprinter
1982
SPOOL_R_REPLYOPENPRINTER;
1984
typedef struct spool_q_routerreplyprinter
1988
uint32 unknown1; /* 0x00000001 */
1990
uint8 unknown2[5]; /* 0x0000000001 */
1992
SPOOL_Q_ROUTERREPLYPRINTER;
1994
typedef struct spool_r_routerreplyprinter
1998
SPOOL_R_ROUTERREPLYPRINTER;
2000
typedef struct spool_q_replycloseprinter
2004
SPOOL_Q_REPLYCLOSEPRINTER;
2006
typedef struct spool_r_replycloseprinter
2011
SPOOL_R_REPLYCLOSEPRINTER;
2013
typedef struct spool_q_rrpcn
2021
SPOOL_NOTIFY_INFO info;
2023
SPOOL_Q_REPLY_RRPCN;
2025
typedef struct spool_r_rrpcn
2030
SPOOL_R_REPLY_RRPCN;
2032
typedef struct spool_q_getprinterdataex
2039
SPOOL_Q_GETPRINTERDATAEX;
2041
typedef struct spool_r_getprinterdataex
2049
SPOOL_R_GETPRINTERDATAEX;
2051
typedef struct spool_q_setprinterdataex
2060
uint32 numeric_data;
2062
SPOOL_Q_SETPRINTERDATAEX;
2064
typedef struct spool_r_setprinterdataex
2068
SPOOL_R_SETPRINTERDATAEX;
2071
typedef struct spool_q_deleteprinterdataex
2077
SPOOL_Q_DELETEPRINTERDATAEX;
2079
typedef struct spool_r_deleteprinterdataex
2083
SPOOL_R_DELETEPRINTERDATAEX;
2086
typedef struct spool_q_enumprinterkey
2092
SPOOL_Q_ENUMPRINTERKEY;
2094
typedef struct spool_r_enumprinterkey
2097
uint32 needed; /* in bytes */
2100
SPOOL_R_ENUMPRINTERKEY;
2102
typedef struct spool_q_deleteprinterkey
2107
SPOOL_Q_DELETEPRINTERKEY;
2109
typedef struct spool_r_deleteprinterkey
2113
SPOOL_R_DELETEPRINTERKEY;
2115
typedef struct printer_enum_values
2124
PRINTER_ENUM_VALUES;
2126
typedef struct printer_enum_values_ctr
2129
uint32 size_of_array;
2130
PRINTER_ENUM_VALUES *values;
2132
PRINTER_ENUM_VALUES_CTR;
2134
typedef struct spool_q_enumprinterdataex
2140
SPOOL_Q_ENUMPRINTERDATAEX;
2142
typedef struct spool_r_enumprinterdataex
2144
PRINTER_ENUM_VALUES_CTR ctr;
2149
SPOOL_R_ENUMPRINTERDATAEX;
2151
typedef struct printprocessor_directory_1
2155
PRINTPROCESSOR_DIRECTORY_1;
2157
typedef struct spool_q_getprintprocessordirectory
2160
UNISTR2 environment;
2165
SPOOL_Q_GETPRINTPROCESSORDIRECTORY;
2167
typedef struct spool_r_getprintprocessordirectory
2173
SPOOL_R_GETPRINTPROCESSORDIRECTORY;
2175
/**************************************/
2177
#define MAX_PORTNAME 64
2178
#define MAX_NETWORK_NAME 49
2179
#define MAX_SNMP_COMM_NAME 33
2180
#define MAX_QUEUE_NAME 33
2181
#define MAX_IPADDR_STRING 17
2184
uint16 portname[MAX_PORTNAME];
2189
uint16 hostaddress[MAX_NETWORK_NAME];
2190
uint16 snmpcommunity[MAX_SNMP_COMM_NAME];
2192
uint16 queue[MAX_QUEUE_NAME];
2193
uint16 ipaddress[MAX_IPADDR_STRING];
2196
uint32 snmpdevindex;
2197
} SPOOL_PORT_DATA_1;
2206
} SPOOL_Q_XCVDATAPORT;
2213
} SPOOL_R_XCVDATAPORT;
2215
#define PRINTER_DRIVER_VERSION 2
2216
#define PRINTER_DRIVER_ARCHITECTURE "Windows NT x86"
2218
#endif /* _RPC_SPOOLSS_H */