⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spoolss.idl

📁 samba最新软件
💻 IDL
📖 第 1 页 / 共 3 页
字号:
#include "idl_types.h"/*  spoolss interface definitions*/import "misc.idl", "security.idl", "winreg.idl";[ uuid("12345678-1234-abcd-ef00-0123456789ab"),  version(1.0),  endpoint("ncacn_np:[\\pipe\\spoolss]"),  pointer_default(unique),  helpstring("Spooler SubSystem"),  helper("librpc/ndr/ndr_spoolss_buf.h")] interface spoolss{	typedef [v1_enum] enum winreg_Type winreg_Type;	typedef struct {		uint16 year;		uint16 month;		uint16 day_of_week;		uint16 day;		uint16 hour;		uint16 minute;		uint16 second;		uint16 millisecond;	} spoolss_Time;	typedef struct {		[relative] nstring *printername;		[relative] nstring *servername;		uint32 cjobs;		uint32 total_jobs;		uint32 total_bytes;		spoolss_Time time;				uint32 global_counter;		uint32 total_pages;		uint32 version;		uint32 unknown10;		uint32 unknown11;		uint32 unknown12;		uint32 session_counter;		uint32 unknown14;		uint32 printer_errors;		uint32 unknown16;		uint32 unknown17;		uint32 unknown18;		uint32 unknown19;		uint32 change_id;		uint32 unknown21;		uint32 status;		uint32 unknown23;		uint32 c_setprinter;		uint16 unknown25;		uint16 unknown26;		uint32 unknown27;		uint32 unknown28;		uint32 unknown29;	} spoolss_PrinterInfo0;	typedef [public,gensize] struct {		[charset(UTF16)] uint16 devicename[32];		uint16 specversion;		uint16 driverversion;		uint16 size;		[value(r->driverextra_data.length)] uint16 __driverextra_length;		uint32 fields;		uint16 orientation;		uint16 papersize;		uint16 paperlength;		uint16 paperwidth;		uint16 scale;		uint16 copies;		uint16 defaultsource;		uint16 printquality;		uint16 color;		uint16 duplex;		uint16 yresolution;		uint16 ttoption;		uint16 collate;		[charset(UTF16)] uint16 formname[32];		uint16 logpixels;		uint32 bitsperpel;		uint32 pelswidth;		uint32 pelsheight;		uint32 displayflags;		uint32 displayfrequency;		uint32 icmmethod;		uint32 icmintent;		uint32 mediatype;		uint32 dithertype;		uint32 reserved1;		uint32 reserved2;		uint32 panningwidth;		uint32 panningheight;		[subcontext_size(__driverextra_length),subcontext(0),flag(NDR_REMAINING)] DATA_BLOB driverextra_data;	} spoolss_DeviceMode;	typedef [public] 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 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;		[relative] nstring *portname;		[relative] nstring *drivername;		[relative] nstring *comment;		[relative] nstring *location;		[relative,subcontext(0)] spoolss_DeviceMode *devmode;		[relative] nstring *sepfile;		[relative] nstring *printprocessor;		[relative] nstring *datatype;		[relative] nstring *parameters;		[relative,subcontext(0)] security_descriptor *secdesc;		spoolss_PrinterAttributes attributes;		uint32 priority;		uint32 defaultpriority;		uint32 starttime;		uint32 untiltime;		spoolss_PrinterStatus status;		uint32 cjobs;		uint32 averageppm;	} spoolss_PrinterInfo2;	typedef struct {		[relative,subcontext(0)] security_descriptor *secdesc;	} spoolss_PrinterInfo3;	typedef struct {		[relative] nstring *printername;		[relative] nstring *servername;		spoolss_PrinterAttributes attributes;	} spoolss_PrinterInfo4;	typedef struct {		[relative] nstring *printername;		[relative] nstring *portname;		spoolss_PrinterAttributes attributes;		uint32 device_not_selected_timeout;		uint32 transmission_retry_timeout;	} spoolss_PrinterInfo5;	typedef struct {		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 */		spoolss_DsPrintAction action;	} spoolss_PrinterInfo7;	typedef struct {		[relative,subcontext(0)] spoolss_DeviceMode *devmode;	} spoolss_DeviceModeInfo;	typedef [nodiscriminant,relative_base,public] union {		[case(0)] spoolss_PrinterInfo0 info0;		[case(1)] spoolss_PrinterInfo1 info1;		[case(2)] spoolss_PrinterInfo2 info2;		[case(3)] spoolss_PrinterInfo3 info3;		[case(4)] spoolss_PrinterInfo4 info4;		[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;		[default];	} spoolss_PrinterInfo;	/******************/	/* Function: 0x00 */	/* we are using this as internal parsing code */	[public,noopnum,noprint] WERROR _spoolss_EnumPrinters(		[in] spoolss_EnumPrinterFlags flags,		[in,unique] [string,charset(UTF16)] uint16 *server,		[in] uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] uint32 offered,		[out,unique] DATA_BLOB *info,		[out] uint32 needed,		[out] uint32 count	);	[public,noopnum,noprint] void __spoolss_EnumPrinters(		[in] uint32 level,		[in] uint32 count,		[out,switch_is(level)] spoolss_PrinterInfo info[count]	);	[nopull,nopush] WERROR spoolss_EnumPrinters(		[in] spoolss_EnumPrinterFlags flags,		[in,unique] [string,charset(UTF16)] uint16 *server,		[in] uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] uint32 offered,		/* what we have here is a subcontext containing an array of no discriminant unions		 * and the array has no size in front		 */		[out,unique,switch_is(level),size_is(count)] spoolss_PrinterInfo *info,		[out] uint32 needed,		[out] uint32 count	);	/******************/	/* Function: 0x01 */	typedef struct {		[value(_ndr_size_spoolss_DeviceMode(devmode, ndr->flags))] uint32 _ndr_size;		[subcontext(4),subcontext_size(_ndr_size)] spoolss_DeviceMode *devmode;	} spoolss_DevmodeContainer;	[public] WERROR spoolss_OpenPrinter(		[in,unique] [string,charset(UTF16)] uint16 *printername,		[in,unique] [string,charset(UTF16)] uint16 *datatype,		[in] spoolss_DevmodeContainer devmode_ctr,		[in] uint32 access_mask,		[out,ref] policy_handle *handle	);	/******************/	/* Function: 0x02 */	typedef struct {		uint32 job_id;		[relative] nstring *printer_name;		[relative] nstring *server_name;		[relative] nstring *user_name;		[relative] nstring *document_name;		[relative] nstring *data_type;		[relative] nstring *text_status;		uint32 status;		uint32 priority;		uint32 position;		uint32 total_pages;		uint32 pages_printed;		spoolss_Time time;	} spoolss_JobInfo1;	typedef [nodiscriminant,relative_base,public] union {		[case(1)] spoolss_JobInfo1 info1;		[case(2)]; /* TODO */		[case(3)]; /* TODO */		[default];	} spoolss_JobInfo;	typedef struct {		uint32 level;		[switch_is(level)] spoolss_JobInfo info;	} spoolss_JobInfoContainer;	typedef [v1_enum] enum {		SPOOLSS_JOB_CONTROL_PAUSE		= 1,		SPOOLSS_JOB_CONTROL_RESUME		= 2,		SPOOLSS_JOB_CONTROL_CANCEL		= 3,		SPOOLSS_JOB_CONTROL_RESTART		= 4,		SPOOLSS_JOB_CONTROL_DELETE		= 5,		SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER	= 6,		SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED	= 7	} spoolss_JobControl;	WERROR spoolss_SetJob(		[in,ref] policy_handle *handle,		[in] uint32 job_id,		[in,unique] spoolss_JobInfoContainer *ctr,		[in] spoolss_JobControl command	);	/******************/	/* Function: 0x03 */	WERROR spoolss_GetJob(		[in,ref] policy_handle *handle,		[in] 	 uint32 job_id,		[in] 	 uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] 	 uint32 offered,		[out,unique,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_JobInfo *info,		[out] 	 uint32 needed	);	/******************/	/* Function: 0x04 */	[public,noopnum,noprint] WERROR _spoolss_EnumJobs(		[in,ref] policy_handle *handle,		[in] 	 uint32 firstjob,		[in] 	 uint32 numjobs,		[in] 	 uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] 	 uint32 offered,		[out,unique] DATA_BLOB *info,		[out] 	 uint32 needed,		[out] 	 uint32 count	);	[public,noopnum,noprint] void __spoolss_EnumJobs(		[in] uint32 level,		[in] uint32 count,		[out,switch_is(level)] spoolss_JobInfo info[count]	);	[nopull,nopush] WERROR spoolss_EnumJobs(		[in,ref] policy_handle *handle,		[in]	 uint32 firstjob,		[in]	 uint32 numjobs,		[in]	 uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] 	 uint32 offered,		[out,unique,switch_is(level),size_is(count)] spoolss_JobInfo *info,		[out] 	 uint32 needed,		[out]	 uint32 count	);	/******************/	/* Function: 0x05 */	[todo] WERROR spoolss_AddPrinter( 		/* This function is not implemented in Samba 3 as no 		   clients have been observed using it. */	);	/******************/	/* Function: 0x06 */	[todo] WERROR spoolss_DeletePrinter(	);	/******************/	/* Function: 0x07 */	typedef [v1_enum] enum {		SPOOLSS_PRINTER_CONTROL_UNPAUSE    = 0,		SPOOLSS_PRINTER_CONTROL_PAUSE      = 1,		SPOOLSS_PRINTER_CONTROL_RESUME     = 2,		SPOOLSS_PRINTER_CONTROL_PURGE      = 3,		SPOOLSS_PRINTER_CONTROL_SET_STATUS = 4	} spoolss_PrinterControl;	typedef [switch_type(uint32)] union {		[case(0)] spoolss_PrinterInfo0 *info0;		[case(1)] spoolss_PrinterInfo1 *info1;		[case(2)] spoolss_PrinterInfo2 *info2;		[case(3)] spoolss_PrinterInfo3 *info3;		[case(4)] spoolss_PrinterInfo4 *info4;		[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;		[default];	} spoolss_SetPrinterInfo;	WERROR spoolss_SetPrinter(		[in,ref] policy_handle *handle,		[in] uint32 level,		[in,switch_is(level)] spoolss_SetPrinterInfo info,		[in] spoolss_DevmodeContainer devmode_ctr,		[in] sec_desc_buf secdesc_ctr,		[in] spoolss_PrinterControl command	);	/******************/	/* Function: 0x08 */	[public] WERROR spoolss_GetPrinter(		[in,ref] policy_handle *handle,		[in] 	 uint32 level,		[in,unique] DATA_BLOB *buffer,		[in] 	 uint32 offered,		[out,unique,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_PrinterInfo *info,		[out] 	 uint32 needed	);	/******************/	/* Function: 0x09 */	[todo] WERROR spoolss_AddPrinterDriver(	);	typedef struct {		[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 {		spoolss_DriverOSVersion version;		[relative] nstring *driver_name;		[relative] nstring *architecture;		[relative] nstring *driver_path;		[relative] nstring *data_file;		[relative] nstring *config_file;	} spoolss_DriverInfo2;	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_array *dependent_files;		[relative] nstring *monitor_name;		[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_array *dependent_files;		[relative] nstring *monitor_name;		[relative] nstring *default_datatype;		[relative] nstring_array *previous_names;	} 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_array *dependent_files;		[relative] nstring *monitor_name;		[relative] nstring *default_datatype;		[relative] nstring_array *previous_names;		NTTIME driver_data;		hyper driver_version;		[relative] nstring *manufacturer_name;		[relative] nstring *manufacturer_url;		[relative] nstring *hardware_id;		[relative] nstring *provider;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -