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