X-Git-Url: http://git.samba.org/?p=amitay%2Fsamba.git;a=blobdiff_plain;f=librpc%2Fgen_ndr%2Fspoolss.h;h=c960d5439bc25338619e4cd49460748af7794f38;hp=5934cfa03309afc60fe4de8c0afa101802dc6ecb;hb=838b950138255beb7135a32d4429a74fec2bfe42;hpb=f94b8ef9c05057fd51d859721128007480ccc9f4 diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h index 5934cfa0330..c960d5439bc 100644 --- a/librpc/gen_ndr/spoolss.h +++ b/librpc/gen_ndr/spoolss.h @@ -2,6 +2,8 @@ #include +#include "libcli/util/ntstatus.h" + #include "librpc/gen_ndr/misc.h" #include "librpc/gen_ndr/security.h" #include "librpc/gen_ndr/winreg.h" @@ -10,13 +12,14 @@ #define PRINTER_ENUM_ICONMASK ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) ) #define SPOOLSS_ARCHITECTURE_NT_X86 ( "Windows NT x86" ) -#define PRINTER_CHANGE_PRINTER ( (PRINTER_CHANGE_ADD_PRINTER|PRINTER_CHANGE_SET_PRINTER|PRINTER_CHANGE_DELETE_PRINTER|PRINTER_CHANGE_FAILED_CONNECTION_PRINTER) ) -#define PRINTER_CHANGE_JOB ( (PRINTER_CHANGE_ADD_JOB|PRINTER_CHANGE_SET_JOB|PRINTER_CHANGE_DELETE_JOB|PRINTER_CHANGE_WRITE_JOB) ) +#define SPOOLSS_DEFAULT_SERVER_PATH ( "C:\\WINDOWS\\system32\\spool" ) +#define PRINTER_CHANGE_PRINTER ( 0x000000FF ) +#define PRINTER_CHANGE_JOB ( 0x0000FF00 ) #define PRINTER_CHANGE_FORM ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) ) #define PRINTER_CHANGE_PORT ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) ) -#define PRINTER_CHANGE_PRINT_PROCESSOR ( (PRINTER_CHANGE_ADD_PRINT_PROCESSOR|PRINTER_CHANGE_DELETE_PRINT_PROCESSOR) ) +#define PRINTER_CHANGE_PRINT_PROCESSOR ( 0x07000000 ) #define PRINTER_CHANGE_PRINTER_DRIVER ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) ) -#define PRINTER_CHANGE_ALL ( (PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) ) +#define PRINTER_CHANGE_ALL ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) ) #define SERVER_ALL_ACCESS ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE ) #define SERVER_READ ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE ) #define SERVER_WRITE ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE ) @@ -41,8 +44,81 @@ struct spoolss_Time { uint16_t minute; uint16_t second; uint16_t millisecond; +}/* [gensize] */; + +struct spoolss_TimeCtr { + uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->iconv_convenience,ndr->flags))] */ + struct spoolss_Time *time;/* [unique] */ }; +enum spoolss_ProcessorArchitecture +#ifndef USE_UINT_ENUMS + { + PROCESSOR_ARCHITECTURE_INTEL=0x0000, + PROCESSOR_ARCHITECTURE_IA64=0x0006, + PROCESSOR_ARCHITECTURE_AMD64=0x0009 +} +#else + { __donnot_use_enum_spoolss_ProcessorArchitecture=0x7FFFFFFF} +#define PROCESSOR_ARCHITECTURE_INTEL ( 0x0000 ) +#define PROCESSOR_ARCHITECTURE_IA64 ( 0x0006 ) +#define PROCESSOR_ARCHITECTURE_AMD64 ( 0x0009 ) +#endif +; + +enum spoolss_ProcessorType +#ifndef USE_UINT_ENUMS + { + PROCESSOR_INTEL_386=0x00000182, + PROCESSOR_INTEL_486=0x000001E6, + PROCESSOR_INTEL_PENTIUM=0x0000024A, + PROCESSOR_INTEL_IA64=0x00000898, + PROCESSOR_AMD_X8664=0x000022A0 +} +#else + { __donnot_use_enum_spoolss_ProcessorType=0x7FFFFFFF} +#define PROCESSOR_INTEL_386 ( 0x00000182 ) +#define PROCESSOR_INTEL_486 ( 0x000001E6 ) +#define PROCESSOR_INTEL_PENTIUM ( 0x0000024A ) +#define PROCESSOR_INTEL_IA64 ( 0x00000898 ) +#define PROCESSOR_AMD_X8664 ( 0x000022A0 ) +#endif +; + +enum spoolss_MajorVersion +#ifndef USE_UINT_ENUMS + { + SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=0x00000004, + SPOOLSS_MAJOR_VERSION_2000_2003_XP=0x00000005, + SPOOLSS_MAJOR_VERSION_2008_VISTA=0x00000006 +} +#else + { __donnot_use_enum_spoolss_MajorVersion=0x7FFFFFFF} +#define SPOOLSS_MAJOR_VERSION_NT4_95_98_ME ( 0x00000004 ) +#define SPOOLSS_MAJOR_VERSION_2000_2003_XP ( 0x00000005 ) +#define SPOOLSS_MAJOR_VERSION_2008_VISTA ( 0x00000006 ) +#endif +; + +enum spoolss_MinorVersion +#ifndef USE_UINT_ENUMS + { + SPOOLSS_MINOR_VERSION_0=0x00000000, + SPOOLSS_MINOR_VERSION_XP=0x00000001, + SPOOLSS_MINOR_VERSION_2003_XP64=0x00000002, + SPOOLSS_MINOR_VERSION_98=0x0000000a, + SPOOLSS_MINOR_VERSION_ME=0x0000005a +} +#else + { __donnot_use_enum_spoolss_MinorVersion=0x7FFFFFFF} +#define SPOOLSS_MINOR_VERSION_0 ( 0x00000000 ) +#define SPOOLSS_MINOR_VERSION_XP ( 0x00000001 ) +#define SPOOLSS_MINOR_VERSION_2003_XP64 ( 0x00000002 ) +#define SPOOLSS_MINOR_VERSION_98 ( 0x0000000a ) +#define SPOOLSS_MINOR_VERSION_ME ( 0x0000005a ) +#endif +; + struct spoolss_PrinterInfo0 { const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ @@ -53,27 +129,57 @@ struct spoolss_PrinterInfo0 { uint32_t global_counter; uint32_t total_pages; uint32_t version; - uint32_t unknown10; - uint32_t unknown11; - uint32_t unknown12; + uint32_t free_build; + uint32_t spooling; + uint32_t max_spooling; uint32_t session_counter; - uint32_t unknown14; - uint32_t printer_errors; - uint32_t unknown16; - uint32_t unknown17; - uint32_t unknown18; - uint32_t unknown19; + uint32_t num_error_out_of_paper; + uint32_t num_error_not_ready; + uint32_t job_error; + uint32_t number_of_processors; + enum spoolss_ProcessorType processor_type; + uint32_t high_part_total_bytes; uint32_t change_id; - uint32_t unknown21; + WERROR last_error; uint32_t status; - uint32_t unknown23; + uint32_t enumerate_network_printers; uint32_t c_setprinter; - uint16_t unknown25; - uint16_t unknown26; - uint32_t unknown27; - uint32_t unknown28; - uint32_t unknown29; -}; + enum spoolss_ProcessorArchitecture processor_architecture; + uint16_t processor_level; + uint32_t ref_ic; + uint32_t reserved2; + uint32_t reserved3; +}; + +/* bitmap spoolss_DeviceModeFields */ +#define DEVMODE_ORIENTATION ( 0x00000001 ) +#define DEVMODE_PAPERSIZE ( 0x00000002 ) +#define DEVMODE_PAPERLENGTH ( 0x00000004 ) +#define DEVMODE_PAPERWIDTH ( 0x00000008 ) +#define DEVMODE_SCALE ( 0x00000010 ) +#define DEVMODE_POSITION ( 0x00000020 ) +#define DEVMODE_NUP ( 0x00000040 ) +#define DEVMODE_COPIES ( 0x00000100 ) +#define DEVMODE_DEFAULTSOURCE ( 0x00000200 ) +#define DEVMODE_PRINTQUALITY ( 0x00000400 ) +#define DEVMODE_COLOR ( 0x00000800 ) +#define DEVMODE_DUPLEX ( 0x00001000 ) +#define DEVMODE_YRESOLUTION ( 0x00002000 ) +#define DEVMODE_TTOPTION ( 0x00004000 ) +#define DEVMODE_COLLATE ( 0x00008000 ) +#define DEVMODE_FORMNAME ( 0x00010000 ) +#define DEVMODE_LOGPIXELS ( 0x00020000 ) +#define DEVMODE_BITSPERPEL ( 0x00040000 ) +#define DEVMODE_PELSWIDTH ( 0x00080000 ) +#define DEVMODE_PELSHEIGHT ( 0x00100000 ) +#define DEVMODE_DISPLAYFLAGS ( 0x00200000 ) +#define DEVMODE_DISPLAYFREQUENCY ( 0x00400000 ) +#define DEVMODE_ICMMETHOD ( 0x00800000 ) +#define DEVMODE_ICMINTENT ( 0x01000000 ) +#define DEVMODE_MEDIATYPE ( 0x02000000 ) +#define DEVMODE_DITHERTYPE ( 0x04000000 ) +#define DEVMODE_PANNINGWIDTH ( 0x08000000 ) +#define DEVMODE_PANNINGHEIGHT ( 0x10000000 ) struct spoolss_DeviceMode { const char *devicename;/* [charset(UTF16)] */ @@ -333,21 +439,121 @@ enum spoolss_PrinterControl #endif ; +struct spoolss_SetPrinterInfo0 { + const char *servername;/* [unique,charset(UTF16)] */ + const char *printername;/* [unique,charset(UTF16)] */ + uint32_t cjobs; + uint32_t total_jobs; + uint32_t total_bytes; + struct spoolss_Time time; + uint32_t global_counter; + uint32_t total_pages; + uint32_t version; + uint32_t free_build; + uint32_t spooling; + uint32_t max_spooling; + uint32_t session_counter; + uint32_t num_error_out_of_paper; + uint32_t num_error_not_ready; + uint32_t job_error; + uint32_t number_of_processors; + enum spoolss_ProcessorType processor_type; + uint32_t high_part_total_bytes; + uint32_t change_id; + WERROR last_error; + uint32_t status; + uint32_t enumerate_network_printers; + uint32_t c_setprinter; + enum spoolss_ProcessorArchitecture processor_architecture; + uint16_t processor_level; + uint32_t ref_ic; + uint32_t reserved2; + uint32_t reserved3; +}; + +struct spoolss_SetPrinterInfo1 { + uint32_t flags; + const char *name;/* [unique,charset(UTF16)] */ + const char *description;/* [unique,charset(UTF16)] */ + const char *comment;/* [unique,charset(UTF16)] */ +}; + +struct spoolss_SetPrinterInfo2 { + const char *servername;/* [unique,charset(UTF16)] */ + const char *printername;/* [unique,charset(UTF16)] */ + const char *sharename;/* [unique,charset(UTF16)] */ + const char *portname;/* [unique,charset(UTF16)] */ + const char *drivername;/* [unique,charset(UTF16)] */ + const char *comment;/* [unique,charset(UTF16)] */ + const char *location;/* [unique,charset(UTF16)] */ + struct spoolss_DeviceMode *devmode;/* [unique,subcontext(0)] */ + const char *sepfile;/* [unique,charset(UTF16)] */ + const char *printprocessor;/* [unique,charset(UTF16)] */ + const char *datatype;/* [unique,charset(UTF16)] */ + const char *parameters;/* [unique,charset(UTF16)] */ + struct security_descriptor *secdesc;/* [unique,subcontext(0)] */ + uint32_t attributes; + uint32_t priority; + uint32_t defaultpriority; + uint32_t starttime; + uint32_t untiltime; + uint32_t status; + uint32_t cjobs; + uint32_t averageppm; +}; + +struct spoolss_SetPrinterInfo3 { + uint32_t sec_desc_ptr; +}; + +struct spoolss_SetPrinterInfo4 { + const char *printername;/* [unique,charset(UTF16)] */ + const char *servername;/* [unique,charset(UTF16)] */ + uint32_t attributes; +}; + +struct spoolss_SetPrinterInfo5 { + const char *printername;/* [unique,charset(UTF16)] */ + const char *portname;/* [unique,charset(UTF16)] */ + uint32_t attributes; + uint32_t device_not_selected_timeout; + uint32_t transmission_retry_timeout; +}; + +struct spoolss_SetPrinterInfo6 { + uint32_t status; +}; + +struct spoolss_SetPrinterInfo7 { + const char *guid;/* [unique,charset(UTF16)] */ + uint32_t action; +}; + union spoolss_SetPrinterInfo { - struct spoolss_PrinterInfo0 *info0;/* [unique,case(0)] */ - struct spoolss_PrinterInfo1 *info1;/* [unique,case] */ - struct spoolss_PrinterInfo2 *info2;/* [unique,case(2)] */ - struct spoolss_PrinterInfo3 *info3;/* [unique,case(3)] */ - struct spoolss_PrinterInfo4 *info4;/* [unique,case(4)] */ - struct spoolss_PrinterInfo5 *info5;/* [unique,case(5)] */ - struct spoolss_PrinterInfo6 *info6;/* [unique,case(6)] */ - struct spoolss_PrinterInfo7 *info7;/* [unique,case(7)] */ + struct spoolss_SetPrinterInfo0 *info0;/* [unique,case(0)] */ + struct spoolss_SetPrinterInfo1 *info1;/* [unique,case] */ + struct spoolss_SetPrinterInfo2 *info2;/* [unique,case(2)] */ + struct spoolss_SetPrinterInfo3 *info3;/* [unique,case(3)] */ + struct spoolss_SetPrinterInfo4 *info4;/* [unique,case(4)] */ + struct spoolss_SetPrinterInfo5 *info5;/* [unique,case(5)] */ + struct spoolss_SetPrinterInfo6 *info6;/* [unique,case(6)] */ + struct spoolss_SetPrinterInfo7 *info7;/* [unique,case(7)] */ struct spoolss_DeviceModeInfo *info8;/* [unique,case(8)] */ struct spoolss_DeviceModeInfo *info9;/* [unique,case(9)] */ }/* [switch_type(uint32)] */; -struct spoolss_DriverInfo1 { - const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +struct spoolss_SetPrinterInfoCtr { + uint32_t level; + union spoolss_SetPrinterInfo info;/* [switch_is(level)] */ +}; + +struct spoolss_StringArray { + uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)] */ + const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +}/* [public] */; + +struct spoolss_AddDriverInfo1 { + const char *driver_name;/* [unique,charset(UTF16)] */ }; enum spoolss_DriverOSVersion @@ -367,6 +573,129 @@ enum spoolss_DriverOSVersion #endif ; +struct spoolss_AddDriverInfo2 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ +}; + +struct spoolss_AddDriverInfo3 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ + const char *help_file;/* [unique,charset(UTF16)] */ + const char *monitor_name;/* [unique,charset(UTF16)] */ + const char *default_datatype;/* [unique,charset(UTF16)] */ + uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *dependent_files;/* [unique] */ +}; + +struct spoolss_AddDriverInfo4 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ + const char *help_file;/* [unique,charset(UTF16)] */ + const char *monitor_name;/* [unique,charset(UTF16)] */ + const char *default_datatype;/* [unique,charset(UTF16)] */ + uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *dependent_files;/* [unique] */ + uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *previous_names;/* [unique] */ +}; + +struct spoolss_AddDriverInfo5 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ + uint32_t driver_attributes; + uint32_t config_version; + uint32_t driver_version; +}; + +struct spoolss_AddDriverInfo6 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ + const char *help_file;/* [unique,charset(UTF16)] */ + const char *monitor_name;/* [unique,charset(UTF16)] */ + const char *default_datatype;/* [unique,charset(UTF16)] */ + uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *dependent_files;/* [unique] */ + uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *previous_names;/* [unique] */ + NTTIME driver_date; + uint64_t driver_version; + const char *manufacturer_name;/* [unique,charset(UTF16)] */ + const char *manufacturer_url;/* [unique,charset(UTF16)] */ + const char *hardware_id;/* [unique,charset(UTF16)] */ + const char *provider;/* [unique,charset(UTF16)] */ +}; + +struct spoolss_AddDriverInfo8 { + enum spoolss_DriverOSVersion version; + const char *driver_name;/* [unique,charset(UTF16)] */ + const char *architecture;/* [unique,charset(UTF16)] */ + const char *driver_path;/* [unique,charset(UTF16)] */ + const char *data_file;/* [unique,charset(UTF16)] */ + const char *config_file;/* [unique,charset(UTF16)] */ + const char *help_file;/* [unique,charset(UTF16)] */ + const char *monitor_name;/* [unique,charset(UTF16)] */ + const char *default_datatype;/* [unique,charset(UTF16)] */ + uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *dependent_files;/* [unique] */ + uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *previous_names;/* [unique] */ + NTTIME driver_date; + uint64_t driver_version; + const char *manufacturer_name;/* [unique,charset(UTF16)] */ + const char *manufacturer_url;/* [unique,charset(UTF16)] */ + const char *hardware_id;/* [unique,charset(UTF16)] */ + const char *provider;/* [unique,charset(UTF16)] */ + const char *print_processor;/* [unique,charset(UTF16)] */ + const char *vendor_setup;/* [unique,charset(UTF16)] */ + uint32_t _ndr_size_color_profiles;/* [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *color_profiles;/* [unique] */ + const char *inf_path;/* [unique,charset(UTF16)] */ + uint32_t printer_driver_attributes; + uint32_t _ndr_size_core_driver_dependencies;/* [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->iconv_convenience,ndr->flags)-4)/2))] */ + struct spoolss_StringArray *core_driver_dependencies;/* [unique] */ + NTTIME min_inbox_driver_ver_date; + uint64_t min_inbox_driver_ver_version; +}; + +union spoolss_AddDriverInfo { + struct spoolss_AddDriverInfo1 *info1;/* [unique,case] */ + struct spoolss_AddDriverInfo2 *info2;/* [unique,case(2)] */ + struct spoolss_AddDriverInfo3 *info3;/* [unique,case(3)] */ + struct spoolss_AddDriverInfo4 *info4;/* [unique,case(4)] */ + struct spoolss_AddDriverInfo6 *info6;/* [unique,case(6)] */ + struct spoolss_AddDriverInfo8 *info8;/* [unique,case(8)] */ +}/* [switch_type(uint32)] */; + +struct spoolss_AddDriverInfoCtr { + uint32_t level; + union spoolss_AddDriverInfo info;/* [switch_is(level)] */ +}; + +struct spoolss_DriverInfo1 { + const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +}/* [gensize,public] */; + struct spoolss_DriverInfo2 { enum spoolss_DriverOSVersion version; const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ @@ -374,7 +703,7 @@ struct spoolss_DriverInfo2 { const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ -}; +}/* [gensize,public] */; struct spoolss_DriverInfo3 { enum spoolss_DriverOSVersion version; @@ -387,7 +716,7 @@ struct spoolss_DriverInfo3 { const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ -}; +}/* [gensize,public] */; struct spoolss_DriverInfo4 { enum spoolss_DriverOSVersion version; @@ -401,7 +730,7 @@ struct spoolss_DriverInfo4 { const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ -}; +}/* [gensize,public] */; struct spoolss_DriverInfo5 { enum spoolss_DriverOSVersion version; @@ -413,7 +742,7 @@ struct spoolss_DriverInfo5 { uint32_t driver_attributes; uint32_t config_version; uint32_t driver_version; -}; +}/* [gensize,public] */; struct spoolss_DriverInfo6 { enum spoolss_DriverOSVersion version; @@ -427,13 +756,83 @@ struct spoolss_DriverInfo6 { const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ - NTTIME driver_data; + NTTIME driver_date; uint64_t driver_version; const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ -}; +}/* [gensize,public] */; + +struct spoolss_DriverInfo8 { + enum spoolss_DriverOSVersion version; + const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + NTTIME driver_date; + uint64_t driver_version; + const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + uint32_t printer_driver_attributes; + const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + NTTIME min_inbox_driver_ver_date; + uint64_t min_inbox_driver_ver_version; +}/* [gensize,public] */; + +enum spoolss_DriverFileType +#ifndef USE_UINT_ENUMS + { + SPOOLSS_DRIVER_FILE_TYPE_RENDERING=0x00000000, + SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=0x00000001, + SPOOLSS_DRIVER_FILE_TYPE_DATA=0x00000002, + SPOOLSS_DRIVER_FILE_TYPE_HELP=0x00000003, + SPOOLSS_DRIVER_FILE_TYPE_OTHER=0x00000004 +} +#else + { __donnot_use_enum_spoolss_DriverFileType=0x7FFFFFFF} +#define SPOOLSS_DRIVER_FILE_TYPE_RENDERING ( 0x00000000 ) +#define SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION ( 0x00000001 ) +#define SPOOLSS_DRIVER_FILE_TYPE_DATA ( 0x00000002 ) +#define SPOOLSS_DRIVER_FILE_TYPE_HELP ( 0x00000003 ) +#define SPOOLSS_DRIVER_FILE_TYPE_OTHER ( 0x00000004 ) +#endif +; + +struct spoolss_DriverFileInfo { + const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + enum spoolss_DriverFileType file_type; + uint32_t file_version; +}/* [public] */; + +struct spoolss_DriverInfo101 { + enum spoolss_DriverOSVersion version; + const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + struct spoolss_DriverFileInfo *file_info;/* [relative,size_is(file_count)] */ + uint32_t file_count; + const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + NTTIME driver_date; + uint64_t driver_version; + const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ + const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +}/* [gensize,nopush,public,nopull] */; union spoolss_DriverInfo { struct spoolss_DriverInfo1 info1;/* [case] */ @@ -442,11 +841,13 @@ union spoolss_DriverInfo { struct spoolss_DriverInfo4 info4;/* [case(4)] */ struct spoolss_DriverInfo5 info5;/* [case(5)] */ struct spoolss_DriverInfo6 info6;/* [case(6)] */ + struct spoolss_DriverInfo8 info8;/* [case(8)] */ + struct spoolss_DriverInfo101 info101;/* [case(101)] */ }/* [relative_base,nodiscriminant,public] */; struct spoolss_DriverDirectoryInfo1 { const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ -}; +}/* [gensize,public] */; union spoolss_DriverDirectoryInfo { struct spoolss_DriverDirectoryInfo1 info1;/* [case] */ @@ -460,6 +861,14 @@ union spoolss_PrintProcessorInfo { struct spoolss_PrintProcessorInfo1 info1;/* [case] */ }/* [relative_base,nodiscriminant,public] */; +struct spoolss_PrintProcessorDirectoryInfo1 { + const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +}/* [gensize,public] */; + +union spoolss_PrintProcessorDirectoryInfo { + struct spoolss_PrintProcessorDirectoryInfo1 info1;/* [case] */ +}/* [gensize,relative_base,nodiscriminant,public] */; + struct spoolss_DocumentInfo1 { const char *document_name;/* [unique,charset(UTF16)] */ const char *output_file;/* [unique,charset(UTF16)] */ @@ -621,6 +1030,7 @@ union spoolss_MonitorInfo { #define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 ) #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 ) #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 ) +#define PRINTER_CHANGE_SERVER ( 0x08000000 ) #define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 ) #define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 ) #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 ) @@ -700,7 +1110,7 @@ enum spoolss_NotifyType #endif ; -struct spoolss_NotifyOptionsArray { +struct spoolss_NotifyOptionType { enum spoolss_NotifyType type; uint16_t u1; uint32_t u2; @@ -709,66 +1119,108 @@ struct spoolss_NotifyOptionsArray { enum spoolss_Field *fields;/* [unique,size_is(count)] */ }; -struct spoolss_NotifyOptionsContainer { - uint32_t version; +/* bitmap spoolssNotifyOptionFlags */ +#define PRINTER_NOTIFY_OPTIONS_REFRESH ( 0x00000001 ) + +struct spoolss_NotifyOption { + uint32_t version;/* [value(2)] */ uint32_t flags; uint32_t count; - struct spoolss_NotifyOptionsArray *options;/* [unique,size_is(count)] */ + struct spoolss_NotifyOptionType *types;/* [unique,size_is(count)] */ }; -struct spoolss_NotifyUTF16String { +struct spoolss_NotifyString { uint32_t size; const char *string;/* [unique,charset(UTF16),size_is(size/2)] */ }; -struct spoolss_NotifyDOSString { - uint32_t size; - const char *string;/* [unique,charset(DOS),size_is(size)] */ -}; - -struct spoolss_NotifyBlobData { - uint16_t data[8]; -}; - -struct spoolss_NotifyBlob { - uint32_t len; - struct spoolss_NotifyBlobData *data;/* [unique] */ -}; +enum spoolss_NotifyTable +#ifndef USE_UINT_ENUMS + { + NOTIFY_TABLE_DWORD=0x0001, + NOTIFY_TABLE_STRING=0x0002, + NOTIFY_TABLE_DEVMODE=0x0003, + NOTIFY_TABLE_TIME=0x0004, + NOTIFY_TABLE_SECURITYDESCRIPTOR=0x0005 +} +#else + { __donnot_use_enum_spoolss_NotifyTable=0x7FFFFFFF} +#define NOTIFY_TABLE_DWORD ( 0x0001 ) +#define NOTIFY_TABLE_STRING ( 0x0002 ) +#define NOTIFY_TABLE_DEVMODE ( 0x0003 ) +#define NOTIFY_TABLE_TIME ( 0x0004 ) +#define NOTIFY_TABLE_SECURITYDESCRIPTOR ( 0x0005 ) +#endif +; union spoolss_NotifyData { - int64_t integer;/* [case] */ - struct spoolss_NotifyUTF16String utf16_string;/* [case(2)] */ - struct spoolss_NotifyDOSString ascii_string;/* [case(3)] */ - struct spoolss_NotifyBlob blob;/* [case(4)] */ + uint32_t integer[2];/* [case] */ + struct spoolss_NotifyString string;/* [case(2)] */ + struct spoolss_DevmodeContainer devmode;/* [case(3)] */ + struct spoolss_TimeCtr time;/* [case(4)] */ + struct sec_desc_buf sd;/* [case(5)] */ }/* [switch_type(uint32)] */; struct spoolss_Notify { enum spoolss_NotifyType type; enum spoolss_Field field; - uint32_t variable_type; + enum spoolss_NotifyTable variable_type; uint32_t job_id; union spoolss_NotifyData data;/* [switch_is(variable_type)] */ }; struct spoolss_NotifyInfo { - uint32_t version; + uint32_t version;/* [value(2)] */ uint32_t flags; uint32_t count; struct spoolss_Notify *notifies;/* [size_is(count)] */ }; +union spoolss_ReplyPrinterInfo { + struct spoolss_NotifyInfo *info0;/* [unique,case(0)] */ +}/* [switch_type(uint32)] */; + +/* bitmap spoolss_PrinterNotifyFlags */ +#define PRINTER_NOTIFY_INFO_DISCARDED ( 0x00000001 ) +#define PRINTER_NOTIFY_INFO_DISCARDNOTED ( 0x00010000 ) +#define PRINTER_NOTIFY_INFO_COLOR_MISMATCH ( 0x00080000 ) + struct spoolss_UserLevel1 { uint32_t size; const char *client;/* [unique,charset(UTF16)] */ const char *user;/* [unique,charset(UTF16)] */ uint32_t build; - uint32_t major; - uint32_t minor; - uint32_t processor; + enum spoolss_MajorVersion major; + enum spoolss_MinorVersion minor; + enum spoolss_ProcessorArchitecture processor; +}; + +struct spoolss_UserLevel2 { + uint32_t not_used; +}; + +struct spoolss_UserLevel3 { + uint32_t size; + uint32_t flags; + uint32_t size2; + const char *client;/* [unique,charset(UTF16)] */ + const char *user;/* [unique,charset(UTF16)] */ + uint32_t build; + enum spoolss_MajorVersion major; + enum spoolss_MinorVersion minor; + enum spoolss_ProcessorArchitecture processor; + uint64_t reserved; }; union spoolss_UserLevel { struct spoolss_UserLevel1 *level1;/* [unique,case] */ + struct spoolss_UserLevel2 *level2;/* [unique,case(2)] */ + struct spoolss_UserLevel3 *level3;/* [unique,case(3)] */ +}/* [switch_type(uint32)] */; + +struct spoolss_UserLevelCtr { + uint32_t level; + union spoolss_UserLevel user_info;/* [switch_is(level)] */ }; /* bitmap spoolss_AccessRights */ @@ -783,6 +1235,68 @@ union spoolss_UserLevel { #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 ) #define DPD_DELETE_ALL_FILES ( 0x00000004 ) +enum spoolss_PortProtocol +#ifndef USE_UINT_ENUMS + { + PROTOCOL_RAWTCP_TYPE=1, + PROTOCOL_LPR_TYPE=2 +} +#else + { __donnot_use_enum_spoolss_PortProtocol=0x7FFFFFFF} +#define PROTOCOL_RAWTCP_TYPE ( 1 ) +#define PROTOCOL_LPR_TYPE ( 2 ) +#endif +; + +struct spoolss_PortData1 { + const char *portname;/* [charset(UTF16)] */ + uint32_t version;/* [value(0x00000001)] */ + enum spoolss_PortProtocol protocol; + uint32_t size;/* [value(sizeof(r))] */ + uint32_t reserved; + const char *hostaddress;/* [charset(UTF16)] */ + const char *snmpcommunity;/* [charset(UTF16)] */ + uint32_t dblspool; + const char *queue;/* [charset(UTF16)] */ + const char *ip_address;/* [charset(UTF16)] */ + const char *hardware_address;/* [charset(UTF16)] */ + const char *device_type;/* [charset(UTF16)] */ + uint32_t port_number; + uint32_t snmp_enabled; + uint32_t snmp_dev_index; +}/* [public] */; + +struct spoolss_PortData2 { + const char *portname;/* [charset(UTF16)] */ + uint32_t version;/* [value(0x00000002)] */ + enum spoolss_PortProtocol protocol; + uint32_t size;/* [value(sizeof(r))] */ + uint32_t reserved; + const char *hostaddress;/* [charset(UTF16)] */ + const char *snmpcommunity;/* [charset(UTF16)] */ + uint32_t dblspool; + const char *queue;/* [charset(UTF16)] */ + const char *device_type;/* [charset(UTF16)] */ + uint32_t port_number; + uint32_t snmp_enabled; + uint32_t snmp_dev_index; + uint32_t port_monitor_mib_index; +}/* [public] */; + +struct spoolss_MonitorUi { + const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +}/* [public] */; + +/* bitmap spoolss_AddPrinterDriverExFlags */ +#define APD_STRICT_UPGRADE ( 0x00000001 ) +#define APD_STRICT_DOWNGRADE ( 0x00000002 ) +#define APD_COPY_ALL_FILES ( 0x00000004 ) +#define APD_COPY_NEW_FILES ( 0x00000008 ) +#define APD_COPY_FROM_DIRECTORY ( 0x00000010 ) +#define APD_DONT_COPY_FILES_TO_CLUSTER ( 0x00001000 ) +#define APD_COPY_TO_ALL_SPOOLERS ( 0x00002000 ) +#define APD_RETURN_BLOCKING_STATUS_CODE ( 0x00010000 ) + struct _spoolss_EnumPrinters { struct { @@ -796,7 +1310,7 @@ struct _spoolss_EnumPrinters { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -826,9 +1340,9 @@ struct spoolss_EnumPrinters { } in; struct { - union spoolss_PrinterInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_PrinterInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -897,7 +1411,7 @@ struct _spoolss_EnumJobs { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -928,9 +1442,9 @@ struct spoolss_EnumJobs { } in; struct { - union spoolss_JobInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_JobInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -960,10 +1474,9 @@ struct spoolss_DeletePrinter { struct spoolss_SetPrinter { struct { struct policy_handle *handle;/* [ref] */ - uint32_t level; - union spoolss_SetPrinterInfo info;/* [switch_is(level)] */ - struct spoolss_DevmodeContainer devmode_ctr; - struct sec_desc_buf secdesc_ctr; + struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */ + struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */ + struct sec_desc_buf *secdesc_ctr;/* [ref] */ enum spoolss_PrinterControl command; } in; @@ -992,6 +1505,11 @@ struct spoolss_GetPrinter { struct spoolss_AddPrinterDriver { + struct { + const char *servername;/* [unique,charset(UTF16)] */ + struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */ + } in; + struct { WERROR result; } out; @@ -1011,7 +1529,7 @@ struct _spoolss_EnumPrinterDrivers { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -1041,9 +1559,9 @@ struct spoolss_EnumPrinterDrivers { } in; struct { - union spoolss_DriverInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_DriverInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -1117,7 +1635,7 @@ struct _spoolss_EnumPrintProcessors { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -1147,9 +1665,9 @@ struct spoolss_EnumPrintProcessors { } in; struct { - union spoolss_PrintProcessorInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_PrintProcessorInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -1158,6 +1676,16 @@ struct spoolss_EnumPrintProcessors { struct spoolss_GetPrintProcessorDirectory { struct { + const char *server;/* [unique,charset(UTF16)] */ + const char *environment;/* [unique,charset(UTF16)] */ + uint32_t level; + DATA_BLOB *buffer;/* [unique] */ + uint32_t offered; + } in; + + struct { + union spoolss_PrintProcessorDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */ + uint32_t *needed;/* [ref] */ WERROR result; } out; @@ -1469,7 +1997,7 @@ struct _spoolss_EnumForms { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -1498,9 +2026,9 @@ struct spoolss_EnumForms { } in; struct { - union spoolss_FormInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_FormInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -1518,7 +2046,7 @@ struct _spoolss_EnumPorts { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -1547,9 +2075,9 @@ struct spoolss_EnumPorts { } in; struct { - union spoolss_PortInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_PortInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -1567,7 +2095,7 @@ struct _spoolss_EnumMonitors { struct { DATA_BLOB *info;/* [unique] */ uint32_t *needed;/* [ref] */ - uint32_t count; + uint32_t *count;/* [ref] */ WERROR result; } out; @@ -1596,9 +2124,9 @@ struct spoolss_EnumMonitors { } in; struct { - union spoolss_MonitorInfo *info;/* [unique,switch_is(level),size_is(count)] */ + uint32_t *count;/* [ref] */ + union spoolss_MonitorInfo *info;/* [unique,switch_is(level),size_is(*count)] */ uint32_t *needed;/* [ref] */ - uint32_t count; WERROR result; } out; @@ -1732,6 +2260,12 @@ struct spoolss_EnumPrintProcDataTypes { struct spoolss_ResetPrinter { + struct { + struct policy_handle *handle;/* [ref] */ + const char *data_type;/* [unique,charset(UTF16)] */ + struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */ + } in; + struct { WERROR result; } out; @@ -1751,7 +2285,7 @@ struct spoolss_GetPrinterDriver2 { } in; struct { - DATA_BLOB *info;/* [unique] */ + union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */ uint32_t *needed;/* [ref] */ uint32_t *server_major_version;/* [ref] */ uint32_t *server_minor_version;/* [ref] */ @@ -1802,8 +2336,8 @@ struct spoolss_ReplyOpenPrinter { const char *server_name;/* [charset(UTF16)] */ uint32_t printer_local; enum winreg_Type type; - uint32_t unknown1; - uint32_t unknown2; + uint32_t bufsize;/* [range(0,512)] */ + uint8_t *buffer;/* [unique,size_is(bufsize)] */ } in; struct { @@ -1879,9 +2413,9 @@ struct spoolss_RemoteFindFirstPrinterChangeNotifyEx { struct policy_handle *handle;/* [ref] */ uint32_t flags; uint32_t options; - const char *str;/* [unique,charset(UTF16)] */ + const char *local_machine;/* [unique,charset(UTF16)] */ uint32_t printer_local; - struct spoolss_NotifyOptionsContainer *t1;/* [unique] */ + struct spoolss_NotifyOption *notify_options;/* [unique] */ } in; struct { @@ -1891,19 +2425,28 @@ struct spoolss_RemoteFindFirstPrinterChangeNotifyEx { }; -struct spoolss_RouterRefreshPrinterChangeNotification { +struct spoolss_RouterReplyPrinterEx { + struct { + struct policy_handle *handle;/* [ref] */ + uint32_t color; + uint32_t flags; + uint32_t reply_type; + union spoolss_ReplyPrinterInfo info;/* [switch_is(reply_type)] */ + } in; + struct { + uint32_t *reply_result;/* [ref] */ WERROR result; } out; }; -struct spoolss_RemoteFindNextPrinterChangeNotifyEx { +struct spoolss_RouterRefreshPrinterChangeNotify { struct { struct policy_handle *handle;/* [ref] */ uint32_t change_low; - struct spoolss_NotifyOptionsContainer *container;/* [unique] */ + struct spoolss_NotifyOption *options;/* [unique] */ } in; struct { @@ -1943,15 +2486,14 @@ struct spoolss_OpenPrinterEx { struct spoolss_AddPrinterEx { struct { const char *server;/* [unique,charset(UTF16)] */ - uint32_t level; - union spoolss_PrinterInfo *info;/* [unique,switch_is(level)] */ - struct spoolss_DevmodeContainer devmode_ctr; - struct security_descriptor *secdesc;/* [unique] */ - uint32_t ulevel; - union spoolss_UserLevel userlevel;/* [switch_is(ulevel)] */ + struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */ + struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */ + struct sec_desc_buf *secdesc_ctr;/* [ref] */ + struct spoolss_UserLevelCtr *userlevel_ctr;/* [ref] */ } in; struct { + struct policy_handle *handle;/* [ref] */ WERROR result; } out; @@ -2029,7 +2571,7 @@ struct spoolss_SetPrinterDataEx { const char *key_name;/* [charset(UTF16)] */ const char *value_name;/* [charset(UTF16)] */ uint32_t type; - DATA_BLOB buffer; + uint8_t *buffer;/* [ref,size_is(offered)] */ uint32_t offered; } in; @@ -2187,6 +2729,12 @@ struct spoolss_XcvData { struct spoolss_AddPrinterDriverEx { + struct { + const char *servername;/* [unique,charset(UTF16)] */ + struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */ + uint32_t flags; + } in; + struct { WERROR result; } out;