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