📄 rpc_spoolss.h
字号:
typedef struct spool_doc_info_container{ uint32 level; DOC_INFO docinfo;}DOC_INFO_CONTAINER;typedef struct spool_q_startdocprinter{ POLICY_HND handle; DOC_INFO_CONTAINER doc_info_container;}SPOOL_Q_STARTDOCPRINTER;typedef struct spool_r_startdocprinter{ uint32 jobid; WERROR status;}SPOOL_R_STARTDOCPRINTER;typedef struct spool_q_enddocprinter{ POLICY_HND handle;}SPOOL_Q_ENDDOCPRINTER;typedef struct spool_r_enddocprinter{ WERROR status;}SPOOL_R_ENDDOCPRINTER;typedef struct spool_q_writeprinter{ POLICY_HND handle; uint32 buffer_size; uint8 *buffer; uint32 buffer_size2;}SPOOL_Q_WRITEPRINTER;typedef struct spool_r_writeprinter{ uint32 buffer_written; WERROR status;}SPOOL_R_WRITEPRINTER;typedef struct spool_notify_option{ uint32 version; uint32 flags; uint32 count; uint32 option_type_ptr; SPOOL_NOTIFY_OPTION_TYPE_CTR ctr;}SPOOL_NOTIFY_OPTION;typedef struct spool_notify_info_data{ uint16 type; uint16 field; uint32 reserved; uint32 id; union { uint32 value[2]; struct { uint32 length; uint16 *string; } data; struct { uint32 size; SEC_DESC *desc; } sd; } notify_data; uint32 size; BOOL enc_type;} SPOOL_NOTIFY_INFO_DATA;typedef struct spool_notify_info{ uint32 version; uint32 flags; uint32 count; SPOOL_NOTIFY_INFO_DATA *data;}SPOOL_NOTIFY_INFO;/* If the struct name looks obscure, yes it is ! *//* RemoteFindFirstPrinterChangeNotificationEx query struct */typedef struct spoolss_q_rffpcnex{ POLICY_HND handle; uint32 flags; uint32 options; uint32 localmachine_ptr; UNISTR2 localmachine; uint32 printerlocal; uint32 option_ptr; SPOOL_NOTIFY_OPTION *option;}SPOOL_Q_RFFPCNEX;typedef struct spool_r_rffpcnex{ WERROR status;}SPOOL_R_RFFPCNEX;/* Remote Find Next Printer Change Notify Ex */typedef struct spool_q_rfnpcnex{ POLICY_HND handle; uint32 change; uint32 option_ptr; SPOOL_NOTIFY_OPTION *option;}SPOOL_Q_RFNPCNEX;typedef struct spool_r_rfnpcnex{ uint32 info_ptr; SPOOL_NOTIFY_INFO info; WERROR status;}SPOOL_R_RFNPCNEX;/* Find Close Printer Notify */typedef struct spool_q_fcpn{ POLICY_HND handle;}SPOOL_Q_FCPN;typedef struct spool_r_fcpn{ WERROR status;}SPOOL_R_FCPN;typedef struct printer_info_0{ UNISTR printername; UNISTR servername; uint32 cjobs; uint32 total_jobs; uint32 total_bytes; uint16 year; uint16 month; uint16 dayofweek; uint16 day; uint16 hour; uint16 minute; uint16 second; uint16 milliseconds; uint32 global_counter; uint32 total_pages; uint16 major_version; uint16 build_version; uint32 unknown7; uint32 unknown8; uint32 unknown9; uint32 session_counter; uint32 unknown11; uint32 printer_errors; uint32 unknown13; uint32 unknown14; uint32 unknown15; uint32 unknown16; uint32 change_id; uint32 unknown18; uint32 status; uint32 unknown20; uint32 c_setprinter; uint16 unknown22; uint16 unknown23; uint16 unknown24; uint16 unknown25; uint16 unknown26; uint16 unknown27; uint16 unknown28; uint16 unknown29;} PRINTER_INFO_0;typedef struct printer_info_1{ uint32 flags; UNISTR description; UNISTR name; UNISTR comment;}PRINTER_INFO_1;typedef struct printer_info_2{ UNISTR servername; UNISTR printername; UNISTR sharename; UNISTR portname; UNISTR drivername; UNISTR comment; UNISTR location; DEVICEMODE *devmode; UNISTR sepfile; UNISTR printprocessor; UNISTR datatype; UNISTR parameters; SEC_DESC *secdesc; uint32 attributes; uint32 priority; uint32 defaultpriority; uint32 starttime; uint32 untiltime; uint32 status; uint32 cjobs; uint32 averageppm;}PRINTER_INFO_2;typedef struct printer_info_3{ uint32 flags; SEC_DESC *secdesc;}PRINTER_INFO_3;typedef struct printer_info_4{ UNISTR printername; UNISTR servername; uint32 attributes;}PRINTER_INFO_4;typedef struct printer_info_5{ UNISTR printername; UNISTR portname; uint32 attributes; uint32 device_not_selected_timeout; uint32 transmission_retry_timeout;}PRINTER_INFO_5;#define SPOOL_DS_PUBLISH 1#define SPOOL_DS_UPDATE 2#define SPOOL_DS_UNPUBLISH 4#define SPOOL_DS_PENDING 0x80000000typedef struct printer_info_7{ UNISTR guid; /* text form of printer guid */ uint32 action;}PRINTER_INFO_7;typedef struct spool_q_enumprinters{ uint32 flags; uint32 servername_ptr; UNISTR2 servername; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ENUMPRINTERS;typedef struct printer_info_ctr_info{ PRINTER_INFO_0 *printers_0; PRINTER_INFO_1 *printers_1; PRINTER_INFO_2 *printers_2; PRINTER_INFO_3 *printers_3; PRINTER_INFO_4 *printers_4; PRINTER_INFO_5 *printers_5; PRINTER_INFO_7 *printers_7;}PRINTER_INFO_CTR;typedef struct spool_r_enumprinters{ RPC_BUFFER *buffer; uint32 needed; /* bytes needed */ uint32 returned; /* number of printers */ WERROR status;}SPOOL_R_ENUMPRINTERS;typedef struct spool_q_getprinter{ POLICY_HND handle; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_GETPRINTER;typedef struct printer_info_info{ union { PRINTER_INFO_0 *info0; PRINTER_INFO_1 *info1; PRINTER_INFO_2 *info2; void *info; } printer;} PRINTER_INFO;typedef struct spool_r_getprinter{ RPC_BUFFER *buffer; uint32 needed; WERROR status;} SPOOL_R_GETPRINTER;typedef struct driver_info_1{ UNISTR name;} DRIVER_INFO_1;typedef struct driver_info_2{ uint32 version; UNISTR name; UNISTR architecture; UNISTR driverpath; UNISTR datafile; UNISTR configfile;} DRIVER_INFO_2;typedef struct driver_info_3{ uint32 version; UNISTR name; UNISTR architecture; UNISTR driverpath; UNISTR datafile; UNISTR configfile; UNISTR helpfile; uint16 *dependentfiles; UNISTR monitorname; UNISTR defaultdatatype;}DRIVER_INFO_3;typedef struct driver_info_6{ uint32 version; UNISTR name; UNISTR architecture; UNISTR driverpath; UNISTR datafile; UNISTR configfile; UNISTR helpfile; uint16 *dependentfiles; UNISTR monitorname; UNISTR defaultdatatype; uint16* previousdrivernames; NTTIME driver_date; uint32 padding; uint32 driver_version_low; uint32 driver_version_high; UNISTR mfgname; UNISTR oem_url; UNISTR hardware_id; UNISTR provider;}DRIVER_INFO_6;typedef struct driver_info_info{ DRIVER_INFO_1 *info1; DRIVER_INFO_2 *info2; DRIVER_INFO_3 *info3; DRIVER_INFO_6 *info6;}PRINTER_DRIVER_CTR;typedef struct spool_q_getprinterdriver2{ POLICY_HND handle; uint32 architecture_ptr; UNISTR2 architecture; uint32 level; RPC_BUFFER *buffer; uint32 offered; uint32 clientmajorversion; uint32 clientminorversion;}SPOOL_Q_GETPRINTERDRIVER2;typedef struct spool_r_getprinterdriver2{ RPC_BUFFER *buffer; uint32 needed; uint32 servermajorversion; uint32 serverminorversion; WERROR status;}SPOOL_R_GETPRINTERDRIVER2;typedef struct add_jobinfo_1{ UNISTR path; uint32 job_number;}ADD_JOBINFO_1;typedef struct spool_q_addjob{ POLICY_HND handle; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ADDJOB;typedef struct spool_r_addjob{ RPC_BUFFER *buffer; uint32 needed; WERROR status;}SPOOL_R_ADDJOB;/* * I'm really wondering how many different time formats * I will have to cope with * * JFM, 09/13/98 In a mad mood ;-(*/typedef struct systemtime{ uint16 year; uint16 month; uint16 dayofweek; uint16 day; uint16 hour; uint16 minute; uint16 second; uint16 milliseconds;}SYSTEMTIME;typedef struct s_job_info_1{ uint32 jobid; UNISTR printername; UNISTR machinename; UNISTR username; UNISTR document; UNISTR datatype; UNISTR text_status; uint32 status; uint32 priority; uint32 position; uint32 totalpages; uint32 pagesprinted; SYSTEMTIME submitted;}JOB_INFO_1;typedef struct s_job_info_2{ uint32 jobid; UNISTR printername; UNISTR machinename; UNISTR username; UNISTR document; UNISTR notifyname; UNISTR datatype; UNISTR printprocessor; UNISTR parameters; UNISTR drivername; DEVICEMODE *devmode; UNISTR text_status;/* SEC_DESC sec_desc;*/ uint32 status; uint32 priority; uint32 position; uint32 starttime; uint32 untiltime; uint32 totalpages; uint32 size; SYSTEMTIME submitted; uint32 timeelapsed; uint32 pagesprinted;}JOB_INFO_2;typedef struct spool_q_enumjobs{ POLICY_HND handle; uint32 firstjob; uint32 numofjobs; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ENUMJOBS;typedef struct job_info_ctr_info{ union { JOB_INFO_1 *job_info_1; JOB_INFO_2 *job_info_2; void *info; } job;} JOB_INFO_CTR;typedef struct spool_r_enumjobs{ RPC_BUFFER *buffer; uint32 needed; uint32 returned; WERROR status;}SPOOL_R_ENUMJOBS;typedef struct spool_q_schedulejob{ POLICY_HND handle; uint32 jobid;}SPOOL_Q_SCHEDULEJOB;typedef struct spool_r_schedulejob{ WERROR status;}SPOOL_R_SCHEDULEJOB;typedef struct s_port_info_1{ UNISTR port_name;}PORT_INFO_1;typedef struct s_port_info_2{ UNISTR port_name; UNISTR monitor_name; UNISTR description; uint32 port_type; uint32 reserved;}PORT_INFO_2;/* Port Type bits */#define PORT_TYPE_WRITE 0x0001#define PORT_TYPE_READ 0x0002#define PORT_TYPE_REDIRECTED 0x0004#define PORT_TYPE_NET_ATTACHED 0x0008typedef struct spool_q_enumports{ uint32 name_ptr; UNISTR2 name; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ENUMPORTS;typedef struct port_info_ctr_info{ union { PORT_INFO_1 *info_1; PORT_INFO_2 *info_2; } port;}PORT_INFO_CTR;typedef struct spool_r_enumports{ RPC_BUFFER *buffer; uint32 needed; /* bytes needed */ uint32 returned; /* number of printers */ WERROR status;}SPOOL_R_ENUMPORTS;#define JOB_CONTROL_PAUSE 1#define JOB_CONTROL_RESUME 2#define JOB_CONTROL_CANCEL 3#define JOB_CONTROL_RESTART 4#define JOB_CONTROL_DELETE 5typedef struct job_info_info{ union { JOB_INFO_1 job_info_1; JOB_INFO_2 job_info_2; } job;}JOB_INFO;typedef struct spool_q_setjob{ POLICY_HND handle; uint32 jobid; uint32 level; JOB_INFO ctr; uint32 command;}SPOOL_Q_SETJOB;typedef struct spool_r_setjob{ WERROR status;}SPOOL_R_SETJOB;typedef struct spool_q_enumprinterdrivers{ uint32 name_ptr; UNISTR2 name; uint32 environment_ptr; UNISTR2 environment; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ENUMPRINTERDRIVERS;typedef struct spool_r_enumprinterdrivers{ RPC_BUFFER *buffer; uint32 needed; uint32 returned; WERROR status;}SPOOL_R_ENUMPRINTERDRIVERS;#define FORM_USER 0#define FORM_BUILTIN 1#define FORM_PRINTER 2typedef struct spool_form_1{ uint32 flag; UNISTR name; uint32 width; uint32 length; uint32 left; uint32 top; uint32 right; uint32 bottom;}FORM_1;typedef struct spool_q_enumforms{ POLICY_HND handle; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_ENUMFORMS;typedef struct spool_r_enumforms{ RPC_BUFFER *buffer; uint32 needed; uint32 numofforms; WERROR status;}SPOOL_R_ENUMFORMS;typedef struct spool_q_getform{ POLICY_HND handle; UNISTR2 formname; uint32 level; RPC_BUFFER *buffer; uint32 offered;}SPOOL_Q_GETFORM;typedef struct spool_r_getform{ RPC_BUFFER *buffer; uint32 needed; WERROR status;}SPOOL_R_GETFORM;typedef struct spool_printer_info_level_1{ uint32 flags; uint32 description_ptr; uint32 name_ptr; uint32 comment_ptr; UNISTR2 description; UNISTR2 name; UNISTR2 comment; } SPOOL_PRINTER_INFO_LEVEL_1;typedef struct spool_printer_info_level_2{ uint32 servername_ptr; uint32 printername_ptr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -