X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=source3%2Finclude%2Frpc_svcctl.h;h=c32ba87ba96e917f977b84905398f41f94316fad;hp=0a98496c799b0d7104d9bdf2d4a0566e9ffa3643;hb=517aade8bd6759124ef7c2d9bc0f7059327de36c;hpb=8308c000b2022769644ed8ea1fc772776257c99b diff --git a/source3/include/rpc_svcctl.h b/source3/include/rpc_svcctl.h index 0a98496c799..c32ba87ba96 100644 --- a/source3/include/rpc_svcctl.h +++ b/source3/include/rpc_svcctl.h @@ -26,27 +26,157 @@ /* svcctl pipe */ -#define SVC_OPEN_POLICY 0x0f -#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_OPEN_SERVICE 0x10 +#define SVC_CLOSE 0x00 -/* SVC_Q_OPEN_POLICY */ -typedef struct q_svc_open_pol_info +/* SVC_Q_OPEN_SC_MAN */ +typedef struct q_svc_open_sc_man_info { uint32 ptr_srv_name; /* pointer (to server name?) */ UNISTR2 uni_srv_name; /* unicode server name starting with '\\' */ - uint32 unknown; /* unknown */ + uint32 ptr_db_name; /* pointer (to database name?) */ + UNISTR2 uni_db_name; /* unicode database name */ -} SVC_Q_OPEN_POLICY; + uint32 des_access; /* 0x80000004 - SC_MANAGER_xxxx */ -/* SVC_R_OPEN_POLICY */ -typedef struct r_svc_open_pol_info +} SVC_Q_OPEN_SC_MAN; + +/* SVC_R_OPEN_SC_MAN */ +typedef struct r_svc_open_sc_man_info +{ + POLICY_HND pol; + uint32 status; /* return status */ + +} SVC_R_OPEN_SC_MAN; + +/* SVC_Q_OPEN_SERVICE */ +typedef struct q_svc_open_service_info +{ + POLICY_HND scman_pol; + UNISTR2 uni_svc_name; /* unicode service name */ + uint32 des_access; /* 0x8000 0001 */ + +} SVC_Q_OPEN_SERVICE; + +/* SVC_R_OPEN_SERVICE */ +typedef struct r_svc_open_service_info +{ + POLICY_HND pol; + uint32 status; /* return status */ + +} SVC_R_OPEN_SERVICE; + + +/* QUERY_SERVICE_CONFIG */ +typedef struct query_service_config_info +{ + uint32 service_type; + uint32 start_type; + uint32 error_control; + uint32 ptr_bin_path_name; + uint32 ptr_load_order_grp; + uint32 tag_id; + uint32 ptr_dependencies; + uint32 ptr_service_start_name; + uint32 ptr_display_name; + + UNISTR2 uni_bin_path_name; + UNISTR2 uni_load_order_grp; + UNISTR2 uni_dependencies; + UNISTR2 uni_service_start_name; + UNISTR2 uni_display_name; + +} QUERY_SERVICE_CONFIG; + +/* SVC_STATUS */ +typedef struct svc_status_info +{ + uint32 svc_type; + uint32 current_state; + uint32 controls_accepted; + uint32 win32_exit_code; + uint32 svc_specific_exit_code; + uint32 check_point; + uint32 wait_hint; + +} SVC_STATUS; + +/* ENUM_SRVC_STATUS */ +typedef struct enum_svc_status_info +{ + UNISTR uni_srvc_name; + UNISTR uni_disp_name; + SVC_STATUS status; + +} ENUM_SRVC_STATUS; + +/* SVC_Q_ENUM_SVCS_STATUS */ +typedef struct q_svc_enum_svcs_status_info { POLICY_HND pol; + uint32 service_type; /* 0x00000030 - win32 | 0x0000000b - driver */ + uint32 service_state; /* 0x00000003 - state_all */ + uint32 buf_size; /* max service buffer size */ + ENUM_HND resume_hnd; /* resume handle */ + +} SVC_Q_ENUM_SVCS_STATUS; + +/* SVC_R_ENUM_SVCS_STATUS */ +typedef struct r_svc_enum_svcs_status_info +{ + uint32 buf_size; /* service buffer size */ + ENUM_SRVC_STATUS *svcs; + uint32 more_buf_size; + uint32 num_svcs; + ENUM_HND resume_hnd; /* resume handle */ + uint32 dos_status; /* return status, DOS error code (wow!) */ + +} SVC_R_ENUM_SVCS_STATUS; + + +/* SVC_Q_QUERY_SVC_CONFIG */ +typedef struct q_svc_query_svc_cfg_info +{ + POLICY_HND pol; + uint32 buf_size; + +} SVC_Q_QUERY_SVC_CONFIG; + + +/* SVC_R_QUERY_SVC_CONFIG */ +typedef struct r_svc_query_svc_cfg_info +{ + QUERY_SERVICE_CONFIG *cfg; + uint32 buf_size; uint32 status; /* return status */ -} SVC_R_OPEN_POLICY; +} SVC_R_QUERY_SVC_CONFIG; + + +/* SVC_Q_QUERY_DISP_NAME */ +typedef struct q_svc_query_disp_name_info +{ + POLICY_HND scman_pol; + UNISTR2 uni_svc_name; + uint32 buf_size; + +} SVC_Q_QUERY_DISP_NAME; + + +/* SVC_R_QUERY_DISP_NAME */ +typedef struct r_svc_query_disp_name_info +{ + UNISTR2 uni_disp_name; + uint32 buf_size; + uint32 status; + +} SVC_R_QUERY_DISP_NAME; /* SVC_Q_CLOSE */