/* DO NOT EDIT
	This file was automatically generated by Pidl
	from svcctl.idl and svcctl.cnf.

	Pidl is a perl based IDL compiler for DCE/RPC idl files.
	It is maintained by the Samba team, not the Wireshark team.
	Instructions on how to download and install Pidl can be
	found at https://wiki.wireshark.org/Pidl
*/

#ifndef __PACKET_DCERPC_SVCCTL_H
#define __PACKET_DCERPC_SVCCTL_H

#define MAX_SERVICE_NAME_LENGTH	( 256 )

#define SC_MAX_DEPEND_SIZE	( 4*1024 )

#define SC_MAX_NAME_LENGTH	( MAX_SERVICE_NAME_LENGTH+1 )

#define SC_MAX_PATH_LENGTH	( 32*1024 )

#define SC_MAX_PWD_SIZE	( 514 )

#define SC_MAX_COMPUTER_NAME_LENGTH	( 1024 )

#define SC_MAX_ACCOUNT_NAME_LENGTH	( 2*1024 )

#define SC_MAX_COMMENT_LENGTH	( 128 )

#define SC_MAX_ARGUMENT_LENGTH	( 1024 )

#define SC_MAX_ARGUMENTS	( 1024 )

#define SVCCTL_ACCEPT_NONE	( 0x00000000 )

#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 )

#define SC_MAX_ARGUMENT_LENGTH	( 1024 )

#define SC_MAX_ARGUMENTS	( 1024 )

int svcctl_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
#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)
extern const value_string svcctl_svcctl_ServiceStatus_vals[];
int svcctl_dissect_enum_ServiceStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#define SERVICE_TYPE_KERNEL_DRIVER (0x00000001)
#define SERVICE_TYPE_FS_DRIVER (0x00000002)
#define SERVICE_TYPE_ADAPTER (0x00000004)
#define SERVICE_TYPE_RECOGNIZER_DRIVER (0x00000008)
#define SERVICE_TYPE_DRIVER (SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER)
#define SERVICE_TYPE_WIN32_OWN_PROCESS (0x00000010)
#define SERVICE_TYPE_WIN32_SHARE_PROCESS (0x00000020)
#define SERVICE_TYPE_USER_OWN_PROCESS (0x00000050)
#define SERVICE_TYPE_USER_SHARE_PROCESS (0x00000060)
#define SERVICE_TYPE_WIN32 (SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS)
#define SERVICE_TYPE_INTERACTIVE_PROCESS (0x00000100)
extern const value_string svcctl_svcctl_ServiceType_vals[];
int svcctl_dissect_enum_ServiceType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
int svcctl_dissect_bitmap_ControlsAccepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_SERVICE_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
#define SERVICE_RUNS_IN_NONSYSTEM_ORNOTRUNNING (0x00000000)
#define SERVICE_RUNS_IN_SYSTEM_PROCESS (0x00000001)
extern const value_string svcctl_svcctl_ServiceFlags_vals[];
int svcctl_dissect_enum_ServiceFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
int svcctl_dissect_struct_SERVICE_STATUS_PROCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
#define SVCCTL_CONTROL_STOP (0x00000001)
#define SVCCTL_CONTROL_PAUSE (0x00000002)
#define SVCCTL_CONTROL_CONTINUE (0x00000003)
#define SVCCTL_CONTROL_INTERROGATE (0x00000004)
#define SVCCTL_CONTROL_SHUTDOWN (0x00000005)
#define SERVICE_CONTROL_PARAMCHANGE (0x00000006)
#define SERVICE_CONTROL_NETBINDADD (0x00000007)
#define SERVICE_CONTROL_NETBINDREMOVE (0x00000008)
#define SERVICE_CONTROL_NETBINDENABLE (0x00000009)
#define SERVICE_CONTROL_NETBINDDISABLE (0x0000000A)
extern const value_string svcctl_SERVICE_CONTROL_vals[];
int svcctl_dissect_enum_SERVICE_CONTROL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#define SVCCTL_SVC_ERROR_IGNORE (0x00000000)
#define SVCCTL_SVC_ERROR_NORMAL (0x00000001)
#define SVCCTL_SVC_ERROR_CRITICAL (0x00000002)
#define SVCCTL_SVC_ERROR_SEVERE (0x00000003)
extern const value_string svcctl_svcctl_ErrorControl_vals[];
int svcctl_dissect_enum_ErrorControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#define SVCCTL_BOOT_START (0x00000000)
#define SVCCTL_SYSTEM_START (0x00000001)
#define SVCCTL_AUTO_START (0x00000002)
#define SVCCTL_DEMAND_START (0x00000003)
#define SVCCTL_DISABLED (0x00000004)
extern const value_string svcctl_svcctl_StartType_vals[];
int svcctl_dissect_enum_StartType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#define SERVICE_STATE_ACTIVE (0x00000001)
#define SERVICE_STATE_INACTIVE (0x00000002)
#define SERVICE_STATE_ALL ((SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE))
extern const value_string svcctl_svcctl_ServiceState_vals[];
int svcctl_dissect_enum_ServiceState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
int svcctl_dissect_bitmap_MgrAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_bitmap_ServiceAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_ArgumentString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
int svcctl_dissect_struct_ArgumentStringA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_);
#define SERVICE_CONFIG_DESCRIPTION (0x00000001)
#define SERVICE_CONFIG_FAILURE_ACTIONS (0x00000002)
extern const value_string svcctl_svcctl_ConfigLevel_vals[];
int svcctl_dissect_enum_ConfigLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#define SVC_STATUS_PROCESS_INFO (0x00000000)
extern const value_string svcctl_svcctl_StatusLevel_vals[];
int svcctl_dissect_enum_StatusLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_);
#endif /* __PACKET_DCERPC_SVCCTL_H */
