summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librpc/idl/svcctl.idl26
1 files changed, 24 insertions, 2 deletions
diff --git a/librpc/idl/svcctl.idl b/librpc/idl/svcctl.idl
index c70858fbd9..f804f91730 100644
--- a/librpc/idl/svcctl.idl
+++ b/librpc/idl/svcctl.idl
@@ -18,10 +18,32 @@ import "misc.idl", "security.idl";
uint32 lock_duration;
} SERVICE_LOCK_STATUS;
+ typedef [v1_enum] enum {
+ SVCCTL_STATE_UNKNOWN = 0x00000000, /* only used internally to smbd */
+ SVCCTL_STOPPED = 0x00000001,
+ SVCCTL_START_PENDING = 0x00000002,
+ SVCCTL_STOP_PENDING = 0x00000003,
+ SVCCTL_RUNNING = 0x00000004,
+ SVCCTL_CONTINUE_PENDING = 0x00000005,
+ SVCCTL_PAUSE_PENDING = 0x00000006,
+ SVCCTL_PAUSED = 0x00000007
+ } svcctl_ServiceStatus;
+
+ typedef [bitmap32bit] bitmap {
+ SVCCTL_ACCEPT_NONE = 0x00000000,
+ SVCCTL_ACCEPT_STOP = 0x00000001,
+ SVCCTL_ACCEPT_PAUSE_CONTINUE = 0x00000002,
+ SVCCTL_ACCEPT_SHUTDOWN = 0x00000004,
+ SVCCTL_ACCEPT_PARAMCHANGE = 0x00000008,
+ SVCCTL_ACCEPT_NETBINDCHANGE = 0x00000010,
+ SVCCTL_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020,
+ SVCCTL_ACCEPT_POWEREVENT = 0x00000040
+ } svcctl_ControlsAccepted;
+
typedef struct {
uint32 type;
- uint32 state;
- uint32 controls_accepted;
+ svcctl_ServiceStatus state;
+ svcctl_ControlsAccepted controls_accepted;
WERROR win32_exit_code;
uint32 service_exit_code;
uint32 check_point;