summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-02-11 10:13:48 +0100
committerGünther Deschner <gd@samba.org>2009-02-11 10:19:42 +0100
commit7b2aae56462a0825167bbbd11a3f46547897819d (patch)
tree959315e55fa20a2bf14b2b05e9d5657568a130c0
parent0b6f21841e0e90cc269a93c3507a31a5431d44f4 (diff)
downloadsamba-7b2aae56462a0825167bbbd11a3f46547897819d.tar.gz
samba-7b2aae56462a0825167bbbd11a3f46547897819d.tar.bz2
samba-7b2aae56462a0825167bbbd11a3f46547897819d.zip
spoolss: fill in spoolss_AddPrinterDriver. This is metze's work from 2005 (!).
Guenther
-rw-r--r--librpc/idl/spoolss.idl102
1 files changed, 98 insertions, 4 deletions
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index 964d3237a8..b4207c4652 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -483,12 +483,15 @@ import "misc.idl", "security.idl", "winreg.idl";
/******************/
/* Function: 0x09 */
- [todo] WERROR spoolss_AddPrinterDriver(
- );
+
+ typedef [public,gensize] struct {
+ [value((ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags)-4)/2)] uint32 _ndr_size;
+ /*[subcontext(0),subcontext_size(_ndr_size*2)]*/ nstring_array string;
+ } spoolss_StringArray;
typedef struct {
- [relative] nstring *driver_name;
- } spoolss_DriverInfo1;
+ [string,charset(UTF16)] uint16 *driver_name;
+ } spoolss_AddDriverInfo1;
typedef [v1_enum] enum {
SPOOLSS_DRIVER_VERSION_9X = 0,
@@ -499,6 +502,97 @@ import "misc.idl", "security.idl", "winreg.idl";
typedef struct {
spoolss_DriverOSVersion version;
+ [string,charset(UTF16)] uint16 *driver_name;
+ [string,charset(UTF16)] uint16 *architecture;
+ [string,charset(UTF16)] uint16 *driver_path;
+ [string,charset(UTF16)] uint16 *data_file;
+ [string,charset(UTF16)] uint16 *config_file;
+ } spoolss_AddDriverInfo2;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [string,charset(UTF16)] uint16 *driver_name;
+ [string,charset(UTF16)] uint16 *architecture;
+ [string,charset(UTF16)] uint16 *driver_path;
+ [string,charset(UTF16)] uint16 *data_file;
+ [string,charset(UTF16)] uint16 *config_file;
+ [string,charset(UTF16)] uint16 *help_file;
+ [string,charset(UTF16)] uint16 *monitor_name;
+ [string,charset(UTF16)] uint16 *default_datatype;
+ [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+ spoolss_StringArray *dependent_files;
+ } spoolss_AddDriverInfo3;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [string,charset(UTF16)] uint16 *driver_name;
+ [string,charset(UTF16)] uint16 *architecture;
+ [string,charset(UTF16)] uint16 *driver_path;
+ [string,charset(UTF16)] uint16 *data_file;
+ [string,charset(UTF16)] uint16 *config_file;
+ [string,charset(UTF16)] uint16 *help_file;
+ [string,charset(UTF16)] uint16 *monitor_name;
+ [string,charset(UTF16)] uint16 *default_datatype;
+ [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+ spoolss_StringArray *dependent_files;
+ [value(((ndr_size_spoolss_StringArray(previous_names, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
+ spoolss_StringArray *previous_names;
+ } spoolss_AddDriverInfo4;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [string,charset(UTF16)] uint16 *driver_name;
+ [string,charset(UTF16)] uint16 *architecture;
+ [string,charset(UTF16)] uint16 *driver_path;
+ [string,charset(UTF16)] uint16 *data_file;
+ [string,charset(UTF16)] uint16 *config_file;
+ uint32 driver_attributes;
+ uint32 config_version;
+ uint32 driver_version;
+ } spoolss_AddDriverInfo5;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
+ [string,charset(UTF16)] uint16 *driver_name;
+ [string,charset(UTF16)] uint16 *architecture;
+ [string,charset(UTF16)] uint16 *driver_path;
+ [string,charset(UTF16)] uint16 *data_file;
+ [string,charset(UTF16)] uint16 *config_file;
+ [string,charset(UTF16)] uint16 *help_file;
+ [string,charset(UTF16)] uint16 *monitor_name;
+ [string,charset(UTF16)] uint16 *default_datatype;
+ [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+ spoolss_StringArray *dependent_files;
+ [value(((ndr_size_spoolss_StringArray(previous_names, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
+ spoolss_StringArray *previous_names;
+ NTTIME driver_data;
+ hyper driver_version;
+ [string,charset(UTF16)] uint16 *manufacturer_name;
+ [string,charset(UTF16)] uint16 *manufacturer_url;
+ [string,charset(UTF16)] uint16 *hardware_id;
+ [string,charset(UTF16)] uint16 *provider;
+ } spoolss_AddDriverInfo6;
+
+ typedef [switch_type(uint32)] union {
+ [case(1)] spoolss_AddDriverInfo1 *info1;
+ [case(2)] spoolss_AddDriverInfo2 *info2;
+ [case(3)] spoolss_AddDriverInfo3 *info3;
+ [case(4)] spoolss_AddDriverInfo4 *info4;
+ [case(6)] spoolss_AddDriverInfo6 *info6;
+ } spoolss_AddDriverInfo;
+
+ WERROR spoolss_AddPrinterDriver(
+ [in] [string,charset(UTF16)] uint16 *servername,
+ [in] uint32 level,
+ [in,switch_is(level)] spoolss_AddDriverInfo info
+ );
+
+ typedef struct {
+ [relative] nstring *driver_name;
+ } spoolss_DriverInfo1;
+
+ typedef struct {
+ spoolss_DriverOSVersion version;
[relative] nstring *driver_name;
[relative] nstring *architecture;
[relative] nstring *driver_path;