summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-02-24 14:05:52 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:10:53 -0500
commit68ce448fbdbe9f7be3db6189110e46ce23aca18a (patch)
tree7fe830732b9acb38f320d02b43f98b29750fdca8 /source4/librpc
parentb14727583d6108f11427ec8033986e9d617320c5 (diff)
downloadsamba-68ce448fbdbe9f7be3db6189110e46ce23aca18a.tar.gz
samba-68ce448fbdbe9f7be3db6189110e46ce23aca18a.tar.bz2
samba-68ce448fbdbe9f7be3db6189110e46ce23aca18a.zip
r5537: - make use of bitmaps and enums
- add and fix some PrinterInfo levels - add and fix some DriverInfo levels - fix EnumPrinterDriver torture test the curent RPC-SPOOLSS now passes on w2k3 metze (This used to be commit 14b88ca20dc64702f1c1b457a09b1f13b1964654)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/spoolss.idl174
1 files changed, 152 insertions, 22 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl
index ee33aa9eea..85c49566b0 100644
--- a/source4/librpc/idl/spoolss.idl
+++ b/source4/librpc/idl/spoolss.idl
@@ -93,14 +93,83 @@
uint8 private[driverextra];
} spoolss_DeviceMode;
- typedef [public] struct {
- uint32 flags;
+ typedef bitmap {
+ PRINTER_ENUM_DEFAULT = 0x00000001,
+ PRINTER_ENUM_LOCAL = 0x00000002,
+ PRINTER_ENUM_CONNECTIONS = 0x00000004,
+ PRINTER_ENUM_FAVORITE = 0x00000004,
+ PRINTER_ENUM_NAME = 0x00000008,
+ PRINTER_ENUM_REMOTE = 0x00000010,
+ PRINTER_ENUM_SHARED = 0x00000020,
+ PRINTER_ENUM_NETWORK = 0x00000040,
+ PRINTER_ENUM_EXPAND = 0x00004000,
+ PRINTER_ENUM_CONTAINER = 0x00008000,
+ PRINTER_ENUM_ICON1 = 0x00010000,
+ PRINTER_ENUM_ICON2 = 0x00020000,
+ PRINTER_ENUM_ICON3 = 0x00040000,
+ PRINTER_ENUM_ICON4 = 0x00080000,
+ PRINTER_ENUM_ICON5 = 0x00100000,
+ PRINTER_ENUM_ICON6 = 0x00200000,
+ PRINTER_ENUM_ICON7 = 0x00400000,
+ PRINTER_ENUM_ICON8 = 0x00800000,
+ PRINTER_ENUM_HIDE = 0x01000000
+ } spoolss_EnumPrinterFlags;
+
+ typedef struct {
+ spoolss_EnumPrinterFlags flags;
[relative] nstring *name;
[relative] nstring *description;
[relative] nstring *comment;
} spoolss_PrinterInfo1;
- typedef [public] struct {
+ typedef bitmap {
+ PRINTER_ATTRIBUTE_QUEUED = 0x00000001,
+ PRINTER_ATTRIBUTE_DIRECT = 0x00000002,
+ PRINTER_ATTRIBUTE_DEFAULT = 0x00000004,
+ PRINTER_ATTRIBUTE_SHARED = 0x00000008,
+ PRINTER_ATTRIBUTE_NETWORK = 0x00000010,
+ PRINTER_ATTRIBUTE_HIDDEN = 0x00000020,
+ PRINTER_ATTRIBUTE_LOCAL = 0x00000040,
+ PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080,
+ PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100,
+ PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200,
+ PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400,
+ PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800,
+ PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000,
+ PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000,
+ PRINTER_ATTRIBUTE_FAX = 0x00004000,
+ PRINTER_ATTRIBUTE_TS = 0x00008000
+ } spoolss_PrinterAttributes;
+
+ typedef bitmap {
+ PRINTER_STATUS_PAUSED = 0x00000001,
+ PRINTER_STATUS_ERROR = 0x00000002,
+ PRINTER_STATUS_PENDING_DELETION = 0x00000004,
+ PRINTER_STATUS_PAPER_JAM = 0x00000008,
+ PRINTER_STATUS_PAPER_OUT = 0x00000010,
+ PRINTER_STATUS_MANUAL_FEED = 0x00000020,
+ PRINTER_STATUS_PAPER_PROBLEM = 0x00000040,
+ PRINTER_STATUS_OFFLINE = 0x00000080,
+ PRINTER_STATUS_IO_ACTIVE = 0x00000100,
+ PRINTER_STATUS_BUSY = 0x00000200,
+ PRINTER_STATUS_PRINTING = 0x00000400,
+ PRINTER_STATUS_OUTPUT_BIN_FULL = 0x00000800,
+ PRINTER_STATUS_NOT_AVAILABLE = 0x00001000,
+ PRINTER_STATUS_WAITING = 0x00002000,
+ PRINTER_STATUS_PROCESSING = 0x00004000,
+ PRINTER_STATUS_INITIALIZING = 0x00008000,
+ PRINTER_STATUS_WARMING_UP = 0x00010000,
+ PRINTER_STATUS_TONER_LOW = 0x00020000,
+ PRINTER_STATUS_NO_TONER = 0x00040000,
+ PRINTER_STATUS_PAGE_PUNT = 0x00080000,
+ PRINTER_STATUS_USER_INTERVENTION= 0x00100000,
+ PRINTER_STATUS_OUT_OF_MEMORY = 0x00200000,
+ PRINTER_STATUS_DOOR_OPEN = 0x00400000,
+ PRINTER_STATUS_SERVER_UNKNOWN = 0x00800000,
+ PRINTER_STATUS_POWER_SAVE = 0x01000000
+ } spoolss_PrinterStatus;
+
+ typedef struct {
[relative] nstring *servername;
[relative] nstring *printername;
[relative] nstring *sharename;
@@ -114,12 +183,12 @@
[relative] nstring *datatype;
[relative] nstring *parameters;
[relative,subcontext(0)] security_descriptor *secdesc;
- uint32 attributes;
+ spoolss_PrinterAttributes attributes;
uint32 priority;
uint32 defaultpriority;
uint32 starttime;
uint32 untiltime;
- uint32 status;
+ spoolss_PrinterStatus status;
uint32 cjobs;
uint32 averageppm;
} spoolss_PrinterInfo2;
@@ -131,26 +200,38 @@
typedef struct {
[relative] nstring *printername;
[relative] nstring *servername;
- uint32 attributes;
+ spoolss_PrinterAttributes attributes;
} spoolss_PrinterInfo4;
- typedef [public] struct {
+ typedef struct {
[relative] nstring *printername;
[relative] nstring *portname;
- uint32 attributes;
+ spoolss_PrinterAttributes attributes;
uint32 device_not_selected_timeout;
uint32 transmission_retry_timeout;
} spoolss_PrinterInfo5;
typedef struct {
- uint32 unknown;
+ spoolss_PrinterStatus status;
} spoolss_PrinterInfo6;
+ typedef bitmap {
+ DSPRINT_PUBLISH = 0x00000001,
+ DSPRINT_UPDATE = 0x00000002,
+ DSPRINT_UNPUBLISH = 0x00000004,
+ DSPRINT_REPUBLISH = 0x00000008,
+ DSPRINT_PENDING = 0x80000000
+ } spoolss_DsPrintAction;
+
typedef struct {
[relative] nstring *guid; /* text form of printer guid */
- uint32 action;
+ spoolss_DsPrintAction action;
} spoolss_PrinterInfo7;
+ typedef struct {
+ [relative] spoolss_DeviceMode *devmode;
+ } spoolss_DeviceModeInfo;
+
typedef [nodiscriminant,public] union {
[case(0)] spoolss_PrinterInfo0 info0;
[case(1)] spoolss_PrinterInfo1 info1;
@@ -160,21 +241,14 @@
[case(5)] spoolss_PrinterInfo5 info5;
[case(6)] spoolss_PrinterInfo6 info6;
[case(7)] spoolss_PrinterInfo7 info7;
+ [case(8)] spoolss_DeviceModeInfo info8;
+ [case(9)] spoolss_DeviceModeInfo info9;
} spoolss_PrinterInfo;
- const int PRINTER_ENUM_DEFAULT = 0x00000001;
- const int PRINTER_ENUM_LOCAL = 0x00000002;
- const int PRINTER_ENUM_CONNECTIONS = 0x00000004;
- const int PRINTER_ENUM_FAVORITE = 0x00000004;
- const int PRINTER_ENUM_NAME = 0x00000008;
- const int PRINTER_ENUM_REMOTE = 0x00000010;
- const int PRINTER_ENUM_SHARED = 0x00000020;
- const int PRINTER_ENUM_NETWORK = 0x00000040;
-
/******************/
/* Function: 0x00 */
[noprint,nopull,nopush] WERROR spoolss_EnumPrinters(
- [in] uint32 flags,
+ [in] spoolss_EnumPrinterFlags flags,
[in] unistr *server,
[in] uint32 level,
[in] DATA_BLOB *buffer,
@@ -293,8 +367,15 @@
[relative] nstring *driver_name;
} spoolss_DriverInfo1;
+ typedef [v1_enum] enum {
+ SPOOLSS_DRIVER_VERSION_9X = 0,
+ SPOOLSS_DRIVER_VERSION_NT35 = 1,
+ SPOOLSS_DRIVER_VERSION_NT4 = 2,
+ SPOOLSS_DRIVER_VERSION_200X = 3
+ } spoolss_DriverOSVersion;
+
typedef struct {
- uint32 version;
+ spoolss_DriverOSVersion version;
[relative] nstring *driver_name;
[relative] nstring *architecture;
[relative] nstring *driver_path;
@@ -303,7 +384,7 @@
} spoolss_DriverInfo2;
typedef struct {
- uint32 version;
+ spoolss_DriverOSVersion version;
[relative] nstring *driver_name;
[relative] nstring *architecture;
[relative] nstring *driver_path;
@@ -315,10 +396,59 @@
[relative] nstring *default_datatype;
} spoolss_DriverInfo3;
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [relative] nstring *driver_name;
+ [relative] nstring *architecture;
+ [relative] nstring *driver_path;
+ [relative] nstring *data_file;
+ [relative] nstring *config_file;
+ [relative] nstring *help_file;
+ [relative] nstring *dependent_files; /* array */
+ [relative] nstring *monitor_name;
+ [relative] nstring *default_datatype;
+ [relative] nstring *previous_names; /* array */
+ } spoolss_DriverInfo4;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [relative] nstring *driver_name;
+ [relative] nstring *architecture;
+ [relative] nstring *driver_path;
+ [relative] nstring *data_file;
+ [relative] nstring *config_file;
+ uint32 driver_attributes;
+ uint32 config_version;
+ uint32 driver_version;
+ } spoolss_DriverInfo5;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [relative] nstring *driver_name;
+ [relative] nstring *architecture;
+ [relative] nstring *driver_path;
+ [relative] nstring *data_file;
+ [relative] nstring *config_file;
+ [relative] nstring *help_file;
+ [relative] nstring *dependent_files; /* array */
+ [relative] nstring *monitor_name;
+ [relative] nstring *default_datatype;
+ [relative] nstring *previous_names; /* array */
+ NTTIME driver_data;
+ hyper driver_version;
+ [relative] nstring *manufacturer_name;
+ [relative] nstring *manufacturer_url;
+ [relative] nstring *hardware_id;
+ [relative] nstring *provider;
+ } spoolss_DriverInfo6;
+
typedef [nodiscriminant,public] union {
[case(1)] spoolss_DriverInfo1 info1;
[case(2)] spoolss_DriverInfo2 info2;
[case(3)] spoolss_DriverInfo3 info3;
+ [case(4)] spoolss_DriverInfo4 info4;
+ [case(5)] spoolss_DriverInfo5 info5;
+ [case(6)] spoolss_DriverInfo6 info6;
} spoolss_DriverInfo;
/******************/