Rerun pidl.
[amitay/samba.git] / librpc / gen_ndr / svcctl.h
index 542bddad8bfe255790f5a9dd6720fd3b0c4b92b6..6ba0e4f3785ef8cc2f40a1c192c7e51466bedc77 100644 (file)
@@ -2,6 +2,8 @@
 
 #include <stdint.h>
 
+#include "libcli/util/ntstatus.h"
+
 #include "librpc/gen_ndr/misc.h"
 #include "librpc/gen_ndr/security.h"
 #ifndef _HEADER_svcctl
@@ -15,9 +17,7 @@
 #define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 )
 #define SERVICE_TYPE_WIN32_SHARE_PROCESS       ( 0x20 )
 #define SERVICE_TYPE_WIN32     ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
-#define SERVICE_STATE_ACTIVE   ( 0x01 )
-#define SERVICE_STATE_INACTIVE ( 0x02 )
-#define SERVICE_STATE_ALL      ( 0x03 )
+#define SERVICE_TYPE_INTERACTIVE_PROCESS       ( 0x100 )
 #define SV_TYPE_ALL    ( 0xFFFFFFFF )
 #define SC_MANAGER_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) )
 #define SC_MANAGER_EXECUTE_ACCESS      ( SC_MANAGER_READ_ACCESS )
@@ -33,9 +33,44 @@ struct SERVICE_LOCK_STATUS {
        uint32_t lock_duration;
 };
 
+enum svcctl_ServiceStatus
+#ifndef USE_UINT_ENUMS
+ {
+       SVCCTL_STATE_UNKNOWN=0x00000000,
+       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
+}
+#else
+ { __donnot_use_enum_svcctl_ServiceStatus=0x7FFFFFFF}
+#define SVCCTL_STATE_UNKNOWN ( 0x00000000 )
+#define SVCCTL_STOPPED ( 0x00000001 )
+#define SVCCTL_START_PENDING ( 0x00000002 )
+#define SVCCTL_STOP_PENDING ( 0x00000003 )
+#define SVCCTL_RUNNING ( 0x00000004 )
+#define SVCCTL_CONTINUE_PENDING ( 0x00000005 )
+#define SVCCTL_PAUSE_PENDING ( 0x00000006 )
+#define SVCCTL_PAUSED ( 0x00000007 )
+#endif
+;
+
+/* bitmap svcctl_ControlsAccepted */
+#define SVCCTL_ACCEPT_NONE ( 0x00000000 )
+#define SVCCTL_ACCEPT_STOP ( 0x00000001 )
+#define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 )
+#define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 )
+#define SVCCTL_ACCEPT_PARAMCHANGE ( 0x00000008 )
+#define SVCCTL_ACCEPT_NETBINDCHANGE ( 0x00000010 )
+#define SVCCTL_ACCEPT_HARDWAREPROFILECHANGE ( 0x00000020 )
+#define SVCCTL_ACCEPT_POWEREVENT ( 0x00000040 )
+
 struct SERVICE_STATUS {
        uint32_t type;
-       uint32_t state;
+       enum svcctl_ServiceStatus state;
        uint32_t controls_accepted;
        WERROR win32_exit_code;
        uint32_t service_exit_code;
@@ -43,11 +78,23 @@ struct SERVICE_STATUS {
        uint32_t wait_hint;
 };
 
-struct ENUM_SERVICE_STATUS {
+struct SERVICE_STATUS_PROCESS {
+       struct SERVICE_STATUS status;
+       uint32_t process_id;
+       uint32_t service_flags;
+}/* [public] */;
+
+struct ENUM_SERVICE_STATUSW {
+       const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       struct SERVICE_STATUS status;
+}/* [gensize,public] */;
+
+struct ENUM_SERVICE_STATUSA {
        const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
        const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
        struct SERVICE_STATUS status;
-};
+}/* [gensize,public] */;
 
 /* bitmap svcctl_ServerType */
 #define SV_TYPE_WORKSTATION ( 0x00000001 )
@@ -97,6 +144,57 @@ enum SERVICE_CONTROL
 #endif
 ;
 
+enum svcctl_ErrorControl
+#ifndef USE_UINT_ENUMS
+ {
+       SVCCTL_SVC_ERROR_IGNORE=0x00000000,
+       SVCCTL_SVC_ERROR_NORMAL=0x00000001,
+       SVCCTL_SVC_ERROR_CRITICAL=0x00000002,
+       SVCCTL_SVC_ERROR_SEVERE=0x00000003
+}
+#else
+ { __donnot_use_enum_svcctl_ErrorControl=0x7FFFFFFF}
+#define SVCCTL_SVC_ERROR_IGNORE ( 0x00000000 )
+#define SVCCTL_SVC_ERROR_NORMAL ( 0x00000001 )
+#define SVCCTL_SVC_ERROR_CRITICAL ( 0x00000002 )
+#define SVCCTL_SVC_ERROR_SEVERE ( 0x00000003 )
+#endif
+;
+
+enum svcctl_StartType
+#ifndef USE_UINT_ENUMS
+ {
+       SVCCTL_BOOT_START=0x00000000,
+       SVCCTL_SYSTEM_START=0x00000001,
+       SVCCTL_AUTO_START=0x00000002,
+       SVCCTL_DEMAND_START=0x00000003,
+       SVCCTL_DISABLED=0x00000004
+}
+#else
+ { __donnot_use_enum_svcctl_StartType=0x7FFFFFFF}
+#define SVCCTL_BOOT_START ( 0x00000000 )
+#define SVCCTL_SYSTEM_START ( 0x00000001 )
+#define SVCCTL_AUTO_START ( 0x00000002 )
+#define SVCCTL_DEMAND_START ( 0x00000003 )
+#define SVCCTL_DISABLED ( 0x00000004 )
+#endif
+;
+
+enum svcctl_ServiceState
+#ifndef USE_UINT_ENUMS
+ {
+       SERVICE_STATE_ACTIVE=0x00000001,
+       SERVICE_STATE_INACTIVE=0x00000002,
+       SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE)
+}
+#else
+ { __donnot_use_enum_svcctl_ServiceState=0x7FFFFFFF}
+#define SERVICE_STATE_ACTIVE ( 0x00000001 )
+#define SERVICE_STATE_INACTIVE ( 0x00000002 )
+#define SERVICE_STATE_ALL ( (SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) )
+#endif
+;
+
 /* bitmap svcctl_MgrAccessMask */
 #define SC_RIGHT_MGR_CONNECT ( 0x0001 )
 #define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 )
@@ -118,8 +216,8 @@ enum SERVICE_CONTROL
 
 struct QUERY_SERVICE_CONFIG {
        uint32_t service_type;
-       uint32_t start_type;
-       uint32_t error_control;
+       enum svcctl_StartType start_type;
+       enum svcctl_ErrorControl error_control;
        const char *executablepath;/* [unique,range(0,8192),charset(UTF16)] */
        const char *loadordergroup;/* [unique,range(0,8192),charset(UTF16)] */
        uint32_t tag_id;
@@ -128,6 +226,53 @@ struct QUERY_SERVICE_CONFIG {
        const char *displayname;/* [unique,range(0,8192),charset(UTF16)] */
 }/* [gensize,public] */;
 
+enum svcctl_ConfigLevel
+#ifndef USE_UINT_ENUMS
+ {
+       SERVICE_CONFIG_DESCRIPTION=0x00000001,
+       SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002
+}
+#else
+ { __donnot_use_enum_svcctl_ConfigLevel=0x7FFFFFFF}
+#define SERVICE_CONFIG_DESCRIPTION ( 0x00000001 )
+#define SERVICE_CONFIG_FAILURE_ACTIONS ( 0x00000002 )
+#endif
+;
+
+struct SERVICE_DESCRIPTION {
+       const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+}/* [gensize,public] */;
+
+enum SC_ACTION_TYPE
+#ifndef USE_UINT_ENUMS
+ {
+       SC_ACTION_NONE=0,
+       SC_ACTION_RESTART=1,
+       SC_ACTION_REBOOT=2,
+       SC_ACTION_RUN_COMMAND=3
+}
+#else
+ { __donnot_use_enum_SC_ACTION_TYPE=0x7FFFFFFF}
+#define SC_ACTION_NONE ( 0 )
+#define SC_ACTION_RESTART ( 1 )
+#define SC_ACTION_REBOOT ( 2 )
+#define SC_ACTION_RUN_COMMAND ( 3 )
+#endif
+;
+
+struct SC_ACTION {
+       enum SC_ACTION_TYPE type;
+       uint32_t delay;
+};
+
+struct SERVICE_FAILURE_ACTIONS {
+       uint32_t reset_period;
+       const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       uint32_t num_actions;/* [range(0,1024)] */
+       struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */
+}/* [gensize,public] */;
+
 enum svcctl_StatusLevel
 #ifndef USE_UINT_ENUMS
  {
@@ -284,8 +429,8 @@ struct svcctl_ChangeServiceConfigW {
        struct {
                struct policy_handle *handle;/* [ref] */
                uint32_t type;
-               uint32_t start;
-               uint32_t error;
+               enum svcctl_StartType start_type;
+               enum svcctl_ErrorControl error_control;
                const char *binary_path;/* [unique,charset(UTF16)] */
                const char *load_order_group;/* [unique,charset(UTF16)] */
                const char *dependencies;/* [unique,charset(UTF16)] */
@@ -309,8 +454,8 @@ struct svcctl_CreateServiceW {
                const char *DisplayName;/* [unique,charset(UTF16)] */
                uint32_t desired_access;
                uint32_t type;
-               uint32_t start_type;
-               uint32_t error_control;
+               enum svcctl_StartType start_type;
+               enum svcctl_ErrorControl error_control;
                const char *binary_path;/* [charset(UTF16)] */
                const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
                uint8_t *dependencies;/* [unique,size_is(dependencies_size)] */
@@ -351,15 +496,15 @@ struct svcctl_EnumServicesStatusW {
        struct {
                struct policy_handle *handle;/* [ref] */
                uint32_t type;
-               uint32_t state;
-               uint32_t buf_size;/* [range(0,262144)] */
+               enum svcctl_ServiceState state;
+               uint32_t buf_size;/* [range(0,0x40000)] */
                uint32_t *resume_handle;/* [unique] */
        } in;
 
        struct {
                uint8_t *service;/* [ref,size_is(buf_size)] */
-               uint32_t *bytes_needed;/* [ref,range(0,262144)] */
-               uint32_t *services_returned;/* [ref,range(0,262144)] */
+               uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+               uint32_t *services_returned;/* [ref,range(0,0x40000)] */
                uint32_t *resume_handle;/* [unique] */
                WERROR result;
        } out;
@@ -492,8 +637,8 @@ struct svcctl_ChangeServiceConfigA {
        struct {
                struct policy_handle *handle;/* [ref] */
                uint32_t type;
-               uint32_t start;
-               uint32_t error;
+               enum svcctl_StartType start_type;
+               enum svcctl_ErrorControl error_control;
                const char *binary_path;/* [unique,charset(UTF16)] */
                const char *load_order_group;/* [unique,charset(UTF16)] */
                const char *dependencies;/* [unique,charset(UTF16)] */
@@ -517,8 +662,8 @@ struct svcctl_CreateServiceA {
                const char *DisplayName;/* [unique,charset(UTF16)] */
                uint32_t desired_access;
                uint32_t type;
-               uint32_t start_type;
-               uint32_t error_control;
+               enum svcctl_StartType start_type;
+               enum svcctl_ErrorControl error_control;
                const char *binary_path;/* [unique,charset(UTF16)] */
                const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
                const char *dependencies;/* [unique,charset(UTF16)] */
@@ -542,7 +687,7 @@ struct svcctl_EnumDependentServicesA {
        } in;
 
        struct {
-               struct ENUM_SERVICE_STATUS *service_status;/* [unique] */
+               struct ENUM_SERVICE_STATUSA *service_status;/* [unique] */
                uint32_t *bytes_needed;/* [ref] */
                uint32_t *services_returned;/* [ref] */
                WERROR result;
@@ -555,7 +700,7 @@ struct svcctl_EnumServicesStatusA {
        struct {
                struct policy_handle *handle;/* [ref] */
                uint32_t type;
-               uint32_t state;
+               enum svcctl_ServiceState state;
                uint32_t buf_size;
                uint32_t *resume_handle;/* [unique] */
        } in;
@@ -723,7 +868,7 @@ struct svcctl_ChangeServiceConfig2W {
 struct svcctl_QueryServiceConfig2A {
        struct {
                struct policy_handle *handle;/* [ref] */
-               uint32_t info_level;
+               enum svcctl_ConfigLevel info_level;
                uint32_t buf_size;
        } in;
 
@@ -739,7 +884,7 @@ struct svcctl_QueryServiceConfig2A {
 struct svcctl_QueryServiceConfig2W {
        struct {
                struct policy_handle *handle;/* [ref] */
-               uint32_t info_level;
+               enum svcctl_ConfigLevel info_level;
                uint32_t buf_size;/* [range(0,8192)] */
        } in;
 
@@ -773,7 +918,7 @@ struct EnumServicesStatusExA {
                struct policy_handle *scmanager;/* [ref] */
                uint32_t info_level;
                uint32_t type;
-               uint32_t state;
+               enum svcctl_ServiceState state;
                uint32_t buf_size;
                uint32_t *resume_handle;/* [unique] */
        } in;
@@ -795,17 +940,17 @@ struct EnumServicesStatusExW {
                struct policy_handle *scmanager;/* [ref] */
                uint32_t info_level;
                uint32_t type;
-               uint32_t state;
-               uint32_t buf_size;/* [range(0,262144)] */
+               enum svcctl_ServiceState state;
+               uint32_t buf_size;/* [range(0,0x40000)] */
                const char *group_name;/* [unique,charset(UTF16)] */
-               uint32_t *resume_handle;/* [unique,range(0,262144)] */
+               uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
        } in;
 
        struct {
                uint8_t *services;/* [ref,size_is(buf_size)] */
-               uint32_t *bytes_needed;/* [ref,range(0,262144)] */
-               uint32_t *service_returned;/* [ref,range(0,262144)] */
-               uint32_t *resume_handle;/* [unique,range(0,262144)] */
+               uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+               uint32_t *service_returned;/* [ref,range(0,0x40000)] */
+               uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
                WERROR result;
        } out;