s3-build: add missing generated svcctl changes.
[ira/wip.git] / source3 / librpc / gen_ndr / svcctl.h
index 7314be0a33ee4a444e0fa7cafbefab44964ebca0..b098eb1c42f0f69997a81fc0d357ba5758553262 100644 (file)
@@ -2,6 +2,8 @@
 
 #include <stdint.h>
 
+#include "librpc/gen_ndr/misc.h"
+#include "librpc/gen_ndr/security.h"
 #ifndef _HEADER_svcctl
 #define _HEADER_svcctl
 
 #define SERVICE_STATE_INACTIVE ( 0x02 )
 #define SERVICE_STATE_ALL      ( 0x03 )
 #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 )
+#define SC_MANAGER_WRITE_ACCESS        ( (SEC_STD_REQUIRED|SC_MANAGER_READ_ACCESS|SC_RIGHT_MGR_CREATE_SERVICE|SC_RIGHT_MGR_LOCK|SC_RIGHT_MGR_MODIFY_BOOT_CONFIG) )
+#define SC_MANAGER_ALL_ACCESS  ( SC_MANAGER_WRITE_ACCESS )
+#define SERVICE_READ_ACCESS    ( (SEC_STD_READ_CONTROL|SC_RIGHT_SVC_ENUMERATE_DEPENDENTS|SC_RIGHT_SVC_INTERROGATE|SC_RIGHT_SVC_QUERY_CONFIG|SC_RIGHT_SVC_QUERY_STATUS|SC_RIGHT_SVC_USER_DEFINED_CONTROL) )
+#define SERVICE_EXECUTE_ACCESS ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) )
+#define SERVICE_WRITE_ACCESS   ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) )
+#define SERVICE_ALL_ACCESS     ( SERVICE_WRITE_ACCESS )
 struct SERVICE_LOCK_STATUS {
        uint32_t is_locked;
        const char *lock_owner;/* [unique,charset(UTF16)] */
@@ -79,6 +89,37 @@ enum SERVICE_CONTROL
 #endif
 ;
 
+/* bitmap svcctl_MgrAccessMask */
+#define SC_RIGHT_MGR_CONNECT ( 0x0001 )
+#define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 )
+#define SC_RIGHT_MGR_ENUMERATE_SERVICE ( 0x0004 )
+#define SC_RIGHT_MGR_LOCK ( 0x0008 )
+#define SC_RIGHT_MGR_QUERY_LOCK_STATUS ( 0x0010 )
+#define SC_RIGHT_MGR_MODIFY_BOOT_CONFIG ( 0x0020 )
+
+/* bitmap svcctl_ServiceAccessMask */
+#define SC_RIGHT_SVC_QUERY_CONFIG ( 0x0001 )
+#define SC_RIGHT_SVC_CHANGE_CONFIG ( 0x0002 )
+#define SC_RIGHT_SVC_QUERY_STATUS ( 0x0004 )
+#define SC_RIGHT_SVC_ENUMERATE_DEPENDENTS ( 0x0008 )
+#define SC_RIGHT_SVC_START ( 0x0010 )
+#define SC_RIGHT_SVC_STOP ( 0x0020 )
+#define SC_RIGHT_SVC_PAUSE_CONTINUE ( 0x0040 )
+#define SC_RIGHT_SVC_INTERROGATE ( 0x0080 )
+#define SC_RIGHT_SVC_USER_DEFINED_CONTROL ( 0x0100 )
+
+struct QUERY_SERVICE_CONFIG {
+       uint32_t service_type;
+       uint32_t start_type;
+       uint32_t error_control;
+       const char *executablepath;/* [unique,range(0,8192),charset(UTF16)] */
+       const char *loadordergroup;/* [unique,range(0,8192),charset(UTF16)] */
+       uint32_t tag_id;
+       const char *dependencies;/* [unique,range(0,8192),charset(UTF16)] */
+       const char *startname;/* [unique,range(0,8192),charset(UTF16)] */
+       const char *displayname;/* [unique,range(0,8192),charset(UTF16)] */
+}/* [gensize,public] */;
+
 
 struct svcctl_CloseServiceHandle {
        struct {
@@ -134,6 +175,14 @@ struct svcctl_LockServiceDatabase {
 
 struct svcctl_QueryServiceObjectSecurity {
        struct {
+               struct policy_handle *handle;/* [ref] */
+               uint32_t security_flags;
+               uint32_t buffer_size;/* [range(0,0x40000)] */
+       } in;
+
+       struct {
+               uint8_t *buffer;/* [ref,size_is(buffer_size)] */
+               uint32_t *needed;/* [ref,range(0,0x40000)] */
                WERROR result;
        } out;
 
@@ -141,6 +190,13 @@ struct svcctl_QueryServiceObjectSecurity {
 
 
 struct svcctl_SetServiceObjectSecurity {
+       struct {
+               struct policy_handle *handle;/* [ref] */
+               uint32_t security_flags;
+               uint8_t *buffer;/* [ref,size_is(buffer_size)] */
+               uint32_t buffer_size;
+       } in;
+
        struct {
                WERROR result;
        } out;
@@ -259,13 +315,13 @@ struct svcctl_EnumDependentServicesW {
        struct {
                struct policy_handle *service;/* [ref] */
                uint32_t state;
-               uint32_t buf_size;
+               uint32_t buf_size;/* [range(0,0x40000)] */
        } in;
 
        struct {
-               struct ENUM_SERVICE_STATUS *service_status;/* [unique] */
-               uint32_t *bytes_needed;/* [ref] */
-               uint32_t *services_returned;/* [ref] */
+               uint8_t *service_status;/* [ref,size_is(buf_size)] */
+               uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+               uint32_t *services_returned;/* [ref,range(0,0x40000)] */
                WERROR result;
        } out;
 
@@ -325,12 +381,12 @@ struct svcctl_OpenServiceW {
 struct svcctl_QueryServiceConfigW {
        struct {
                struct policy_handle *handle;/* [ref] */
-               uint32_t buf_size;
+               uint32_t buf_size;/* [range(0,8192)] */
        } in;
 
        struct {
-               uint8_t *query;
-               uint32_t *bytes_needed;/* [ref] */
+               struct QUERY_SERVICE_CONFIG *query;/* [ref] */
+               uint32_t *bytes_needed;/* [ref,range(0,8192)] */
                WERROR result;
        } out;