summaryrefslogtreecommitdiffstats
path: root/source3/include
diff options
context:
space:
mode:
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h8
-rw-r--r--source3/include/rpc_svcctl.h24
2 files changed, 32 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 75a1d55ac0d..ed314fa88e1 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2051,6 +2051,9 @@ BOOL svc_enum_svcs(struct cli_state *cli, uint16 fnum,
uint32 *buf_size, uint32 *resume_hnd,
uint32 *dos_error,
ENUM_SRVC_STATUS **svcs, uint32 *num_svcs);
+BOOL svc_stop_service(struct cli_state *cli, uint16 fnum,
+ POLICY_HND *hnd,
+ uint32 unknown);
BOOL svc_start_service(struct cli_state *cli, uint16 fnum,
POLICY_HND *hnd,
uint32 argc,
@@ -3059,6 +3062,10 @@ BOOL svc_io_q_open_service(char *desc, SVC_Q_OPEN_SERVICE *q_u, prs_struct *ps,
BOOL make_svc_r_open_service(SVC_R_OPEN_SERVICE *r_u, POLICY_HND *hnd,
uint32 status) ;
BOOL svc_io_r_open_service(char *desc, SVC_R_OPEN_SERVICE *r_u, prs_struct *ps, int depth);
+BOOL make_svc_q_stop_service(SVC_Q_STOP_SERVICE *q_c, POLICY_HND *hnd,
+ uint32 unk);
+BOOL svc_io_q_stop_service(char *desc, SVC_Q_STOP_SERVICE *q_s, prs_struct *ps, int depth);
+BOOL svc_io_r_stop_service(char *desc, SVC_R_STOP_SERVICE *r_s, prs_struct *ps, int depth);
BOOL make_svc_q_start_service(SVC_Q_START_SERVICE *q_c, POLICY_HND *hnd,
uint32 argc,
char **argv);
@@ -3322,6 +3329,7 @@ BOOL msrpc_svc_enum(struct client_info *info,
SVC_INFO_FN(info_fn),
SVC_QUERY_FN(query_fn));
void cmd_svc_enum(struct client_info *info);
+void cmd_svc_stop(struct client_info *info);
void cmd_svc_start(struct client_info *info);
/*The following definitions come from rpcclient/cmd_wkssvc.c */
diff --git a/source3/include/rpc_svcctl.h b/source3/include/rpc_svcctl.h
index e72f7df3761..e3b825fa530 100644
--- a/source3/include/rpc_svcctl.h
+++ b/source3/include/rpc_svcctl.h
@@ -32,6 +32,7 @@
#define SVC_QUERY_DISP_NAME 0x14
#define SVC_OPEN_SERVICE 0x10
#define SVC_START_SERVICE 0x13
+#define SVC_STOP_SERVICE 0x01
#define SVC_CLOSE 0x00
@@ -75,6 +76,29 @@ typedef struct r_svc_open_service_info
#define MAX_SVC_ARGS 10
+/* SVC_Q_STOP_SERVICE */
+typedef struct q_svc_stop_service_info
+{
+ POLICY_HND pol;
+
+ uint32 unknown;
+
+} SVC_Q_STOP_SERVICE;
+
+/* SVC_R_STOP_SERVICE */
+typedef struct r_svc_stop_service_info
+{
+ uint32 unknown0; /* 0x00000020 */
+ uint32 unknown1; /* 0x00000001 */
+ uint32 unknown2; /* 0x00000001 */
+ uint32 unknown3; /* 0x00000000 */
+ uint32 unknown4; /* 0x00000000 */
+ uint32 unknown5; /* 0x00000000 */
+ uint32 unknown6; /* 0x00000000 */
+ uint32 status;
+
+} SVC_R_STOP_SERVICE;
+
/* SVC_Q_START_SERVICE */
typedef struct q_svc_start_service_info
{