diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 43 | ||||
-rw-r--r-- | source3/include/rpc_svcctl.h | 69 |
2 files changed, 68 insertions, 44 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index df06ac2e9d..d99ba9e27c 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2136,11 +2136,16 @@ BOOL svc_query_svc_cfg(struct cli_state *cli, uint16 fnum, QUERY_SERVICE_CONFIG *cfg, uint32 *buf_size); BOOL svc_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd); -BOOL svc_query_unknown_1b(struct cli_state *cli, uint16 fnum, - const POLICY_HND *pol, uint32 switch_value, - uint32 unknown_1, - uint32 *num_items, - uint32 ***items); +BOOL svc_change_svc_cfg(struct cli_state *cli, uint16 fnum, + POLICY_HND *hnd, + uint32 service_type, uint32 start_type, + uint32 unknown_0, + uint32 error_control, + char* bin_path_name, char* load_order_grp, + uint32 tag_id, + char* dependencies, char* service_start_name, + char* password, + char* disp_name); /*The following definitions come from rpc_client/cli_wkssvc.c */ @@ -2445,7 +2450,8 @@ BOOL make_buffer2_multi(BUFFER2 *str, char *const* const buf, uint32 num); BOOL make_buffer2(BUFFER2 *str, const char *buf, int len); BOOL smb_io_buffer2(char *desc, BUFFER2 *buf2, uint32 buffer, prs_struct *ps, int depth); BOOL make_buf_unistr2(UNISTR2 *str, uint32 *ptr, const char *buf); -BOOL make_string2(STRING2 *str, char *buf, int len); +BOOL make_string2(STRING2 *str, const char *buf, int len); +BOOL make_buf_string2(STRING2 *str, uint32 *ptr, const char *buf); BOOL smb_io_string2(char *desc, STRING2 *str2, uint32 buffer, prs_struct *ps, int depth); BOOL make_unistr2(UNISTR2 *str, const char *buf, int len); BOOL smb_io_unistr2(char *desc, UNISTR2 *uni2, uint32 buffer, prs_struct *ps, int depth); @@ -3434,16 +3440,19 @@ BOOL svc_io_r_query_disp_name(char *desc, SVC_R_QUERY_DISP_NAME *r_u, prs_struct BOOL make_svc_q_close(SVC_Q_CLOSE *q_c, POLICY_HND *hnd); BOOL svc_io_q_close(char *desc, SVC_Q_CLOSE *q_u, prs_struct *ps, int depth); BOOL svc_io_r_close(char *desc, SVC_R_CLOSE *r_u, prs_struct *ps, int depth); -BOOL make_svc_q_unknown_1b(SVC_Q_UNKNOWN_1B *q_u, - const POLICY_HND *pol, uint32 switch_value, - uint32 unknown_1); -BOOL svc_io_q_unknown_1b(char *desc, SVC_Q_UNKNOWN_1B *q_u, prs_struct *ps, int depth); -BOOL make_svc_r_unknown_1b(SVC_R_UNKNOWN_1B *r_u, - uint32 switch_value, uint32 unknown_1, - uint32 num_items, uint32 **item, - uint32 status); -BOOL svc_io_r_unknown_1b(char *desc, SVC_R_UNKNOWN_1B *r_u, prs_struct *ps, int depth); -void svc_free_r_unknown_1b(SVC_R_UNKNOWN_1B *r_u); +BOOL make_svc_q_change_svc_config(SVC_Q_CHANGE_SVC_CONFIG *q_u, POLICY_HND *hnd, + uint32 service_type, uint32 start_type, + uint32 unknown_0, + uint32 error_control, + char* bin_path_name, char* load_order_grp, + uint32 tag_id, + char* dependencies, char* service_start_name, + char* password, + char* disp_name); +BOOL svc_io_q_change_svc_config(char *desc, SVC_Q_CHANGE_SVC_CONFIG *q_u, prs_struct *ps, int depth); +BOOL make_svc_r_change_svc_config(SVC_R_CHANGE_SVC_CONFIG *r_c, + uint32 unknown_0, uint32 status); +BOOL svc_io_r_change_svc_config(char *desc, SVC_R_CHANGE_SVC_CONFIG *r_u, prs_struct *ps, int depth); /*The following definitions come from rpc_parse/parse_wks.c */ @@ -3681,7 +3690,7 @@ BOOL msrpc_svc_enum(struct client_info *info, void cmd_svc_enum(struct client_info *info, int argc, char *argv[]); void cmd_svc_stop(struct client_info *info, int argc, char *argv[]); void cmd_svc_start(struct client_info *info, int argc, char *argv[]); -void cmd_svc_test(struct client_info *info, int argc, char *argv[]); +void cmd_svc_set(struct client_info *info, int argc, char *argv[]); /*The following definitions come from rpcclient/cmd_wkssvc.c */ diff --git a/source3/include/rpc_svcctl.h b/source3/include/rpc_svcctl.h index 1815de8532..ecd1188fe8 100644 --- a/source3/include/rpc_svcctl.h +++ b/source3/include/rpc_svcctl.h @@ -26,15 +26,15 @@ /* svcctl pipe */ -#define SVC_OPEN_SC_MAN 0x0f -#define SVC_ENUM_SVCS_STATUS 0x0e -#define SVC_QUERY_SVC_CONFIG 0x11 -#define SVC_QUERY_DISP_NAME 0x14 -#define SVC_OPEN_SERVICE 0x10 -#define SVC_START_SERVICE 0x13 -#define SVC_STOP_SERVICE 0x01 -#define SVC_UNKNOWN_1B 0x1b -#define SVC_CLOSE 0x00 +#define SVC_OPEN_SC_MAN 0x0f +#define SVC_ENUM_SVCS_STATUS 0x0e +#define SVC_QUERY_SVC_CONFIG 0x11 +#define SVC_QUERY_DISP_NAME 0x14 +#define SVC_CHANGE_SVC_CONFIG 0x0b +#define SVC_OPEN_SERVICE 0x10 +#define SVC_START_SERVICE 0x13 +#define SVC_STOP_SERVICE 0x01 +#define SVC_CLOSE 0x00 /* SVC_Q_OPEN_SC_MAN */ @@ -244,30 +244,45 @@ typedef struct r_svc_close_info } SVC_R_CLOSE; -/* SVC_Q_UNKNOWN_1B */ -typedef struct q_svc_unk_1b_info +/* SVC_Q_CHANGE_SVC_CONFIG */ +typedef struct q_svc_change_svc_cfg_info { - POLICY_HND pol; /* service policy handle */ - uint32 switch_value; /* 0x01 */ - uint32 unknown_1; /* 0x0000 0228 */ + POLICY_HND pol; + uint32 service_type; + uint32 start_type; + uint32 unknown_0; + uint32 error_control; + + uint32 ptr_bin_path_name; + UNISTR2 uni_bin_path_name; + + uint32 ptr_load_order_grp; + UNISTR2 uni_load_order_grp; + + uint32 tag_id; -} SVC_Q_UNKNOWN_1B; + uint32 ptr_dependencies; + UNISTR2 uni_dependencies; + + uint32 ptr_service_start_name; + UNISTR2 uni_service_start_name; + + uint32 ptr_password; + STRING2 str_password; -/* SVC_R_UNKNOWN_1B */ -typedef struct r_svc_unk_1b_info + uint32 ptr_display_name; + UNISTR2 uni_display_name; + +} SVC_Q_CHANGE_SVC_CONFIG; + +/* SVC_R_CHANGE_SVC_CONFIG */ +typedef struct r_svc_change_svc_cfg_info { - uint32 switch_value1; /* 0x01 */ - uint32 ptr; - uint32 switch_value2; /* 0x01 */ - uint32 unknown_1; /* 0x0000 0228 */ - uint32 num_items1; - uint32 *ptr_items; - uint32 num_items2; - uint32 **items; + uint32 unknown_0; /* */ + uint32 status; /* return status */ - uint32 status; +} SVC_R_CHANGE_SVC_CONFIG; -} SVC_R_UNKNOWN_1B; #endif /* _RPC_SVCCTL_H */ |