#include "librpc/gen_ndr/misc.h"
#include "librpc/gen_ndr/security.h"
#include "librpc/gen_ndr/winreg.h"
+#define spoolss_security_descriptor security_descriptor
#ifndef _HEADER_spoolss
#define _HEADER_spoolss
#define PRINTER_STATUS_OK ( 0x00000000 )
#define JOB_STATUS_QUEUED ( 0x0000 )
+#define MAXDEVICENAME ( 32 )
#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 SPL_ARCH_WIN40 ( "WIN40" )
#define SPL_ARCH_W32X86 ( "W32X86" )
#define SPL_ARCH_W32PPC ( "W32PPC" )
#define SPL_ARCH_IA64 ( "IA64" )
#define SPL_ARCH_X64 ( "x64" )
-#define SPOOLSS_ARCHITECTURE_ALL ( "all" )
+#define SPOOLSS_ARCHITECTURE_ALL ( "All" )
+#define SPOOLSS_ARCHITECTURE_ALL_CLUSTER ( "AllCluster" )
#define SPOOLSS_ARCHITECTURE_NT_X86 ( "Windows NT x86" )
+#define SPOOLSS_ARCHITECTURE_IA_64 ( "Windows IA64" )
+#define SPOOLSS_ARCHITECTURE_x64 ( "Windows x64" )
+#define SPOOLSS_ARCHITECTURE_4_0 ( "Windows 4.0" )
#define SPOOLSS_DEFAULT_SERVER_PATH ( "C:\\WINDOWS\\system32\\spool" )
+#define SPOOL_PRINTERDATA_KEY ( "PrinterDriverData" )
+#define SPOOL_DSSPOOLER_KEY ( "DsSpooler" )
+#define SPOOL_DSDRIVER_KEY ( "DsDriver" )
+#define SPOOL_DSUSER_KEY ( "DsUser" )
+#define SPOOL_PNPDATA_KEY ( "PnPData" )
+#define SPOOL_OID_KEY ( "OID" )
+#define SPOOL_REG_ASSETNUMBER ( "assetNumber" )
+#define SPOOL_REG_BYTESPERMINUTE ( "bytesPerMinute" )
+#define SPOOL_REG_DEFAULTPRIORITY ( "defaultPriority" )
+#define SPOOL_REG_DESCRIPTION ( "description" )
+#define SPOOL_REG_DRIVERNAME ( "driverName" )
+#define SPOOL_REG_DRIVERVERSION ( "driverVersion" )
+#define SPOOL_REG_FLAGS ( "flags" )
+#define SPOOL_REG_LOCATION ( "location" )
+#define SPOOL_REG_OPERATINGSYSTEM ( "operatingSystem" )
+#define SPOOL_REG_OPERATINGSYSTEMHOTFIX ( "operatingSystemHotfix" )
+#define SPOOL_REG_OPERATINGSYSTEMSERVICEPACK ( "operatingSystemServicePack" )
+#define SPOOL_REG_OPERATINGSYSTEMVERSION ( "operatingSystemVersion" )
+#define SPOOL_REG_PORTNAME ( "portName" )
+#define SPOOL_REG_PRINTATTRIBUTES ( "printAttributes" )
+#define SPOOL_REG_PRINTBINNAMES ( "printBinNames" )
+#define SPOOL_REG_PRINTCOLLATE ( "printCollate" )
+#define SPOOL_REG_PRINTCOLOR ( "printColor" )
+#define SPOOL_REG_PRINTDUPLEXSUPPORTED ( "printDuplexSupported" )
+#define SPOOL_REG_PRINTENDTIME ( "printEndTime" )
+#define SPOOL_REG_PRINTERNAME ( "printerName" )
+#define SPOOL_REG_PRINTFORMNAME ( "printFormName" )
+#define SPOOL_REG_PRINTKEEPPRINTEDJOBS ( "printKeepPrintedJobs" )
+#define SPOOL_REG_PRINTLANGUAGE ( "printLanguage" )
+#define SPOOL_REG_PRINTMACADDRESS ( "printMACAddress" )
+#define SPOOL_REG_PRINTMAXCOPIES ( "printMaxCopies" )
+#define SPOOL_REG_PRINTMAXRESOLUTIONSUPPORTED ( "printMaxResolutionSupported" )
+#define SPOOL_REG_PRINTMAXXEXTENT ( "printMaxXExtent" )
+#define SPOOL_REG_PRINTMAXYEXTENT ( "printMaxYExtent" )
+#define SPOOL_REG_PRINTMEDIAREADY ( "printMediaReady" )
+#define SPOOL_REG_PRINTMEDIASUPPORTED ( "printMediaSupported" )
+#define SPOOL_REG_PRINTMEMORY ( "printMemory" )
+#define SPOOL_REG_PRINTMINXEXTENT ( "printMinXExtent" )
+#define SPOOL_REG_PRINTMINYEXTENT ( "printMinYExtent" )
+#define SPOOL_REG_PRINTNETWORKADDRESS ( "printNetworkAddress" )
+#define SPOOL_REG_PRINTNOTIFY ( "printNotify" )
+#define SPOOL_REG_PRINTNUMBERUP ( "printNumberUp" )
+#define SPOOL_REG_PRINTORIENTATIONSSUPPORTED ( "printOrientationsSupported" )
+#define SPOOL_REG_PRINTOWNER ( "printOwner" )
+#define SPOOL_REG_PRINTPAGESPERMINUTE ( "printPagesPerMinute" )
+#define SPOOL_REG_PRINTRATE ( "printRate" )
+#define SPOOL_REG_PRINTRATEUNIT ( "printRateUnit" )
+#define SPOOL_REG_PRINTSEPARATORFILE ( "printSeparatorFile" )
+#define SPOOL_REG_PRINTSHARENAME ( "printShareName" )
+#define SPOOL_REG_PRINTSPOOLING ( "printSpooling" )
+#define SPOOL_REGVAL_PRINTWHILESPOOLING ( "PrintWhileSpooling" )
+#define SPOOL_REGVAL_PRINTAFTERSPOOLED ( "PrintAfterSpooled" )
+#define SPOOL_REGVAL_PRINTDIRECT ( "PrintDirect" )
+#define SPOOL_REG_PRINTSTAPLINGSUPPORTED ( "printStaplingSupported" )
+#define SPOOL_REG_PRINTSTARTTIME ( "printStartTime" )
+#define SPOOL_REG_PRINTSTATUS ( "printStatus" )
+#define SPOOL_REG_PRIORITY ( "priority" )
+#define SPOOL_REG_SERVERNAME ( "serverName" )
+#define SPOOL_REG_SHORTSERVERNAME ( "shortServerName" )
+#define SPOOL_REG_UNCNAME ( "uNCName" )
+#define SPOOL_REG_URL ( "url" )
+#define SPOOL_REG_VERSIONNUMBER ( "versionNumber" )
#define SPL_LOCAL_PORT ( "Local Port" )
#define SPL_TCPIP_PORT ( "Standard TCP/IP Port" )
#define SPL_XCV_MONITOR_LOCALMON ( ",XcvMonitor Local Port" )
const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
+ struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
+ struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
uint32_t attributes;
uint32_t priority;/* [range(0,99)] */
uint32_t defaultpriority;
uint32_t status;
uint32_t cjobs;
uint32_t averageppm;
-}/* [gensize,public] */;
+}/* [gensize,public,nopush] */;
struct spoolss_PrinterInfo3 {
- struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
+ struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
}/* [gensize,public] */;
struct spoolss_PrinterInfo4 {
}/* [gensize,public] */;
struct spoolss_DeviceModeInfo {
- struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
+ struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
};
union spoolss_PrinterInfo {
struct spoolss_PrinterInfo7 info7;/* [case(7)] */
struct spoolss_DeviceModeInfo info8;/* [case(8)] */
struct spoolss_DeviceModeInfo info9;/* [case(9)] */
-}/* [relative_base,gensize,public,nodiscriminant] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_DevmodeContainer {
uint32_t _ndr_size;/* [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->iconv_convenience,ndr->flags))] */
const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct spoolss_DeviceMode *devmode;/* [relative] */
+ struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct security_descriptor *secdesc;/* [relative] */
+ struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
uint32_t status;
uint32_t priority;/* [range(0,99)] */
uint32_t position;
const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct spoolss_DeviceMode *devmode;/* [relative] */
+ struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- struct security_descriptor *secdesc;/* [relative] */
+ struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
uint32_t status;
uint32_t priority;/* [range(0,99)] */
uint32_t position;
struct spoolss_JobInfo2 info2;/* [case(2)] */
struct spoolss_JobInfo3 info3;/* [case(3)] */
struct spoolss_JobInfo4 info4;/* [case(4)] */
-}/* [relative_base,gensize,public,nodiscriminant] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_SetJobInfo1 {
uint32_t job_id;
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)] */
+ uint32_t devmode_ptr;
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 secdesc_ptr;
uint32_t attributes;
uint32_t priority;/* [range(0,99)] */
uint32_t defaultpriority;
uint32_t action;
};
+struct spoolss_SetPrinterInfo8 {
+ uint32_t devmode_ptr;
+};
+
+struct spoolss_SetPrinterInfo9 {
+ uint32_t devmode_ptr;
+};
+
union spoolss_SetPrinterInfo {
struct spoolss_SetPrinterInfo0 *info0;/* [unique,case(0)] */
struct spoolss_SetPrinterInfo1 *info1;/* [unique,case] */
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)] */
+ struct spoolss_SetPrinterInfo8 *info8;/* [unique,case(8)] */
+ struct spoolss_SetPrinterInfo9 *info9;/* [unique,case(9)] */
}/* [switch_type(uint32)] */;
struct spoolss_SetPrinterInfoCtr {
const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
}/* [gensize,public] */;
+struct spoolss_DriverInfo7 {
+ uint32_t size;
+ enum spoolss_DriverOSVersion version;
+ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+ const char * inf_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+ const char * install_source_root;/* [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 * 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 ** 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)] */
- 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;
struct spoolss_DriverInfo4 info4;/* [case(4)] */
struct spoolss_DriverInfo5 info5;/* [case(5)] */
struct spoolss_DriverInfo6 info6;/* [case(6)] */
+ struct spoolss_DriverInfo7 info7;/* [case(7)] */
struct spoolss_DriverInfo8 info8;/* [case(8)] */
struct spoolss_DriverInfo101 info101;/* [case(101)] */
-}/* [relative_base,gensize,public,nodiscriminant] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_DriverDirectoryInfo1 {
const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
union spoolss_DriverDirectoryInfo {
struct spoolss_DriverDirectoryInfo1 info1;/* [case] */
-}/* [gensize,relative_base,nodiscriminant,public] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_PrintProcessorInfo1 {
const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
union spoolss_PrintProcessorInfo {
struct spoolss_PrintProcessorInfo1 info1;/* [case] */
-}/* [relative_base,nodiscriminant,public] */;
+}/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_PrintProcessorDirectoryInfo1 {
const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
union spoolss_PrintProcessorDirectoryInfo {
struct spoolss_PrintProcessorDirectoryInfo1 info1;/* [case] */
-}/* [gensize,relative_base,nodiscriminant,public] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_DocumentInfo1 {
const char *document_name;/* [unique,charset(UTF16)] */
uint32_t value;/* [case(REG_DWORD)] */
const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_MULTI_SZ)] */
DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */
-}/* [gensize,public,nodiscriminant] */;
+}/* [nodiscriminant,public] */;
enum spoolss_FormFlags
#ifndef USE_UINT_ENUMS
const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
uint32_t ressource_id;
const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
- uint32_t lang_id;
+ uint16_t lang_id;
+ uint16_t unused;
}/* [gensize,public] */;
union spoolss_FormInfo {
struct spoolss_FormInfo1 info1;/* [case] */
struct spoolss_FormInfo2 info2;/* [case(2)] */
-}/* [relative_base,gensize,public,nodiscriminant] */;
+}/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_AddFormInfo1 {
enum spoolss_FormFlags flags;
struct spoolss_PortInfo2 info2;/* [case(2)] */
struct spoolss_PortInfo3 info3;/* [case(3)] */
struct spoolss_PortInfoFF infoFF;/* [case(0xff)] */
-}/* [relative_base,nodiscriminant,public] */;
+}/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_MonitorInfo1 {
const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
union spoolss_MonitorInfo {
struct spoolss_MonitorInfo1 info1;/* [case] */
struct spoolss_MonitorInfo2 info2;/* [case(2)] */
-}/* [relative_base,nodiscriminant,public] */;
+}/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
struct spoolss_PrintProcDataTypesInfo1 {
const char * name_array;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
union spoolss_PrintProcDataTypesInfo {
struct spoolss_PrintProcDataTypesInfo1 info1;/* [case] */
-}/* [relative_base,nodiscriminant,public] */;
+}/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
/* bitmap spoolss_PrinterChangeFlags */
#define PRINTER_CHANGE_ADD_PRINTER ( 0x00000001 )
uint32_t data_length;/* [value(ndr_size_spoolss_PrinterData(data,type,ndr->iconv_convenience,ndr->flags))] */
}/* [relative_base,gensize,public] */;
+union spoolss_KeyNames {
+ const char ** string_array;/* [default,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+}/* [nodiscriminant] */;
+
/* bitmap spoolss_DeleteDriverFlags */
#define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
#define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
};
+struct _spoolss_SetPrinterDataEx {
+ struct {
+ struct policy_handle *handle;/* [ref] */
+ const char *key_name;/* [charset(UTF16)] */
+ const char *value_name;/* [charset(UTF16)] */
+ enum winreg_Type type;
+ DATA_BLOB data;
+ uint32_t _offered;
+ } in;
+
+ struct {
+ WERROR result;
+ } out;
+
+};
+
+
+struct __spoolss_SetPrinterDataEx {
+ struct {
+ enum winreg_Type type;
+ } in;
+
+ struct {
+ union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
+ } out;
+
+};
+
+
struct spoolss_SetPrinterDataEx {
struct {
struct policy_handle *handle;/* [ref] */
const char *key_name;/* [charset(UTF16)] */
const char *value_name;/* [charset(UTF16)] */
enum winreg_Type type;
- uint8_t *buffer;/* [ref,size_is(offered)] */
+ union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
+ uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
+ } in;
+
+ struct {
+ WERROR result;
+ } out;
+
+};
+
+
+struct _spoolss_GetPrinterDataEx {
+ struct {
+ struct policy_handle *handle;/* [ref] */
+ const char *key_name;/* [charset(UTF16)] */
+ const char *value_name;/* [charset(UTF16)] */
uint32_t offered;
} in;
struct {
+ enum winreg_Type *type;/* [ref] */
+ DATA_BLOB *data;/* [ref] */
+ uint32_t *needed;/* [ref] */
WERROR result;
} out;
};
+struct __spoolss_GetPrinterDataEx {
+ struct {
+ enum winreg_Type type;
+ } in;
+
+ struct {
+ union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
+ } out;
+
+};
+
+
struct spoolss_GetPrinterDataEx {
struct {
struct policy_handle *handle;/* [ref] */
struct {
enum winreg_Type *type;/* [ref] */
- uint8_t *buffer;/* [ref,size_is(offered)] */
+ union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
uint32_t *needed;/* [ref] */
WERROR result;
} out;
} in;
struct {
- const char ** *key_buffer;/* [subcontext_size(offered),ref,subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
+ uint32_t *_ndr_size;/* [ref] */
+ union spoolss_KeyNames *key_buffer;/* [subcontext_size(*_ndr_size*2),ref,subcontext(0),switch_is(*_ndr_size)] */
uint32_t *needed;/* [ref] */
WERROR result;
} out;