svcctl

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const MaxAccountNameLength = 0x0800

MaxAccountNameLength represents the SC_MAX_ACCOUNT_NAME_LENGTH RPC constant

View Source
const MaxArgumentLength = 0x0400

MaxArgumentLength represents the SC_MAX_ARGUMENT_LENGTH RPC constant

View Source
const MaxArguments = 0x0400

MaxArguments represents the SC_MAX_ARGUMENTS RPC constant

View Source
const MaxCommentLength = 0x0080

MaxCommentLength represents the SC_MAX_COMMENT_LENGTH RPC constant

View Source
const MaxComputerNameLength = 0x0400

MaxComputerNameLength represents the SC_MAX_COMPUTER_NAME_LENGTH RPC constant

View Source
const MaxDependSize = 0x1000

MaxDependSize represents the SC_MAX_DEPEND_SIZE RPC constant

View Source
const MaxNameLength = 0x0101

MaxNameLength represents the SC_MAX_NAME_LENGTH RPC constant

View Source
const MaxPathLength = 0x8000

MaxPathLength represents the SC_MAX_PATH_LENGTH RPC constant

View Source
const MaxPwdSize = 0x0202

MaxPwdSize represents the SC_MAX_PWD_SIZE RPC constant

View Source
const MaxServiceNameLength = 0x00000100

MaxServiceNameLength represents the MAX_SERVICE_NAME_LENGTH RPC constant

Variables

View Source
var (
	// Syntax UUID
	SvcctlSyntaxUUID = &uuid.UUID{TimeLow: 0x367abb81, TimeMid: 0x9844, TimeHiAndVersion: 0x35f1, ClockSeqHiAndReserved: 0xad, ClockSeqLow: 0x32, Node: [6]uint8{0x98, 0xf0, 0x38, 0x0, 0x10, 0x3}}
	// Syntax ID
	SvcctlSyntaxV2_0 = &dcerpc.SyntaxID{IfUUID: SvcctlSyntaxUUID, IfVersionMajor: 2, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "scmr"
)

Functions

func NewSvcctlServerHandle

func NewSvcctlServerHandle(o SvcctlServer) dcerpc.ServerHandle

func RegisterSvcctlServer

func RegisterSvcctlServer(conn dcerpc.Conn, o SvcctlServer, opts ...dcerpc.Option)

func SvcctlServerHandle

func SvcctlServerHandle(ctx context.Context, o SvcctlServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

Types

type Action

type Action struct {
	// Type:  The action to be performed. This member MUST be one of the values from the
	// SC_ACTION_TYPE (section 2.2.18) enumeration.
	Type ActionType `idl:"name:Type" json:"type"`
	// Delay:  The time, in milliseconds, to wait before performing the specified action.
	Delay uint32 `idl:"name:Delay" json:"delay"`
}

Action structure represents SC_ACTION RPC structure.

The SC_ACTION structure defines an action that the SCM can perform.

func (*Action) MarshalNDR

func (o *Action) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Action) UnmarshalNDR

func (o *Action) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ActionType

type ActionType uint32

ActionType type represents SC_ACTION_TYPE RPC enumeration.

The SC_ACTION_TYPE enumeration specifies action levels for the Type member of the SC_ACTION structure.

var (
	// SC_ACTION_NONE:  No action.
	ActionTypeNone ActionType = 0
	// SC_ACTION_RESTART:  Restart the service.
	ActionTypeRestart ActionType = 1
	// SC_ACTION_REBOOT:  Reboot the computer.
	ActionTypeReboot ActionType = 2
	// SC_ACTION_RUN_COMMAND:  Run a command.
	ActionTypeRunCommand ActionType = 3
)

func (ActionType) String

func (o ActionType) String() string

type ChangeServiceConfig2ARequest

type ChangeServiceConfig2ARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_CHANGE_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// Info: An SC_RPC_CONFIG_INFOA (section 2.2.21) structure that contains optional configuration
	// information.
	Info *ConfigInfoA `idl:"name:Info" json:"info"`
}

ChangeServiceConfig2ARequest structure represents the RChangeServiceConfig2A operation request

func (*ChangeServiceConfig2ARequest) MarshalNDR

func (*ChangeServiceConfig2ARequest) UnmarshalNDR

func (o *ChangeServiceConfig2ARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfig2AResponse

type ChangeServiceConfig2AResponse struct {
	// Return: The RChangeServiceConfig2A return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ChangeServiceConfig2AResponse structure represents the RChangeServiceConfig2A operation response

func (*ChangeServiceConfig2AResponse) MarshalNDR

func (*ChangeServiceConfig2AResponse) UnmarshalNDR

func (o *ChangeServiceConfig2AResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfig2WRequest

type ChangeServiceConfig2WRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_CHANGE_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// Info: An SC_RPC_CONFIG_INFOW (section 2.2.22) structure that contains optional configuration
	// information.
	Info *ConfigInfoW `idl:"name:Info" json:"info"`
}

ChangeServiceConfig2WRequest structure represents the RChangeServiceConfig2W operation request

func (*ChangeServiceConfig2WRequest) MarshalNDR

func (*ChangeServiceConfig2WRequest) UnmarshalNDR

func (o *ChangeServiceConfig2WRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfig2WResponse

type ChangeServiceConfig2WResponse struct {
	// Return: The RChangeServiceConfig2W return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ChangeServiceConfig2WResponse structure represents the RChangeServiceConfig2W operation response

func (*ChangeServiceConfig2WResponse) MarshalNDR

func (*ChangeServiceConfig2WResponse) UnmarshalNDR

func (o *ChangeServiceConfig2WResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfigARequest

type ChangeServiceConfigARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_CHANGE_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwServiceType: A Type value for the service record (section 3.1.1) that specifies
	// the type of service. This MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF           | Service type does not change.                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following flag can also be combined with the value passed in dwServiceType.
	//
	//	+----------------------------------------+--------------------------------------------+
	//	|                                        |                                            |
	//	|                 VALUE                  |                  MEANING                   |
	//	|                                        |                                            |
	//	+----------------------------------------+--------------------------------------------+
	//	+----------------------------------------+--------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop. |
	//	+----------------------------------------+--------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A Start value for the service record (section 3.1.1) that specifies
	// when to start the service. This MUST be one of the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF    | Service start type does not change.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: An ErrorControl value for the service record (section 3.1.1) that
	// specifies the severity of the error if the service fails to start and determines
	// the action that the SCM takes. This MUST be one of the following values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF      | Service error control type does not change.                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: An ImagePath value for the service record (section 3.1.1) as a
	// pointer to a null-terminated ANSI string that contains the fully qualified path to
	// the service binary file. The path MAY include arguments. If the path contains a space,
	// it MUST be quoted so that it is correctly interpreted. For example, "d:\\my share\\myservice.exe"
	// is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string;pointer:unique" json:"binary_path_name"`
	// lpLoadOrderGroup: A Group value for the service record (section 3.1.1) as a pointer
	// to a null-terminated ANSI string that names the load ordering group of which this
	// service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A Tag value for the service record (section 3.1.1) as a pointer to a variable
	// that receives a tag value. The value is unique to the group specified in the lpLoadOrderGroup
	// parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: DependOnSize and DependOnGroup values for the service record (section
	// 3.1.1) as a pointer to an array of null-separated names of services or load ordering
	// groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is ANSI. Dependency on a service means that this service can only run
	// if the service it depends on is running. Dependency on a group means that this service
	// can run if at least one member of the group is running after an attempt to start
	// all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the lpDependencies parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: An ObjectName value for the service record (section 3.1.1) as
	// a pointer to a null-terminated ANSI string that specifies the name of the account
	// under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A Password value for the service record (section 3.1.1) as a pointer
	// to a null-terminated ANSI string that contains the password of the account whose
	// name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
	// lpDisplayName: A DisplayName value for the service record (section 3.1.1) as a pointer
	// to a null-terminated ANSI string that contains the display name that applications
	// can use to identify the service for its users.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
}

ChangeServiceConfigARequest structure represents the RChangeServiceConfigA operation request

func (*ChangeServiceConfigARequest) MarshalNDR

func (*ChangeServiceConfigARequest) UnmarshalNDR

func (o *ChangeServiceConfigARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfigAResponse

type ChangeServiceConfigAResponse struct {
	// lpdwTagId: A Tag value for the service record (section 3.1.1) as a pointer to a variable
	// that receives a tag value. The value is unique to the group specified in the lpLoadOrderGroup
	// parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// Return: The RChangeServiceConfigA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ChangeServiceConfigAResponse structure represents the RChangeServiceConfigA operation response

func (*ChangeServiceConfigAResponse) MarshalNDR

func (*ChangeServiceConfigAResponse) UnmarshalNDR

func (o *ChangeServiceConfigAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfigWRequest

type ChangeServiceConfigWRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_CHANGE_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwServiceType: A Type value for the service record (section 3.1.1) that specifies
	// the type of service. This MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF           | Service type does not change.                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following flag can also be combined with the value passed in dwServiceStartType:
	//
	//	+----------------------------------------+--------------------------------------------+
	//	|                                        |                                            |
	//	|                 VALUE                  |                  MEANING                   |
	//	|                                        |                                            |
	//	+----------------------------------------+--------------------------------------------+
	//	+----------------------------------------+--------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop. |
	//	+----------------------------------------+--------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A Start value for the service record (section 3.1.1) that specifies
	// when to start the service. This MUST be one of the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF    | Service start type does not change.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: An ErrorControl value for the service record (section 3.1.1) that
	// specifies the severity of the error if the service fails to start and determines
	// the action that the SCM takes. MUST be one of the following values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error and displays a message box, but continues the startup     |
	//	|                                   | operation.                                                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_NO_CHANGE 0xFFFFFFFF      | Service error control type does not change.                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: An ImagePath value for the service record (section 3.1.1) as a
	// pointer to a null-terminated UNICODE string name. The pointer contains the fully
	// qualified path to the service binary file. The path MAY include arguments. If the
	// path contains a space, it MUST be quoted so that it is correctly interpreted. For
	// example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string;pointer:unique" json:"binary_path_name"`
	// lpLoadOrderGroup: A Group value for the service record (section 3.1.1) as a pointer
	// to a null-terminated UNICODE string that names the load-ordering group of which this
	// service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A Tag value for the service record (section 3.1.1) as a pointer to a variable
	// that receives a tag value. The value is unique to the group specified in the lpLoadOrderGroup
	// parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: DependOnService and DependOnGroup values for the service record (section
	// 3.1.1) as a pointer to an array of null-separated names of services or load ordering
	// groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is Unicode. Dependency on a service means that this service can only
	// run if the service it depends on is running. Dependency on a group means that this
	// service can run if at least one member of the group is running after an attempt to
	// start all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the lpDependencies parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: An ObjectName value for the service record (section 3.1.1) as
	// a pointer to a null-terminated UNICODE string that specifies the name of the account
	// under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A Password value for the service record (section 3.1.1) as a pointer
	// to a null-terminated UNICODE string that contains the password of the account whose
	// name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
	// lpDisplayName: A DisplayName value for the service record (section 3.1.1) as a pointer
	// to a null-terminated UNICODE string that contains the display name that applications
	// can use to identify the service for its users.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
}

ChangeServiceConfigWRequest structure represents the RChangeServiceConfigW operation request

func (*ChangeServiceConfigWRequest) MarshalNDR

func (*ChangeServiceConfigWRequest) UnmarshalNDR

func (o *ChangeServiceConfigWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ChangeServiceConfigWResponse

type ChangeServiceConfigWResponse struct {
	// lpdwTagId: A Tag value for the service record (section 3.1.1) as a pointer to a variable
	// that receives a tag value. The value is unique to the group specified in the lpLoadOrderGroup
	// parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// Return: The RChangeServiceConfigW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ChangeServiceConfigWResponse structure represents the RChangeServiceConfigW operation response

func (*ChangeServiceConfigWResponse) MarshalNDR

func (*ChangeServiceConfigWResponse) UnmarshalNDR

func (o *ChangeServiceConfigWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CloseNotifyRequest

type CloseNotifyRequest struct {
	// phNotify: An SC_NOTIFY_RPC_HANDLE (section 2.2.6) data type that defines a handle
	// to the notification status associated with the client. This is the handle returned
	// by an RNotifyServiceStatusChange call.
	Notify *Notify `idl:"name:phNotify" json:"notify"`
}

CloseNotifyRequest structure represents the RCloseNotifyHandle operation request

func (*CloseNotifyRequest) MarshalNDR

func (o *CloseNotifyRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseNotifyRequest) UnmarshalNDR

func (o *CloseNotifyRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CloseNotifyResponse

type CloseNotifyResponse struct {
	// phNotify: An SC_NOTIFY_RPC_HANDLE (section 2.2.6) data type that defines a handle
	// to the notification status associated with the client. This is the handle returned
	// by an RNotifyServiceStatusChange call.
	Notify *Notify `idl:"name:phNotify" json:"notify"`
	// pfApcFired: Not used.
	ApcFired bool `idl:"name:pfApcFired" json:"apc_fired"`
	// Return: The RCloseNotifyHandle return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CloseNotifyResponse structure represents the RCloseNotifyHandle operation response

func (*CloseNotifyResponse) MarshalNDR

func (o *CloseNotifyResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseNotifyResponse) UnmarshalNDR

func (o *CloseNotifyResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CloseServiceRequest

type CloseServiceRequest struct {
	// hSCObject: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// a service record or to the SCM database that MUST have been created previously using
	// one of the open methods specified in section 3.1.4.
	ServiceObject *Handle `idl:"name:hSCObject" json:"service_object"`
}

CloseServiceRequest structure represents the RCloseServiceHandle operation request

func (*CloseServiceRequest) MarshalNDR

func (o *CloseServiceRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseServiceRequest) UnmarshalNDR

func (o *CloseServiceRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CloseServiceResponse

type CloseServiceResponse struct {
	// hSCObject: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// a service record or to the SCM database that MUST have been created previously using
	// one of the open methods specified in section 3.1.4.
	ServiceObject *Handle `idl:"name:hSCObject" json:"service_object"`
	// Return: The RCloseServiceHandle return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CloseServiceResponse structure represents the RCloseServiceHandle operation response

func (*CloseServiceResponse) MarshalNDR

func (o *CloseServiceResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseServiceResponse) UnmarshalNDR

func (o *CloseServiceResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ConfigInfoA

type ConfigInfoA struct {
	// dwInfoLevel:  A DWORD value that indicates the type of configuration information
	// in the included data.
	InfoLevel   uint32                   `idl:"name:dwInfoLevel" json:"info_level"`
	ConfigInfoA *ConfigInfoA_ConfigInfoA `idl:"name:ConfigInfoA;switch_is:dwInfoLevel" json:"config_info_a"`
}

ConfigInfoA structure represents SC_RPC_CONFIG_INFOA RPC structure.

The SC_RPC_CONFIG_INFOA structure defines the service configuration based on a supplied level. String values are stored in ANSI.

func (*ConfigInfoA) MarshalNDR

func (o *ConfigInfoA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA) UnmarshalNDR

func (o *ConfigInfoA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_ConfigInfoA

type ConfigInfoA_ConfigInfoA struct {
	// Types that are assignable to Value
	//
	// *ConfigInfoA_Description
	// *ConfigInfoA_FailureActions
	// *ConfigInfoA_DelayedAutoStart
	// *ConfigInfoA_FailureActionsFlag
	// *ConfigInfoA_SIDInfo
	// *ConfigInfoA_RequiredPrivileges
	// *ConfigInfoA_Preshutdown
	// *ConfigInfoA_TriggerInfo
	// *ConfigInfoA_PreferredNode
	Value is_ConfigInfoA_ConfigInfoA `json:"value"`
}

ConfigInfoA_ConfigInfoA structure represents SC_RPC_CONFIG_INFOA union anonymous member.

The SC_RPC_CONFIG_INFOA structure defines the service configuration based on a supplied level. String values are stored in ANSI.

func (*ConfigInfoA_ConfigInfoA) GetValue

func (o *ConfigInfoA_ConfigInfoA) GetValue() any

func (*ConfigInfoA_ConfigInfoA) MarshalUnionNDR

func (o *ConfigInfoA_ConfigInfoA) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ConfigInfoA_ConfigInfoA) NDRSwitchValue

func (o *ConfigInfoA_ConfigInfoA) NDRSwitchValue(sw uint32) uint32

func (*ConfigInfoA_ConfigInfoA) UnmarshalUnionNDR

func (o *ConfigInfoA_ConfigInfoA) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ConfigInfoA_DelayedAutoStart

type ConfigInfoA_DelayedAutoStart struct {
	// psda:  A structure that defines whether or not the service is part of the delayed
	// start group, as specified in section 2.2.33.
	DelayedAutoStart *ServiceDelayedAutoStartInfo `idl:"name:psda" json:"delayed_auto_start"`
}

ConfigInfoA_DelayedAutoStart structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 3

func (*ConfigInfoA_DelayedAutoStart) MarshalNDR

func (*ConfigInfoA_DelayedAutoStart) UnmarshalNDR

func (o *ConfigInfoA_DelayedAutoStart) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_Description

type ConfigInfoA_Description struct {
	// psd:  A structure that contains a description of the service, as specified in section
	// 2.2.34.
	//
	// The following structures SHOULD<2> be available:
	Description *ServiceDescriptionA `idl:"name:psd" json:"description"`
}

ConfigInfoA_Description structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 1

func (*ConfigInfoA_Description) MarshalNDR

func (o *ConfigInfoA_Description) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_Description) UnmarshalNDR

func (o *ConfigInfoA_Description) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_FailureActions

type ConfigInfoA_FailureActions struct {
	// psfa:  A structure that contains a list of failure actions, as specified in section
	// 2.2.39.
	FailureActions *ServiceFailureActionsA `idl:"name:psfa" json:"failure_actions"`
}

ConfigInfoA_FailureActions structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 2

func (*ConfigInfoA_FailureActions) MarshalNDR

func (o *ConfigInfoA_FailureActions) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_FailureActions) UnmarshalNDR

func (o *ConfigInfoA_FailureActions) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_FailureActionsFlag

type ConfigInfoA_FailureActionsFlag struct {
	// psfaf:  A structure that defines if failure actions are queued when the service exits
	// with a nonzero error code, as specified in section 2.2.41.
	FailureActionsFlag *ServiceFailureActionsFlag `idl:"name:psfaf" json:"failure_actions_flag"`
}

ConfigInfoA_FailureActionsFlag structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 4

func (*ConfigInfoA_FailureActionsFlag) MarshalNDR

func (*ConfigInfoA_FailureActionsFlag) UnmarshalNDR

type ConfigInfoA_PreferredNode

type ConfigInfoA_PreferredNode struct {
	// pspn:  A structure that defines the preferred node information for the service, as
	// specified in section 2.2.55.
	PreferredNode *ServicePreferredNodeInfo `idl:"name:pspn" json:"preferred_node"`
}

ConfigInfoA_PreferredNode structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 9

func (*ConfigInfoA_PreferredNode) MarshalNDR

func (o *ConfigInfoA_PreferredNode) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_PreferredNode) UnmarshalNDR

func (o *ConfigInfoA_PreferredNode) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_Preshutdown

type ConfigInfoA_Preshutdown struct {
	// psps:  A structure that defines the pre-shutdown settings for the service, as specified
	// in section 2.2.45.
	Preshutdown *ServicePreshutdownInfo `idl:"name:psps" json:"preshutdown"`
}

ConfigInfoA_Preshutdown structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 7

func (*ConfigInfoA_Preshutdown) MarshalNDR

func (o *ConfigInfoA_Preshutdown) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_Preshutdown) UnmarshalNDR

func (o *ConfigInfoA_Preshutdown) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_RequiredPrivileges

type ConfigInfoA_RequiredPrivileges struct {
	// psrp:  A structure that defines the privileges required by the service, as specified
	// in section 2.2.48.
	RequiredPrivileges *RequiredPrivilegesInfo `idl:"name:psrp" json:"required_privileges"`
}

ConfigInfoA_RequiredPrivileges structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 6

func (*ConfigInfoA_RequiredPrivileges) MarshalNDR

func (*ConfigInfoA_RequiredPrivileges) UnmarshalNDR

type ConfigInfoA_SIDInfo

type ConfigInfoA_SIDInfo struct {
	// pssid:  A structure that defines the type of service SID, as specified in section
	// 2.2.46.
	SIDInfo *ServiceSIDInfo `idl:"name:pssid" json:"sid_info"`
}

ConfigInfoA_SIDInfo structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 5

func (*ConfigInfoA_SIDInfo) MarshalNDR

func (o *ConfigInfoA_SIDInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_SIDInfo) UnmarshalNDR

func (o *ConfigInfoA_SIDInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoA_TriggerInfo

type ConfigInfoA_TriggerInfo struct {
	// psti:  A structure that defines the trigger settings for the service, as specified
	// in section 2.2.54.
	TriggerInfo *ServiceTriggerInfo `idl:"name:psti" json:"trigger_info"`
}

ConfigInfoA_TriggerInfo structure represents ConfigInfoA_ConfigInfoA RPC union arm.

It has following labels: 8

func (*ConfigInfoA_TriggerInfo) MarshalNDR

func (o *ConfigInfoA_TriggerInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoA_TriggerInfo) UnmarshalNDR

func (o *ConfigInfoA_TriggerInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW

type ConfigInfoW struct {
	// dwInfoLevel:  A value that indicates the type of configuration information in the
	// included data.
	InfoLevel   uint32                   `idl:"name:dwInfoLevel" json:"info_level"`
	ConfigInfoW *ConfigInfoW_ConfigInfoW `idl:"name:ConfigInfoW;switch_is:dwInfoLevel" json:"config_info_w"`
}

ConfigInfoW structure represents SC_RPC_CONFIG_INFOW RPC structure.

The SC_RPC_CONFIG_INFOW structure SHOULD<3> define, based on a supplied level, either the service configuration or a list of failure actions. String values are stored as Unicode.

func (*ConfigInfoW) MarshalNDR

func (o *ConfigInfoW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW) UnmarshalNDR

func (o *ConfigInfoW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_ConfigInfoW

type ConfigInfoW_ConfigInfoW struct {
	// Types that are assignable to Value
	//
	// *ConfigInfoW_Description
	// *ConfigInfoW_FailureActions
	// *ConfigInfoW_DelayedAutoStart
	// *ConfigInfoW_FailureActionsFlag
	// *ConfigInfoW_SIDInfo
	// *ConfigInfoW_RequiredPrivileges
	// *ConfigInfoW_Preshutdown
	// *ConfigInfoW_TriggerInfo
	// *ConfigInfoW_PreferredNode
	Value is_ConfigInfoW_ConfigInfoW `json:"value"`
}

ConfigInfoW_ConfigInfoW structure represents SC_RPC_CONFIG_INFOW union anonymous member.

The SC_RPC_CONFIG_INFOW structure SHOULD<3> define, based on a supplied level, either the service configuration or a list of failure actions. String values are stored as Unicode.

func (*ConfigInfoW_ConfigInfoW) GetValue

func (o *ConfigInfoW_ConfigInfoW) GetValue() any

func (*ConfigInfoW_ConfigInfoW) MarshalUnionNDR

func (o *ConfigInfoW_ConfigInfoW) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ConfigInfoW_ConfigInfoW) NDRSwitchValue

func (o *ConfigInfoW_ConfigInfoW) NDRSwitchValue(sw uint32) uint32

func (*ConfigInfoW_ConfigInfoW) UnmarshalUnionNDR

func (o *ConfigInfoW_ConfigInfoW) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ConfigInfoW_DelayedAutoStart

type ConfigInfoW_DelayedAutoStart struct {
	// psda:  A structure that specifies whether the service is part of the delayed start
	// group, as specified in section 2.2.33.
	DelayedAutoStart *ServiceDelayedAutoStartInfo `idl:"name:psda" json:"delayed_auto_start"`
}

ConfigInfoW_DelayedAutoStart structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 3

func (*ConfigInfoW_DelayedAutoStart) MarshalNDR

func (*ConfigInfoW_DelayedAutoStart) UnmarshalNDR

func (o *ConfigInfoW_DelayedAutoStart) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_Description

type ConfigInfoW_Description struct {
	// psd:  A structure that contains a description of the service, as specified in section
	// 2.2.35.
	Description *ServiceDescriptionW `idl:"name:psd" json:"description"`
}

ConfigInfoW_Description structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 1

func (*ConfigInfoW_Description) MarshalNDR

func (o *ConfigInfoW_Description) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_Description) UnmarshalNDR

func (o *ConfigInfoW_Description) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_FailureActions

type ConfigInfoW_FailureActions struct {
	// psfa:  A structure that contains a list of failure actions, as specified in section
	// 2.2.40.
	FailureActions *ServiceFailureActionsW `idl:"name:psfa" json:"failure_actions"`
}

ConfigInfoW_FailureActions structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 2

func (*ConfigInfoW_FailureActions) MarshalNDR

func (o *ConfigInfoW_FailureActions) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_FailureActions) UnmarshalNDR

func (o *ConfigInfoW_FailureActions) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_FailureActionsFlag

type ConfigInfoW_FailureActionsFlag struct {
	// psfaf:  A structure that specifies whether failure actions are queued when the service
	// exits with a nonzero error code, as specified in section 2.2.41.
	FailureActionsFlag *ServiceFailureActionsFlag `idl:"name:psfaf" json:"failure_actions_flag"`
}

ConfigInfoW_FailureActionsFlag structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 4

func (*ConfigInfoW_FailureActionsFlag) MarshalNDR

func (*ConfigInfoW_FailureActionsFlag) UnmarshalNDR

type ConfigInfoW_PreferredNode

type ConfigInfoW_PreferredNode struct {
	// pspn:  A structure that defines the preferred node information for the service, as
	// specified in section 2.2.55.<5>
	PreferredNode *ServicePreferredNodeInfo `idl:"name:pspn" json:"preferred_node"`
}

ConfigInfoW_PreferredNode structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 9

func (*ConfigInfoW_PreferredNode) MarshalNDR

func (o *ConfigInfoW_PreferredNode) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_PreferredNode) UnmarshalNDR

func (o *ConfigInfoW_PreferredNode) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_Preshutdown

type ConfigInfoW_Preshutdown struct {
	// psps:  A structure that defines the pre-shutdown settings for the service, as specified
	// in section 2.2.45.
	Preshutdown *ServicePreshutdownInfo `idl:"name:psps" json:"preshutdown"`
}

ConfigInfoW_Preshutdown structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 7

func (*ConfigInfoW_Preshutdown) MarshalNDR

func (o *ConfigInfoW_Preshutdown) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_Preshutdown) UnmarshalNDR

func (o *ConfigInfoW_Preshutdown) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_RequiredPrivileges

type ConfigInfoW_RequiredPrivileges struct {
	// psrp:  A structure that defines the privileges required by the service, as specified
	// in section 2.2.48.
	RequiredPrivileges *RequiredPrivilegesInfo `idl:"name:psrp" json:"required_privileges"`
}

ConfigInfoW_RequiredPrivileges structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 6

func (*ConfigInfoW_RequiredPrivileges) MarshalNDR

func (*ConfigInfoW_RequiredPrivileges) UnmarshalNDR

type ConfigInfoW_SIDInfo

type ConfigInfoW_SIDInfo struct {
	// pssid:  A structure that defines the type of service SID, as specified in section
	// 2.2.46.
	SIDInfo *ServiceSIDInfo `idl:"name:pssid" json:"sid_info"`
}

ConfigInfoW_SIDInfo structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 5

func (*ConfigInfoW_SIDInfo) MarshalNDR

func (o *ConfigInfoW_SIDInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_SIDInfo) UnmarshalNDR

func (o *ConfigInfoW_SIDInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ConfigInfoW_TriggerInfo

type ConfigInfoW_TriggerInfo struct {
	// psti:  A structure that defines the trigger settings for the service, as specified
	// in section 2.2.54.<4>
	TriggerInfo *ServiceTriggerInfo `idl:"name:psti" json:"trigger_info"`
}

ConfigInfoW_TriggerInfo structure represents ConfigInfoW_ConfigInfoW RPC union arm.

It has following labels: 8

func (*ConfigInfoW_TriggerInfo) MarshalNDR

func (o *ConfigInfoW_TriggerInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigInfoW_TriggerInfo) UnmarshalNDR

func (o *ConfigInfoW_TriggerInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ControlServiceExARequest

type ControlServiceExARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwControl: Requested control code. This MUST be one of the following values.
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                   VALUE                   |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_STOP 0x00000001           | Notifies a service to stop. The SERVICE_STOP access right MUST have been         |
	//	|                                           | granted to the caller when the RPC control handle to the service record was      |
	//	|                                           | created. The service record MUST have the SERVICE_ACCEPT_STOP bit set in the     |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PAUSE 0x00000002          | Notifies a service to pause. The SERVICE_PAUSE_CONTINUE access right MUST have   |
	//	|                                           | been granted to the caller when the RPC control handle to the service record was |
	//	|                                           | created. The service record MUST have the SERVICE_ACCEPT_PAUSE_CONTINUE bit set  |
	//	|                                           | in the ServiceStatus.dwControlsAccepted field of the service record.             |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_CONTINUE 0x00000003       | Notifies a paused service to resume. The SERVICE_PAUSE_CONTINUE access           |
	//	|                                           | right MUST have been granted to the caller when the RPC control handle           |
	//	|                                           | to the service record was created. The service record MUST have the              |
	//	|                                           | SERVICE_ACCEPT_PAUSE_CONTINUE bit set in the ServiceStatus.dwControlsAccepted    |
	//	|                                           | field of the service record.                                                     |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_INTERROGATE 0x00000004    | Notifies a service to report its current status information to the SCM. The      |
	//	|                                           | SERVICE_INTERROGATE access right MUST have been granted to the caller when the   |
	//	|                                           | RPC control handle to the service record was created.                            |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PARAMCHANGE 0x00000006    | Notifies a service that its startup parameters have changed. The                 |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_PARAMCHANGE bit set in the           |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDADD 0x00000007     | Notifies a service that there is a new component for binding. The                |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDREMOVE 0x00000008  | Notifies a network service that a component for binding has been removed.        |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDENABLE 0x00000009  | Notifies a network service that a disabled binding has been enabled.             |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDDISABLE 0x0000000A | Notifies a network service that one of its bindings has been disabled.           |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	Control uint32 `idl:"name:dwControl" json:"control"`
	// dwInfoLevel: The information level for the service control parameters. This MUST
	// be set to 0x00000001.
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`
	// pControlInParams: A pointer to a SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA (section
	// 2.2.30) structure that contains the reason associated with the SERVICE_CONTROL_STOP
	// control.
	ControlInParams *ServiceControlInParamsA `idl:"name:pControlInParams;switch_is:dwInfoLevel" json:"control_in_params"`
}

ControlServiceExARequest structure represents the RControlServiceExA operation request

func (*ControlServiceExARequest) MarshalNDR

func (o *ControlServiceExARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceExARequest) UnmarshalNDR

func (o *ControlServiceExARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlServiceExAResponse

type ControlServiceExAResponse struct {
	// XXX: dwInfoLevel is an implicit input depedency for output parameters
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`

	// pControlOutParams: A pointer to a buffer that contains a SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS
	// (section 2.2.32) structure to receive the current status on the service.
	ControlOutParams *ServiceControlOutParamsA `idl:"name:pControlOutParams;switch_is:dwInfoLevel" json:"control_out_params"`
	// Return: The RControlServiceExA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ControlServiceExAResponse structure represents the RControlServiceExA operation response

func (*ControlServiceExAResponse) MarshalNDR

func (o *ControlServiceExAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceExAResponse) UnmarshalNDR

func (o *ControlServiceExAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlServiceExWRequest

type ControlServiceExWRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwControl: Requested control code. MUST be one of the following values.
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                   VALUE                   |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_STOP 0x00000001           | Notifies a service to stop. The SERVICE_STOP access right MUST have been         |
	//	|                                           | granted to the caller when the RPC control handle to the service record was      |
	//	|                                           | created. The service record MUST have the SERVICE_ACCEPT_STOP bit set in the     |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PAUSE 0x00000002          | Notifies a service to pause. The SERVICE_PAUSE_CONTINUE access right MUST have   |
	//	|                                           | been granted to the caller when the RPC control handle to the service record was |
	//	|                                           | created. The service record MUST have the SERVICE_ACCEPT_PAUSE_CONTINUE bit set  |
	//	|                                           | in the ServiceStatus.dwControlsAccepted field of the service record.             |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_CONTINUE 0x00000003       | Notifies a paused service to resume. The SERVICE_PAUSE_CONTINUE access           |
	//	|                                           | right MUST have been granted to the caller when the RPC control handle           |
	//	|                                           | to the service record was created. The service record MUST have the              |
	//	|                                           | SERVICE_ACCEPT_PAUSE_CONTINUE bit set in the ServiceStatus.dwControlsAccepted    |
	//	|                                           | field of the service record.                                                     |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_INTERROGATE 0x00000004    | Notifies a service to report its current status information to the SCM. The      |
	//	|                                           | SERVICE_INTERROGATE access right MUST have been granted to the caller when the   |
	//	|                                           | RPC control handle to the service record was created.                            |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PARAMCHANGE 0x00000006    | Notifies a service that its startup parameters have changed. The                 |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_PARAMCHANGE bit set in the           |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDADD 0x00000007     | Notifies a service that there is a new component for binding. The                |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDREMOVE 0x00000008  | Notifies a network service that a component for binding has been removed.        |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDENABLE 0x00000009  | Notifies a network service that a disabled binding has been enabled.             |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDDISABLE 0x0000000A | Notifies a network service that one of its bindings has been disabled.           |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	Control uint32 `idl:"name:dwControl" json:"control"`
	// dwInfoLevel: The information level for the service control parameters. This MUST
	// be set to 0x00000001.
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`
	// pControlInParams: A pointer to a SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW (section
	// 2.2.31) structure that contains the reason associated with the SERVICE_CONTROL_STOP
	// control.
	ControlInParams *ServiceControlInParamsW `idl:"name:pControlInParams;switch_is:dwInfoLevel" json:"control_in_params"`
}

ControlServiceExWRequest structure represents the RControlServiceExW operation request

func (*ControlServiceExWRequest) MarshalNDR

func (o *ControlServiceExWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceExWRequest) UnmarshalNDR

func (o *ControlServiceExWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlServiceExWResponse

type ControlServiceExWResponse struct {
	// XXX: dwInfoLevel is an implicit input depedency for output parameters
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`

	// pControlOutParams: A pointer to a buffer that contains a SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS
	// (section 2.2.32) structure to receive the current status on the service.
	ControlOutParams *ServiceControlOutParamsW `idl:"name:pControlOutParams;switch_is:dwInfoLevel" json:"control_out_params"`
	// Return: The RControlServiceExW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ControlServiceExWResponse structure represents the RControlServiceExW operation response

func (*ControlServiceExWResponse) MarshalNDR

func (o *ControlServiceExWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceExWResponse) UnmarshalNDR

func (o *ControlServiceExWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlServiceRequest

type ControlServiceRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously using one of the open methods
	// specified in section 3.1.4.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwControl: Requested control code. MUST be one of the following values.
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                   VALUE                   |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_CONTINUE 0x00000003       | Notifies a paused service that it SHOULD resume. The SERVICE_PAUSE_CONTINUE      |
	//	|                                           | access right MUST have been granted to the caller when the RPC control           |
	//	|                                           | handle to the service record was created. The service record MUST have the       |
	//	|                                           | SERVICE_ACCEPT_PAUSE_CONTINUE bit set in the ServiceStatus.dwControlsAccepted    |
	//	|                                           | field of the service record.                                                     |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_INTERROGATE 0x00000004    | Notifies a service that it SHOULD report its current status information to the   |
	//	|                                           | SCM. The SERVICE_INTERROGATE access right MUST have been granted to the caller   |
	//	|                                           | when the RPC control handle to the service record was created.                   |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDADD 0x00000007     | Notifies a service that there is a new component for binding. The                |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDDISABLE 0x0000000A | Notifies a network service that one of its bindings has been disabled.           |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDENABLE 0x00000009  | Notifies a network service that a disabled binding has been enabled.             |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_NETBINDREMOVE 0x00000008  | Notifies a network service that a component for binding has been removed.        |
	//	|                                           | The SERVICE_PAUSE_CONTINUE access right MUST have been granted to the            |
	//	|                                           | caller when the RPC control handle to the service record was created. The        |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_NETBINDCHANGE bit set in the         |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PARAMCHANGE 0x00000006    | Notifies a service that its startup parameters have changed. The                 |
	//	|                                           | SERVICE_PAUSE_CONTINUE access right MUST have been granted to the caller         |
	//	|                                           | when the RPC control handle to the service record was created. The               |
	//	|                                           | service record MUST have the SERVICE_ACCEPT_PARAMCHANGE bit set in the           |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_PAUSE 0x00000002          | Notifies a service that it SHOULD pause. The SERVICE_PAUSE_CONTINUE              |
	//	|                                           | access right MUST have been granted to the caller when the RPC control           |
	//	|                                           | handle to the service record was created. The service record MUST have the       |
	//	|                                           | SERVICE_ACCEPT_PAUSE_CONTINUE bit set in the ServiceStatus.dwControlsAccepted    |
	//	|                                           | field of the service record.                                                     |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONTROL_STOP 0x00000001           | Notifies a service that it SHOULD stop. The SERVICE_STOP access right MUST have  |
	//	|                                           | been granted to the caller when the RPC control handle to the service record     |
	//	|                                           | was created. The service record MUST have the SERVICE_ACCEPT_STOP bit set in the |
	//	|                                           | ServiceStatus.dwControlsAccepted field of the service record.                    |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	Control uint32 `idl:"name:dwControl" json:"control"`
}

ControlServiceRequest structure represents the RControlService operation request

func (*ControlServiceRequest) MarshalNDR

func (o *ControlServiceRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceRequest) UnmarshalNDR

func (o *ControlServiceRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlServiceResponse

type ControlServiceResponse struct {
	// lpServiceStatus: Pointer to a SERVICE_STATUS (section 2.2.47) structure that receives
	// the latest service status information. The returned information reflects the most
	// recent status that the service reported to the SCM.
	ServiceStatus *ServiceStatus `idl:"name:lpServiceStatus" json:"service_status"`
	// Return: The RControlService return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ControlServiceResponse structure represents the RControlService operation response

func (*ControlServiceResponse) MarshalNDR

func (o *ControlServiceResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ControlServiceResponse) UnmarshalNDR

func (o *ControlServiceResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceARequest

type CreateServiceARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The SC_MANAGER_CREATE_SERVICE access right MUST have been granted to the caller when
	// the RPC context handle was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated ANSI string that specifies the name
	// of the service to install. This MUST not be null.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpDisplayName: A pointer to a null-terminated ANSI string that contains the display
	// name by which user interface programs identify the service.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
	// dwDesiredAccess: A value that specifies the access to the service. This MUST be one
	// of the values specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwServiceType: A value that specifies the type of service. This MUST be one or a
	// combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A value that specifies when to start the service. This MUST be one of
	// the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | The SCM starts the service when a process calls the StartService function. For   |
	//	|                                 | more information, see [MSDN-STARTSERVICE].                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: A value that specifies the severity of the error if the service fails
	// to start and determines the action that the SCM takes. This MUST be one of the following
	// values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: A pointer to a null-terminated ANSI string that contains the fully
	// qualified path to the service binary file. The path MAY include arguments. If the
	// path contains a space, it MUST be quoted so that it is correctly interpreted. For
	// example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup: A pointer to a null-terminated ANSI string that names the load-ordering
	// group of which this service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: A pointer to an array of null-separated names of services or load
	// ordering groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is ANSI. Dependency on a service means that this service can only run
	// if the service it depends on is running. Dependency on a group means that this service
	// can run if at least one member of the group is running after an attempt to start
	// all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the lpDependencies parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: A pointer to a null-terminated ANSI string that specifies the
	// name of the account under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A pointer to a null-terminated ANSI string that contains the password
	// of the account whose name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
}

CreateServiceARequest structure represents the RCreateServiceA operation request

func (*CreateServiceARequest) MarshalNDR

func (o *CreateServiceARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceARequest) UnmarshalNDR

func (o *CreateServiceARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceAResponse

type CreateServiceAResponse struct {
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly created service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The RCreateServiceA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreateServiceAResponse structure represents the RCreateServiceA operation response

func (*CreateServiceAResponse) MarshalNDR

func (o *CreateServiceAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceAResponse) UnmarshalNDR

func (o *CreateServiceAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWOW64ARequest

type CreateServiceWOW64ARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SC_MANAGER_CREATE_SERVICE access right MUST have
	// been granted to the caller when the RPC context handle to the SCM was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated ANSI string that specifies the name
	// of the service to install. This MUST not be null.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpDisplayName: A pointer to a null-terminated ANSI string that contains the display
	// name by which user interface programs identify the service.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
	// dwDesiredAccess: A value that specifies the access to the service. This MUST be one
	// of the values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwServiceType: A value that specifies the type of service. This MUST be one or a
	// combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs within its own process.                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares an execution process with other services.                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A value that specifies when to start the service. This MUST be one of
	// the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: A value that specifies the severity of the error if the service fails
	// to start and determines the action that the SCM takes. This MUST be one of the following
	// values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: A pointer to a null-terminated ANSI string that contains the fully
	// qualified path to the service binary file. The path MAY include arguments. If the
	// path contains a space, it MUST be quoted so that it is correctly interpreted. For
	// example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup: A pointer to a null-terminated ANSI string that names the load-ordering
	// group of which this service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: A pointer to an array of null-separated names of services or load
	// ordering groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is ANSI. Dependency on a service means that this service can only run
	// if the service it depends on is running. Dependency on a group means that this service
	// can run if at least one member of the group is running after an attempt to start
	// all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the dwDependSize parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: A pointer to a null-terminated ANSI that specifies the name of
	// the account under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A pointer to a null-terminated ANSI string that contains the password
	// of the account whose name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
}

CreateServiceWOW64ARequest structure represents the RCreateServiceWOW64A operation request

func (*CreateServiceWOW64ARequest) MarshalNDR

func (o *CreateServiceWOW64ARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceWOW64ARequest) UnmarshalNDR

func (o *CreateServiceWOW64ARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWOW64AResponse

type CreateServiceWOW64AResponse struct {
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly created service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The RCreateServiceWOW64A return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreateServiceWOW64AResponse structure represents the RCreateServiceWOW64A operation response

func (*CreateServiceWOW64AResponse) MarshalNDR

func (*CreateServiceWOW64AResponse) UnmarshalNDR

func (o *CreateServiceWOW64AResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWOW64WRequest

type CreateServiceWOW64WRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The SC_MANAGER_CREATE_SERVICE access right MUST have been granted to the caller when
	// the RPC context handle to the SCM was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated UNICODE string that specifies the name
	// of the service to install. This MUST NOT be NULL.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpDisplayName: A pointer to a null-terminated UNICODE string that contains the display
	// name by which user interface programs identify the service.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
	// dwDesiredAccess: A value that specifies the access to the service. This MUST be one
	// of the values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwServiceType: A value that specifies the type of service. This MUST be one or a
	// combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs within its own process.                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A value that specifies when to start the service. This MUST be one of
	// the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: A value that specifies the severity of the error if the service fails
	// to start and determines the action that the SCM takes. This MUST be one of the following
	// values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: A pointer to a null-terminated UNICODE string that contains the
	// fully qualified path to the service binary file. The path MAY include arguments.
	// If the path contains a space, it MUST be quoted so that it is correctly interpreted.
	// For example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup: A pointer to a null-terminated UNICODE string that names the load-ordering
	// group of which this service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: A pointer to an array of null-separated names of services or load
	// ordering groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is Unicode. Dependency on a service means that this service can only
	// run if the service it depends on is running. Dependency on a group means that this
	// service can run if at least one member of the group is running after an attempt to
	// start all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the dwDependSize parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: A pointer to a null-terminated UNICODE string that specifies
	// the name of the account under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A pointer to a null-terminated UNICODE string that contains the password
	// of the account whose name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
}

CreateServiceWOW64WRequest structure represents the RCreateServiceWOW64W operation request

func (*CreateServiceWOW64WRequest) MarshalNDR

func (o *CreateServiceWOW64WRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceWOW64WRequest) UnmarshalNDR

func (o *CreateServiceWOW64WRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWOW64WResponse

type CreateServiceWOW64WResponse struct {
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly created service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The RCreateServiceWOW64W return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreateServiceWOW64WResponse structure represents the RCreateServiceWOW64W operation response

func (*CreateServiceWOW64WResponse) MarshalNDR

func (*CreateServiceWOW64WResponse) UnmarshalNDR

func (o *CreateServiceWOW64WResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWRequest

type CreateServiceWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The SC_MANAGER_CREATE_SERVICE access right MUST have been granted to the caller when
	// the RPC context handle was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated UNICODE string that specifies the name
	// of the service to install. This MUST not be NULL.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpDisplayName: A pointer to a null-terminated UNICODE string that contains the display
	// name by which user interface programs identify the service.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
	// dwDesiredAccess: A value that specifies the access to the service. This MUST be one
	// of the values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwServiceType: A value that specifies the type of service. This MUST be one or a
	// combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A value that specifies when to start the service. This MUST be one of
	// the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: A value that specifies the severity of the error if the service fails
	// to start and determines the action that the SCM takes. This MUST be one of the following
	// values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: A pointer to a null-terminated UNICODE string that contains the
	// fully qualified path to the service binary file. The path MAY include arguments.
	// If the path contains a space, it MUST be quoted so that it is correctly interpreted.
	// For example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup: A pointer to a null-terminated UNICODE string that names the load-ordering
	// group of which this service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: A pointer to an array of null-separated names of services or load
	// ordering groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is Unicode. Dependency on a service means that this service can only
	// run if the service it depends on is running. Dependency on a group means that this
	// service can run if at least one member of the group is running after an attempt to
	// start all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the lpDependencies parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: A pointer to a null-terminated UNICODE string that specifies
	// the name of the account under which the service SHOULD run.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A pointer to a null-terminated UNICODE string that contains the password
	// of the account whose name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
}

CreateServiceWRequest structure represents the RCreateServiceW operation request

func (*CreateServiceWRequest) MarshalNDR

func (o *CreateServiceWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceWRequest) UnmarshalNDR

func (o *CreateServiceWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateServiceWResponse

type CreateServiceWResponse struct {
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly created service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The RCreateServiceW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreateServiceWResponse structure represents the RCreateServiceW operation response

func (*CreateServiceWResponse) MarshalNDR

func (o *CreateServiceWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateServiceWResponse) UnmarshalNDR

func (o *CreateServiceWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateWOWServiceRequest

type CreateWOWServiceRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The SC_MANAGER_CREATE_SERVICE access right MUST have been granted to the caller when
	// the RPC context handle to the SCM was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated Unicode string that specifies the name
	// of the service to install. This MUST NOT be NULL.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpDisplayName: A pointer to a null-terminated Unicode string that contains the display
	// name by which user interface programs identify the service.
	DisplayName string `idl:"name:lpDisplayName;string;pointer:unique" json:"display_name"`
	// dwDesiredAccess: A value that specifies the access to the service. This MUST be one
	// of the values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwServiceType: A value that specifies the type of service. This MUST be one or a
	// combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs within its own process.                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType: A value that specifies when to start the service. This MUST be one of
	// the following values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | Starts the service automatically during system startup.                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | Service cannot be started.                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl: A value that specifies the severity of the error if the service fails
	// to start and determines the action that the SCM takes. This MUST be one of the following
	// values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error, but continues the startup operation.                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error. If the last-known good configuration is being started,   |
	//	|                                   | the startup operation continues. Otherwise, the system is restarted with the     |
	//	|                                   | last-known good configuration.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error if possible. If the last-known good configuration   |
	//	|                                   | is being started, the startup operation fails. Otherwise, the system is          |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName: A pointer to a null-terminated UNICODE string that contains the
	// fully qualified path to the service binary file. The path MAY include arguments.
	// If the path contains a space, it MUST be quoted so that it is correctly interpreted.
	// For example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup: A pointer to a null-terminated UNICODE string that names the load-ordering
	// group of which this service is a member.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string;pointer:unique" json:"load_order_group"`
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpDependencies: A pointer to an array of null-separated names of services or load
	// ordering groups that MUST start before this service. The array is doubly null-terminated.
	// Load ordering group names are prefixed with a "+" character (to distinguish them
	// from service names). If the pointer is NULL or if it points to an empty string, the
	// service has no dependencies. Cyclic dependency between services is not allowed. The
	// character set is Unicode. Dependency on a service means that this service can run
	// only if the service it depends on is running. Dependency on a group means that this
	// service can run if at least one member of the group is running after an attempt to
	// start all members of the group.
	Dependencies []byte `idl:"name:lpDependencies;size_is:(dwDependSize);pointer:unique" json:"dependencies"`
	// dwDependSize: The size, in bytes, of the string specified by the dwDependSize parameter.
	DependSize uint32 `idl:"name:dwDependSize" json:"depend_size"`
	// lpServiceStartName: A pointer to a null-terminated UNICODE string that specifies
	// the name of the account under which the service runs.
	ServiceStartName string `idl:"name:lpServiceStartName;string;pointer:unique" json:"service_start_name"`
	// lpPassword: A pointer to a null-terminated UNICODE string that contains the password
	// of the account whose name was specified by the lpServiceStartName parameter.
	Password []byte `idl:"name:lpPassword;size_is:(dwPwSize);pointer:unique" json:"password"`
	// dwPwSize: The size, in bytes, of the password specified by the lpPassword parameter.
	PasswordSize uint32 `idl:"name:dwPwSize" json:"password_size"`
	// dwServiceWowType: The image file machine constant corresponding to the architecture
	// that the service binary is compiled for. This MUST be one of the following values.
	//
	//	+---------------------------------------+-----------------------------------------------------------+
	//	|                                       |                                                           |
	//	|                 VALUE                 |                          MEANING                          |
	//	|                                       |                                                           |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_UNKNOWN 0          | Unknown or unspecified                                    |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_TARGET_HOST 0x0001 | Interacts with the host and not a WOW64 guest<84>         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_I386 0x014c        | Intel 386 (also known as x86)                             |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_R3000 0x0160       | MIPS 32-bit big-endian (R3000)                            |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_R3000 0x0162       | MIPS 32-bit little-endian (R3000)                         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_R4000 0x0166       | MIPS 64-bit little-endian (R4000)                         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_R10000 0x0168      | MIPS 64-bit little-endian (R10000 MIPS IV)                |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169   | MIPS little-endian Windows Compact Edition (WCE) v2       |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_ALPHA 0x0184       | DEC Alpha AXP 32-bit                                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_SH3 0x01a2         | Hitachi SH-3 32-bit little-endian                         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_SH3DSP 0x01a3      | Hitachi SH-3 DSP 32-bit                                   |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_SH3E 0x01a4        | Hitachi SH-3E 32-bit little-endian                        |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_SH4 0x01a6         | Hitachi SH-4 32-bit little-endian                         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_SH5 0x01a8         | Hitachi SH-5 64-bit                                       |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_ARM 0x01c0         | ARM Little-Endian                                         |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_THUMB 0x01c2       | ARM Thumb/Thumb-2 Little-Endian                           |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_ARMNT 0x01c4       | ARM Thumb-2 Little-Endian<85>                             |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_AM33 0x01d3        | Matsushita AM33, now Panasonic MN103                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_POWERPC 0x01F0     | IBM PowerPC 32-bit Little-Endian                          |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_POWERPCFP 0x01f1   | PowerPC 32-bit with FPU                                   |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_IA64 0x0200        | Intel IA-64 (also known as Itanium Architecture)          |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_MIPS16 0x0266      | MIPS 16-bit                                               |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_ALPHA64 0x0284     | DEC Alpha AXP 64-bit (same as IMAGE_FILE_MACHINE_AXP64)   |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_MIPSFPU 0x0366     | MIPS 32-bit with FPU                                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_MIPSFPU16 0x0466   | MIPS 16-bit with FPU                                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_AXP64 0x0284       | DEC Alpha AXP 64-bit (same as IMAGE_FILE_MACHINE_ALPHA64) |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_TRICORE 0x0520     | Infineon AUDO 32-bit                                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_CEF 0x0CEF         | CEF                                                       |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_EBC 0x0EBC         | EFI/UEFI Byte Code                                        |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_AMD64 0x8664       | AMD64 (also known as x64)                                 |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_M32R 0x9041        | Mitsubishi M32R 32-bit little-endian                      |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_ARM64 0xAA64       | ARM64 little-endian<86>                                   |
	//	+---------------------------------------+-----------------------------------------------------------+
	//	| IMAGE_FILE_MACHINE_CEE 0xC0EE         | CEE                                                       |
	//	+---------------------------------------+-----------------------------------------------------------+
	ServiceWOWType uint16 `idl:"name:dwServiceWowType" json:"service_wow_type"`
}

CreateWOWServiceRequest structure represents the RCreateWowService operation request

func (*CreateWOWServiceRequest) MarshalNDR

func (o *CreateWOWServiceRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateWOWServiceRequest) UnmarshalNDR

func (o *CreateWOWServiceRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateWOWServiceResponse

type CreateWOWServiceResponse struct {
	// lpdwTagId: A pointer to a variable that receives a tag value. The value is unique
	// to the group specified in the lpLoadOrderGroup parameter.
	TagID uint32 `idl:"name:lpdwTagId;pointer:unique" json:"tag_id"`
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly created service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The RCreateWowService return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreateWOWServiceResponse structure represents the RCreateWowService operation response

func (*CreateWOWServiceResponse) MarshalNDR

func (o *CreateWOWServiceResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateWOWServiceResponse) UnmarshalNDR

func (o *CreateWOWServiceResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteServiceRequest

type DeleteServiceRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The DELETE access right MUST have been granted to the
	// caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
}

DeleteServiceRequest structure represents the RDeleteService operation request

func (*DeleteServiceRequest) MarshalNDR

func (o *DeleteServiceRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteServiceRequest) UnmarshalNDR

func (o *DeleteServiceRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteServiceResponse

type DeleteServiceResponse struct {
	// Return: The RDeleteService return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeleteServiceResponse structure represents the RDeleteService operation response

func (*DeleteServiceResponse) MarshalNDR

func (o *DeleteServiceResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteServiceResponse) UnmarshalNDR

func (o *DeleteServiceResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumDependentServicesARequest

type EnumDependentServicesARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_ENUMERATE_DEPENDENT access right MUST have
	// been granted to the caller when the RPC context handle to the service record was
	// created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// the value of their ServiceStatus.dwCurrentState. This MUST be one of the following
	// values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records that have ServiceStatus.dwCurrentState equal to one   |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records that have ServiceStatus.dwCurrentState equal to       |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates services that have ServiceStatus.dwCurrentState equal to one of       |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the array pointed to by lpServices.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

EnumDependentServicesARequest structure represents the REnumDependentServicesA operation request

func (*EnumDependentServicesARequest) MarshalNDR

func (*EnumDependentServicesARequest) UnmarshalNDR

func (o *EnumDependentServicesARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumDependentServicesAResponse

type EnumDependentServicesAResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpServices: A pointer to an array of ENUM_SERVICE_STATUSA (section 2.2.10) structures
	// that contain the name and service status information for each dependent service record
	// in the database.
	Services []byte `idl:"name:lpServices;size_is:(cbBufSize)" json:"services"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to store the array of service entries.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// Return: The REnumDependentServicesA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumDependentServicesAResponse structure represents the REnumDependentServicesA operation response

func (*EnumDependentServicesAResponse) MarshalNDR

func (*EnumDependentServicesAResponse) UnmarshalNDR

type EnumDependentServicesWRequest

type EnumDependentServicesWRequest struct {
	// hService: An SC_RPC_HANDLE data type that defines the handle to the service record
	// that MUST have been created previously, using one of the open methods specified in
	// section 3.1.4. The SERVICE_ENUMERATE_DEPENDENT access right MUST have been granted
	// to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// the value of their ServiceStatus.dwCurrentState. This MUST be one of the following
	// values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records that have a ServiceStatus.dwCurrentState equal to one |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records that have a ServiceStatus.dwCurrentState equal to     |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates service records that have a ServiceStatus.dwCurrentState equal to one |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the array pointed to by lpServices.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

EnumDependentServicesWRequest structure represents the REnumDependentServicesW operation request

func (*EnumDependentServicesWRequest) MarshalNDR

func (*EnumDependentServicesWRequest) UnmarshalNDR

func (o *EnumDependentServicesWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumDependentServicesWResponse

type EnumDependentServicesWResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpServices: A pointer to an array of ENUM_SERVICE_STATUSW (section 2.2.11) structures
	// that contain the name and service status information for each dependent service in
	// the database.
	Services []byte `idl:"name:lpServices;size_is:(cbBufSize)" json:"services"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to store the array of service entries.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// Return: The REnumDependentServicesW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumDependentServicesWResponse structure represents the REnumDependentServicesW operation response

func (*EnumDependentServicesWResponse) MarshalNDR

func (*EnumDependentServicesWResponse) UnmarshalNDR

type EnumServiceGroupWRequest

type EnumServiceGroupWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM created using one of the open methods specified in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE
	// access right MUST have been granted to the caller when the RPC context handle was
	// created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// dwServiceType: A value that specifies the service records to enumerate based on their
	// Type. This MUST be one or a combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// their ServiceStatus.dwCurrentState. This MUST be one of the following values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records with the ServiceStatus.dwCurrentState value           |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the array pointed to by lpBuffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// pszGroupName: A pointer to a string that specifies service records to enumerate based
	// on their ServiceGroup value.
	GroupName string `idl:"name:pszGroupName;string;pointer:unique" json:"group_name"`
}

EnumServiceGroupWRequest structure represents the REnumServiceGroupW operation request

func (*EnumServiceGroupWRequest) MarshalNDR

func (o *EnumServiceGroupWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceGroupWRequest) UnmarshalNDR

func (o *EnumServiceGroupWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServiceGroupWResponse

type EnumServiceGroupWResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to an array of ENUM_SERVICE_STATUSW (section 2.2.11) structures
	// that contain the name and service status information for each dependent service in
	// the database.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to store the array of service entries.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// Return: The REnumServiceGroupW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumServiceGroupWResponse structure represents the REnumServiceGroupW operation response

func (*EnumServiceGroupWResponse) MarshalNDR

func (o *EnumServiceGroupWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceGroupWResponse) UnmarshalNDR

func (o *EnumServiceGroupWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServiceStatusA

type EnumServiceStatusA struct {
	// lpServiceName:  A pointer to a null-terminated string that names a service in an
	// SCM database.
	ServiceName string `idl:"name:lpServiceName" json:"service_name"`
	// lpDisplayName:  A pointer to a null-terminated string that user interface programs
	// use to identify the service.
	DisplayName string `idl:"name:lpDisplayName" json:"display_name"`
	// ServiceStatus:  A SERVICE_STATUS (section 2.2.47) structure that contains status
	// information.
	ServiceStatus *ServiceStatus `idl:"name:ServiceStatus" json:"service_status"`
}

EnumServiceStatusA structure represents ENUM_SERVICE_STATUSA RPC structure.

The ENUM_SERVICE_STATUSA structure defines the name and status of a service in an SCM database and returns information about the service. String values are stored in ANSI.

func (*EnumServiceStatusA) MarshalNDR

func (o *EnumServiceStatusA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceStatusA) UnmarshalNDR

func (o *EnumServiceStatusA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumServiceStatusProcessA

type EnumServiceStatusProcessA struct {
	// lpServiceName:  A pointer to a null-terminated string that names a service in an
	// SCM database.
	ServiceName string `idl:"name:lpServiceName" json:"service_name"`
	// lpDisplayName:  A pointer to a null-terminated string that contains the display name
	// of the service.
	DisplayName string `idl:"name:lpDisplayName" json:"display_name"`
	// ServiceStatusProcess:  A SERVICE_STATUS_PROCESS (section 2.2.49) structure that contains
	// status information for the lpServiceName service.
	ServiceStatusProcess *ServiceStatusProcess `idl:"name:ServiceStatusProcess" json:"service_status_process"`
}

EnumServiceStatusProcessA structure represents ENUM_SERVICE_STATUS_PROCESSA RPC structure.

The ENUM_SERVICE_STATUS_PROCESSA structure contains information used by the REnumServicesStatusExA method to return the name of a service in an SCM database. The structure also returns information about the service. String values are stored in ANSI.

func (*EnumServiceStatusProcessA) MarshalNDR

func (o *EnumServiceStatusProcessA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceStatusProcessA) UnmarshalNDR

func (o *EnumServiceStatusProcessA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumServiceStatusProcessW

type EnumServiceStatusProcessW struct {
	// lpServiceName:  A pointer to a null-terminated string that names a service in an
	// SCM database.
	ServiceName string `idl:"name:lpServiceName" json:"service_name"`
	// lpDisplayName:  A pointer to a null-terminated string that contains the display name
	// of the service.
	DisplayName string `idl:"name:lpDisplayName" json:"display_name"`
	// ServiceStatusProcess:  A SERVICE_STATUS_PROCESS (section 2.2.49) structure that contains
	// status information for the lpServiceName service.
	ServiceStatusProcess *ServiceStatusProcess `idl:"name:ServiceStatusProcess" json:"service_status_process"`
}

EnumServiceStatusProcessW structure represents ENUM_SERVICE_STATUS_PROCESSW RPC structure.

The ENUM_SERVICE_STATUS_PROCESSW structure contains information used by the REnumServicesStatusExW method to return the name of a service in an SCM database. The structure also returns information about the service. String values are stored in Unicode.

func (*EnumServiceStatusProcessW) MarshalNDR

func (o *EnumServiceStatusProcessW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceStatusProcessW) UnmarshalNDR

func (o *EnumServiceStatusProcessW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumServiceStatusW

type EnumServiceStatusW struct {
	// lpServiceName:  A pointer to a null-terminated string that names a service in an
	// SCM database.
	ServiceName string `idl:"name:lpServiceName" json:"service_name"`
	// lpDisplayName:  A pointer to a null-terminated string that user interface programs
	// use to identify the service.
	DisplayName string `idl:"name:lpDisplayName" json:"display_name"`
	// ServiceStatus:  A SERVICE_STATUS (section 2.2.47) structure that contains status
	// information.
	ServiceStatus *ServiceStatus `idl:"name:ServiceStatus" json:"service_status"`
}

EnumServiceStatusW structure represents ENUM_SERVICE_STATUSW RPC structure.

The ENUM_SERVICE_STATUSW structure defines the name and status of a service in an SCM database and returns information about the service. String values are stored in Unicode.

func (*EnumServiceStatusW) MarshalNDR

func (o *EnumServiceStatusW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServiceStatusW) UnmarshalNDR

func (o *EnumServiceStatusW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumServicesStatusARequest

type EnumServicesStatusARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE access right MUST have
	// been granted to the caller when the RPC context handle to the service record was
	// created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// dwServiceType: A value that specifies the service records to enumerate based on the
	// Type value. This MUST be one or a combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// their ServiceStatus.dwCurrentState. This MUST be one of the following values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records that have ServiceStatus.dwCurrentState equal to one   |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates services that have ServiceStatus.dwCurrentState equal to              |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates services that have ServiceStatus.dwCurrentState equal to one of       |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the array pointed to by lpBuffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
}

EnumServicesStatusARequest structure represents the REnumServicesStatusA operation request

func (*EnumServicesStatusARequest) MarshalNDR

func (o *EnumServicesStatusARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServicesStatusARequest) UnmarshalNDR

func (o *EnumServicesStatusARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusAResponse

type EnumServicesStatusAResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to an array of ENUM_SERVICE_STATUSA (section 2.2.10) structures
	// that contain the name and service status information for each dependent service in
	// the database.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to store the array of service entries.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// Return: The REnumServicesStatusA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumServicesStatusAResponse structure represents the REnumServicesStatusA operation response

func (*EnumServicesStatusAResponse) MarshalNDR

func (*EnumServicesStatusAResponse) UnmarshalNDR

func (o *EnumServicesStatusAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusExARequest

type EnumServicesStatusExARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE access right MUST have
	// been granted to the caller when the RPC context handle to the SCM was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// InfoLevel: An SC_ENUM_TYPE (section 2.2.20) structure that specifies which service
	// attributes to return. MUST be SC_ENUM_PROCESS_INFO.
	InfoLevel EnumType `idl:"name:InfoLevel" json:"info_level"`
	// dwServiceType: A value that specifies what type of service records to enumerate.
	// This MUST be one or a combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------+
	//	|                                        |                                                          |
	//	|                 VALUE                  |                         MEANING                          |
	//	|                                        |                                                          |
	//	+----------------------------------------+----------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x0000000F       | Enumerates services of type SERVICE_KERNEL_DRIVER.       |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | Enumerates services of type SERVICE_FILE_SYSTEM_DRIVER.  |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Enumerates services of type SERVICE_WIN32_OWN_PROCESS.   |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Enumerates services of type SERVICE_WIN32_SHARE_PROCESS. |
	//	+----------------------------------------+----------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwServiceState: Value that specifies the service records to enumerate based on their
	// ServiceStatus.dwCurrentState. This MUST be one of the following values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records with the ServiceStatus.dwCurrentState value           |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the buffer pointed to by lpBuffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the current index in the enumerated list of service entries. The server
	// MUST assign a unique number to each service for the boot session, in increasing order,
	// and increment that number by one for each service addition. The value of the lpResumeIndex
	// parameter is one of these numbers, which the server can use to determine the resumption
	// point for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// pszGroupName: A pointer to a string that specifies service records to enumerate based
	// on their ServiceGroup values.
	GroupName string `idl:"name:pszGroupName;string;pointer:unique" json:"group_name"`
}

EnumServicesStatusExARequest structure represents the REnumServicesStatusExA operation request

func (*EnumServicesStatusExARequest) MarshalNDR

func (*EnumServicesStatusExARequest) UnmarshalNDR

func (o *EnumServicesStatusExARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusExAResponse

type EnumServicesStatusExAResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to the buffer that contains the status information in the form
	// of an array of ENUM_SERVICE_STATUS_PROCESSA (section 2.2.12) structures.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to return the configuration information.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the current index in the enumerated list of service entries. The server
	// MUST assign a unique number to each service for the boot session, in increasing order,
	// and increment that number by one for each service addition. The value of the lpResumeIndex
	// parameter is one of these numbers, which the server can use to determine the resumption
	// point for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// Return: The REnumServicesStatusExA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumServicesStatusExAResponse structure represents the REnumServicesStatusExA operation response

func (*EnumServicesStatusExAResponse) MarshalNDR

func (*EnumServicesStatusExAResponse) UnmarshalNDR

func (o *EnumServicesStatusExAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusExWRequest

type EnumServicesStatusExWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE access right MUST have
	// been granted to the caller when the RPC context handle to the SCM was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// InfoLevel: An SC_ENUM_TYPE (section 2.2.20) structure that specifies which service
	// attributes are returned. This MUST be SC_ENUM_PROCESS_INFO.
	InfoLevel EnumType `idl:"name:InfoLevel" json:"info_level"`
	// dwServiceType: A value that specifies the service records to enumerate based on their
	// Type. This MUST be one or a combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------+
	//	|                                        |                                                          |
	//	|                 VALUE                  |                         MEANING                          |
	//	|                                        |                                                          |
	//	+----------------------------------------+----------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | Enumerates services of type SERVICE_KERNEL_DRIVER.       |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | Enumerates services of type SERVICE_FILE_SYSTEM_DRIVER.  |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Enumerates services of type SERVICE_WIN32_OWN_PROCESS.   |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Enumerates services of type SERVICE_WIN32_SHARE_PROCESS. |
	//	+----------------------------------------+----------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// their ServiceStatus.dwCurrentState. This MUST be one of the following values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records with the ServiceStatus.dwCurrentState value           |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates service records with ServiceStatus.dwCurrentState values from         |
	//	|                              | the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,     |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the buffer pointed to by lpBuffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the current index in the enumerated list of service entries. The server
	// MUST assign a unique number to each service for the boot session, in increasing order,
	// and increment that number by one for each service addition. The value of the lpResumeIndex
	// parameter is one of these numbers, which the server can use to determine the resumption
	// point for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// pszGroupName: A pointer to a string that specifies service records to enumerate based
	// on their ServiceGroup values.
	GroupName string `idl:"name:pszGroupName;string;pointer:unique" json:"group_name"`
}

EnumServicesStatusExWRequest structure represents the REnumServicesStatusExW operation request

func (*EnumServicesStatusExWRequest) MarshalNDR

func (*EnumServicesStatusExWRequest) UnmarshalNDR

func (o *EnumServicesStatusExWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusExWResponse

type EnumServicesStatusExWResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to the buffer that contains the status information in the form
	// of an array of ENUM_SERVICE_STATUS_PROCESSW (section 2.2.13) structures.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to return the configuration information if the
	// method fails.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the current index in the enumerated list of service entries. The server
	// MUST assign a unique number to each service for the boot session, in increasing order,
	// and increment that number by one for each service addition. The value of the lpResumeIndex
	// parameter is one of these numbers, which the server can use to determine the resumption
	// point for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// Return: The REnumServicesStatusExW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumServicesStatusExWResponse structure represents the REnumServicesStatusExW operation response

func (*EnumServicesStatusExWResponse) MarshalNDR

func (*EnumServicesStatusExWResponse) UnmarshalNDR

func (o *EnumServicesStatusExWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusWRequest

type EnumServicesStatusWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE access right MUST have
	// been granted to the caller when the RPC context handle to the service record was
	// created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// dwServiceType: A value that specifies what types of service records to enumerate.
	// This MUST be one or a combination of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system           |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | Service that runs in its own process.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | Service that shares a process with other services.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwServiceState: A value that specifies the service records to enumerate based on
	// the value of their ServiceStatus.dwCurrentState. This MUST be one of the following
	// values.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ACTIVE 0x00000001    | Enumerates service records that have ServiceStatus.dwCurrentState equal to one   |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INACTIVE 0x00000002  | Enumerates service records that have ServiceStatus.dwCurrentState equal to       |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STATE_ALL 0x00000003 | Enumerates service records that have ServiceStatus.dwCurrentState equal to one   |
	//	|                              | of the following: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,  |
	//	|                              | SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, and             |
	//	|                              | SERVICE_STOPPED.                                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ServiceState uint32 `idl:"name:dwServiceState" json:"service_state"`
	// cbBufSize: The size, in bytes, of the array pointed to by the lpBuffer parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
}

EnumServicesStatusWRequest structure represents the REnumServicesStatusW operation request

func (*EnumServicesStatusWRequest) MarshalNDR

func (o *EnumServicesStatusWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumServicesStatusWRequest) UnmarshalNDR

func (o *EnumServicesStatusWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumServicesStatusWResponse

type EnumServicesStatusWResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to an array of ENUM_SERVICE_STATUSW (section 2.2.11) structures
	// that contain the name and service status information for each service in the database.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to store the array of service entries.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// lpServicesReturned: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable
	// that contains the number of service entries returned.
	ServicesReturned uint32 `idl:"name:lpServicesReturned" json:"services_returned"`
	// lpResumeIndex: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// specifies the current position in the status enumeration. The server MUST assign
	// a unique number to each service for the boot session, in increasing order, and increment
	// that number by one for each service addition. The value of the lpResumeIndex parameter
	// is one of these numbers, which the server can use to determine the resumption point
	// for the enumeration.
	ResumeIndex uint32 `idl:"name:lpResumeIndex;pointer:unique" json:"resume_index"`
	// Return: The REnumServicesStatusW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumServicesStatusWResponse structure represents the REnumServicesStatusW operation response

func (*EnumServicesStatusWResponse) MarshalNDR

func (*EnumServicesStatusWResponse) UnmarshalNDR

func (o *EnumServicesStatusWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumType

type EnumType uint32

EnumType type represents SC_ENUM_TYPE RPC enumeration.

The SC_ENUM_TYPE enumeration specifies information levels for the REnumServicesStatusExA and REnumServicesStatusExW methods.

var (
	// SC_ENUM_PROCESS_INFO:  Information level.
	EnumTypeProcessInfo EnumType = 0
)

func (EnumType) String

func (o EnumType) String() string

type GetNotifyResultsRequest

type GetNotifyResultsRequest struct {
	// hNotify: An SC_NOTIFY_RPC_HANDLE (section 2.2.6) data type that defines a handle
	// to the notification status associated with the client. This is the handle returned
	// by an RNotifyServiceStatusChange call.
	Notify *Notify `idl:"name:hNotify" json:"notify"`
}

GetNotifyResultsRequest structure represents the RGetNotifyResults operation request

func (*GetNotifyResultsRequest) MarshalNDR

func (o *GetNotifyResultsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetNotifyResultsRequest) UnmarshalNDR

func (o *GetNotifyResultsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetNotifyResultsResponse

type GetNotifyResultsResponse struct {
	// ppNotifyParams: A pointer to a buffer that receives an SC_RPC_NOTIFY_PARAMS_LIST
	// (section 2.2.24) data type.
	NotifyParams *NotifyParamsList `idl:"name:ppNotifyParams" json:"notify_params"`
	// Return: The RGetNotifyResults return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetNotifyResultsResponse structure represents the RGetNotifyResults operation response

func (*GetNotifyResultsResponse) MarshalNDR

func (o *GetNotifyResultsResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetNotifyResultsResponse) UnmarshalNDR

func (o *GetNotifyResultsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceDisplayNameARequest

type GetServiceDisplayNameARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created previously, using one of the open methods specified in section
	// 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated ANSI string that specifies the service
	// name.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpcchBuffer: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the pointer
	// to a variable that specifies the size, in chars, of the buffer. On output, this variable
	// receives the size of the service's display name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
}

GetServiceDisplayNameARequest structure represents the RGetServiceDisplayNameA operation request

func (*GetServiceDisplayNameARequest) MarshalNDR

func (*GetServiceDisplayNameARequest) UnmarshalNDR

func (o *GetServiceDisplayNameARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceDisplayNameAResponse

type GetServiceDisplayNameAResponse struct {
	// lpDisplayName: A pointer to a buffer that receives the null-terminated ANSI string
	// that contains the service display name.
	DisplayName string `idl:"name:lpDisplayName;size_is:(lpcchBuffer);string" json:"display_name"`
	// lpcchBuffer: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the pointer
	// to a variable that specifies the size, in chars, of the buffer. On output, this variable
	// receives the size of the service's display name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
	// Return: The RGetServiceDisplayNameA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetServiceDisplayNameAResponse structure represents the RGetServiceDisplayNameA operation response

func (*GetServiceDisplayNameAResponse) MarshalNDR

func (*GetServiceDisplayNameAResponse) UnmarshalNDR

type GetServiceDisplayNameWRequest

type GetServiceDisplayNameWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database, created using one of the open methods specified in section 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated UNICODE string that specifies the service
	// name.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// lpcchBuffer: A DWORD data type that defines the pointer to a variable that specifies
	// the size, in wchar_ts, of the buffer. On output, this variable receives the size
	// of the service's display name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
}

GetServiceDisplayNameWRequest structure represents the RGetServiceDisplayNameW operation request

func (*GetServiceDisplayNameWRequest) MarshalNDR

func (*GetServiceDisplayNameWRequest) UnmarshalNDR

func (o *GetServiceDisplayNameWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceDisplayNameWResponse

type GetServiceDisplayNameWResponse struct {
	// lpDisplayName: A pointer to a buffer that receives the null-terminated UNICODE string
	// that contains the service display name.
	DisplayName string `idl:"name:lpDisplayName;size_is:((lpcchBuffer+1));string" json:"display_name"`
	// lpcchBuffer: A DWORD data type that defines the pointer to a variable that specifies
	// the size, in wchar_ts, of the buffer. On output, this variable receives the size
	// of the service's display name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
	// Return: The RGetServiceDisplayNameW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetServiceDisplayNameWResponse structure represents the RGetServiceDisplayNameW operation response

func (*GetServiceDisplayNameWResponse) MarshalNDR

func (*GetServiceDisplayNameWResponse) UnmarshalNDR

type GetServiceKeyNameARequest

type GetServiceKeyNameARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created previously, using one of the open methods specified in section
	// 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpDisplayName: A pointer to a null-terminated ANSI string that specifies the service
	// display name.
	DisplayName string `idl:"name:lpDisplayName;string" json:"display_name"`
	// lpcchBuffer: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the pointer
	// to a variable that specifies the size, in chars, of the buffer. On output, this variable
	// receives the size of the service name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
}

GetServiceKeyNameARequest structure represents the RGetServiceKeyNameA operation request

func (*GetServiceKeyNameARequest) MarshalNDR

func (o *GetServiceKeyNameARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetServiceKeyNameARequest) UnmarshalNDR

func (o *GetServiceKeyNameARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceKeyNameAResponse

type GetServiceKeyNameAResponse struct {
	// lpKeyName: A pointer to a buffer that receives the null-terminated ANSI string that
	// contains the service name.
	KeyName string `idl:"name:lpKeyName;size_is:(lpcchBuffer);string" json:"key_name"`
	// lpcchBuffer: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the pointer
	// to a variable that specifies the size, in chars, of the buffer. On output, this variable
	// receives the size of the service name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
	// Return: The RGetServiceKeyNameA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetServiceKeyNameAResponse structure represents the RGetServiceKeyNameA operation response

func (*GetServiceKeyNameAResponse) MarshalNDR

func (o *GetServiceKeyNameAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetServiceKeyNameAResponse) UnmarshalNDR

func (o *GetServiceKeyNameAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceKeyNameWRequest

type GetServiceKeyNameWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpDisplayName: A pointer to a null-terminated UNICODE string that specifies the service
	// display name.
	DisplayName string `idl:"name:lpDisplayName;string" json:"display_name"`
	// lpcchBuffer: A DWORD data type that defines the pointer to a variable that specifies
	// the size, in wchar_ts, of the buffer. On output, this variable receives the size
	// of the service name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
}

GetServiceKeyNameWRequest structure represents the RGetServiceKeyNameW operation request

func (*GetServiceKeyNameWRequest) MarshalNDR

func (o *GetServiceKeyNameWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetServiceKeyNameWRequest) UnmarshalNDR

func (o *GetServiceKeyNameWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetServiceKeyNameWResponse

type GetServiceKeyNameWResponse struct {
	// lpServiceName: A pointer to a buffer that receives the null-terminated UNICODE string
	// that contains the service name.
	ServiceName string `idl:"name:lpServiceName;size_is:((lpcchBuffer+1));string" json:"service_name"`
	// lpcchBuffer: A DWORD data type that defines the pointer to a variable that specifies
	// the size, in wchar_ts, of the buffer. On output, this variable receives the size
	// of the service name, excluding the terminating null character.
	BufferLength uint32 `idl:"name:lpcchBuffer" json:"buffer_length"`
	// Return: The RGetServiceKeyNameW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetServiceKeyNameWResponse structure represents the RGetServiceKeyNameW operation response

func (*GetServiceKeyNameWResponse) MarshalNDR

func (o *GetServiceKeyNameWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetServiceKeyNameWResponse) UnmarshalNDR

func (o *GetServiceKeyNameWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Handle

type Handle dcetypes.ContextHandle

Handle structure represents SC_RPC_HANDLE RPC structure.

func (*Handle) ContextHandle

func (o *Handle) ContextHandle() *dcetypes.ContextHandle

func (*Handle) MarshalNDR

func (o *Handle) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Handle) UnmarshalNDR

func (o *Handle) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Lock

Lock structure represents SC_RPC_LOCK RPC structure.

func (*Lock) ContextHandle

func (o *Lock) ContextHandle() *dcetypes.ContextHandle

func (*Lock) MarshalNDR

func (o *Lock) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Lock) UnmarshalNDR

func (o *Lock) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type LockServiceDatabaseRequest

type LockServiceDatabaseRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The caller MUST be granted the SC_MANAGER_LOCK access right when the RPC context
	// handle is created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
}

LockServiceDatabaseRequest structure represents the RLockServiceDatabase operation request

func (*LockServiceDatabaseRequest) MarshalNDR

func (o *LockServiceDatabaseRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*LockServiceDatabaseRequest) UnmarshalNDR

func (o *LockServiceDatabaseRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type LockServiceDatabaseResponse

type LockServiceDatabaseResponse struct {
	// lpLock: An LPSC_RPC_LOCK (section 2.2.5) data type that defines the handle to the
	// resulting database lock.
	Lock *Lock `idl:"name:lpLock" json:"lock"`
	// Return: The RLockServiceDatabase return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

LockServiceDatabaseResponse structure represents the RLockServiceDatabase operation response

func (*LockServiceDatabaseResponse) MarshalNDR

func (*LockServiceDatabaseResponse) UnmarshalNDR

func (o *LockServiceDatabaseResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Notify

type Notify dcetypes.ContextHandle

Notify structure represents SC_NOTIFY_RPC_HANDLE RPC structure.

func (*Notify) ContextHandle

func (o *Notify) ContextHandle() *dcetypes.ContextHandle

func (*Notify) MarshalNDR

func (o *Notify) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notify) UnmarshalNDR

func (o *Notify) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type NotifyBootConfigStatusRequest

type NotifyBootConfigStatusRequest struct {
	// lpMachineName: An SVCCTL_HANDLEW (section 2.2.3) data type that defines the handle
	// that contains the UNICODE string name of the server to be notified.
	MachineName string `idl:"name:lpMachineName;string;pointer:unique" json:"machine_name"`
	// BootAcceptable: A value that specifies whether the configuration used when booting
	// the system is acceptable. MUST be one of the following values.
	//
	//	+--------------------+----------------------------------------------------------------------------------+
	//	|                    |                                                                                  |
	//	|       VALUE        |                                     MEANING                                      |
	//	|                    |                                                                                  |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 < value | Server saves the configuration as the last-known good configuration.             |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000         | Server immediately reboots, using the previously saved last-known good           |
	//	|                    | configuration.                                                                   |
	//	+--------------------+----------------------------------------------------------------------------------+
	BootAcceptable uint32 `idl:"name:BootAcceptable" json:"boot_acceptable"`
}

NotifyBootConfigStatusRequest structure represents the RNotifyBootConfigStatus operation request

func (*NotifyBootConfigStatusRequest) MarshalNDR

func (*NotifyBootConfigStatusRequest) UnmarshalNDR

func (o *NotifyBootConfigStatusRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type NotifyBootConfigStatusResponse

type NotifyBootConfigStatusResponse struct {
	// Return: The RNotifyBootConfigStatus return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

NotifyBootConfigStatusResponse structure represents the RNotifyBootConfigStatus operation response

func (*NotifyBootConfigStatusResponse) MarshalNDR

func (*NotifyBootConfigStatusResponse) UnmarshalNDR

type NotifyParams

type NotifyParams struct {
	// dwInfoLevel:  A value that indicates the version of the notification structure being
	// used.
	InfoLevel    uint32                     `idl:"name:dwInfoLevel" json:"info_level"`
	NotifyParams *NotifyParams_NotifyParams `idl:"name:NotifyParams;switch_is:dwInfoLevel" json:"notify_params"`
}

NotifyParams structure represents SC_RPC_NOTIFY_PARAMS RPC structure.

The SC_RPC_NOTIFY_PARAMS structure<6> contains the parameters associated with the notification information of the service status.

func (*NotifyParams) MarshalNDR

func (o *NotifyParams) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*NotifyParams) UnmarshalNDR

func (o *NotifyParams) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type NotifyParamsList

type NotifyParamsList struct {
	// cElements:  The number of elements in the array.
	ElementsCount uint32 `idl:"name:cElements" json:"elements_count"`
	// NotifyParamsArray:  An array of SC_RPC_NOTIFY_PARAMS (section 2.2.23) structures.
	NotifyParamsArray []*NotifyParams `idl:"name:NotifyParamsArray;size_is:(cElements)" json:"notify_params_array"`
}

NotifyParamsList structure represents SC_RPC_NOTIFY_PARAMS_LIST RPC structure.

The SC_RPC_NOTIFY_PARAMS_LIST structure<7> defines an array of service state change parameters.

func (*NotifyParamsList) MarshalNDR

func (o *NotifyParamsList) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*NotifyParamsList) NDRSizeInfo

func (o *NotifyParamsList) NDRSizeInfo() []uint64

func (*NotifyParamsList) UnmarshalNDR

func (o *NotifyParamsList) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type NotifyParams_NotifyParams

type NotifyParams_NotifyParams struct {
	// Types that are assignable to Value
	//
	// *NotifyParams_StatusChangeParam1
	// *NotifyParams_StatusChangeParams
	Value is_NotifyParams_NotifyParams `json:"value"`
}

NotifyParams_NotifyParams structure represents SC_RPC_NOTIFY_PARAMS union anonymous member.

The SC_RPC_NOTIFY_PARAMS structure<6> contains the parameters associated with the notification information of the service status.

func (*NotifyParams_NotifyParams) GetValue

func (o *NotifyParams_NotifyParams) GetValue() any

func (*NotifyParams_NotifyParams) MarshalUnionNDR

func (o *NotifyParams_NotifyParams) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*NotifyParams_NotifyParams) NDRSwitchValue

func (o *NotifyParams_NotifyParams) NDRSwitchValue(sw uint32) uint32

func (*NotifyParams_NotifyParams) UnmarshalUnionNDR

func (o *NotifyParams_NotifyParams) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type NotifyParams_StatusChangeParam1

type NotifyParams_StatusChangeParam1 struct {
	// pStatusChangeParam1:  A SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1 (section 2.2.43) structure
	// that contains the service status notification information.
	StatusChangeParam1 *ServiceNotifyStatusChangeParams1 `idl:"name:pStatusChangeParam1" json:"status_change_param1"`
}

NotifyParams_StatusChangeParam1 structure represents NotifyParams_NotifyParams RPC union arm.

It has following labels: 1

func (*NotifyParams_StatusChangeParam1) MarshalNDR

func (*NotifyParams_StatusChangeParam1) UnmarshalNDR

type NotifyParams_StatusChangeParams

type NotifyParams_StatusChangeParams struct {
	// pStatusChangeParams:  A SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 (section 2.2.44) structure
	// that contains the service status notification information.
	StatusChangeParams *ServiceNotifyStatusChangeParams2 `idl:"name:pStatusChangeParams" json:"status_change_params"`
}

NotifyParams_StatusChangeParams structure represents NotifyParams_NotifyParams RPC union arm.

It has following labels: 2

func (*NotifyParams_StatusChangeParams) MarshalNDR

func (*NotifyParams_StatusChangeParams) UnmarshalNDR

type NotifyServiceStatusChangeRequest

type NotifyServiceStatusChangeRequest struct {
	// hService: An SC_RPC_HANDLE data type that defines the handle to the SCM for SERVICE_NOTIFY_CREATED
	// and SERVICE_NOTIFY_DELETED notifications or to the service record for all other notification
	// types that MUST have been created previously, using one of the open methods specified
	// in section 3.1.4. The SC_MANAGER_ENUMERATE_SERVICE access right MUST have been granted
	// to the caller when the RPC context handle to the SCM was created, or the SERVICE_QUERY_STATUS
	// access right MUST have been granted to the caller when the RPC context handle to
	// the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// NotifyParams: An SC_RPC_NOTIFY_PARAMS (section 2.2.23) data type that defines the
	// service status notification information.
	NotifyParams *NotifyParams `idl:"name:NotifyParams" json:"notify_params"`
	// pClientProcessGuid: Not used. This MUST be ignored.
	ClientProcessGUID *dtyp.GUID `idl:"name:pClientProcessGuid" json:"client_process_guid"`
}

NotifyServiceStatusChangeRequest structure represents the RNotifyServiceStatusChange operation request

func (*NotifyServiceStatusChangeRequest) MarshalNDR

func (*NotifyServiceStatusChangeRequest) UnmarshalNDR

type NotifyServiceStatusChangeResponse

type NotifyServiceStatusChangeResponse struct {
	// pSCMProcessGuid: Not used. This MUST be ignored.
	SCMProcessGUID *dtyp.GUID `idl:"name:pSCMProcessGuid" json:"scm_process_guid"`
	// pfCreateRemoteQueue: Not used. This MUST be ignored.
	CreateRemoteQueue bool `idl:"name:pfCreateRemoteQueue" json:"create_remote_queue"`
	// phNotify: An LPSC_NOTIFY_RPC_HANDLE (section 2.2.6) data type that defines a handle
	// to the notification status associated with the client for the specified service.
	Notify *Notify `idl:"name:phNotify" json:"notify"`
	// Return: The RNotifyServiceStatusChange return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

NotifyServiceStatusChangeResponse structure represents the RNotifyServiceStatusChange operation response

func (*NotifyServiceStatusChangeResponse) MarshalNDR

func (*NotifyServiceStatusChangeResponse) UnmarshalNDR

type OpenSCM2Request

type OpenSCM2Request struct {
	DatabaseName  string `idl:"name:DatabaseName;string;pointer:unique" json:"database_name"`
	DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"`
}

OpenSCM2Request structure represents the ROpenSCManager2 operation request

func (*OpenSCM2Request) MarshalNDR

func (o *OpenSCM2Request) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCM2Request) UnmarshalNDR

func (o *OpenSCM2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenSCM2Response

type OpenSCM2Response struct {
	SCM *Handle `idl:"name:ScmHandle" json:"scm"`
	// Return: The ROpenSCManager2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenSCM2Response structure represents the ROpenSCManager2 operation response

func (*OpenSCM2Response) MarshalNDR

func (o *OpenSCM2Response) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCM2Response) UnmarshalNDR

func (o *OpenSCM2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenSCMARequest

type OpenSCMARequest struct {
	// lpMachineName: An SVCCTL_HANDLEA (section 2.2.2) data type that defines the pointer
	// to a null-terminated ANSI string that specifies the server's machine name.
	MachineName string `idl:"name:lpMachineName;string;pointer:unique" json:"machine_name"`
	// lpDatabaseName: A pointer to a null-terminated ANSI string that specifies the name
	// of the SCM database to open. The parameter MUST be set to NULL,  "ServicesActive",
	// or "ServicesFailed".
	DatabaseName string `idl:"name:lpDatabaseName;string;pointer:unique" json:"database_name"`
	// dwDesiredAccess: A value that specifies the access to the database. This MUST be
	// one of the values specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
}

OpenSCMARequest structure represents the ROpenSCManagerA operation request

func (*OpenSCMARequest) MarshalNDR

func (o *OpenSCMARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCMARequest) UnmarshalNDR

func (o *OpenSCMARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenSCMAResponse

type OpenSCMAResponse struct {
	// lpScHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the newly opened SCM connection.
	SCM *Handle `idl:"name:lpScHandle" json:"scm"`
	// Return: The ROpenSCManagerA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenSCMAResponse structure represents the ROpenSCManagerA operation response

func (*OpenSCMAResponse) MarshalNDR

func (o *OpenSCMAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCMAResponse) UnmarshalNDR

func (o *OpenSCMAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenSCMWRequest

type OpenSCMWRequest struct {
	// lpMachineName: An SVCCTL_HANDLEW (section 2.2.3) data type that defines the pointer
	// to a null-terminated UNICODE string that specifies the server's machine name.
	MachineName string `idl:"name:lpMachineName;string;pointer:unique" json:"machine_name"`
	// lpDatabaseName: A pointer to a null-terminated UNICODE string that specifies the
	// name of the SCM database to open. The parameter MUST be set to NULL, "ServicesActive",
	// or "ServicesFailed".
	DatabaseName string `idl:"name:lpDatabaseName;string;pointer:unique" json:"database_name"`
	// dwDesiredAccess: A value that specifies the access to the database. This MUST be
	// one of the values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
}

OpenSCMWRequest structure represents the ROpenSCManagerW operation request

func (*OpenSCMWRequest) MarshalNDR

func (o *OpenSCMWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCMWRequest) UnmarshalNDR

func (o *OpenSCMWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenSCMWResponse

type OpenSCMWResponse struct {
	// lpScHandle: An LPSC_RPC_HANDLE data type that defines the handle to the newly opened
	// SCM database.
	SCM *Handle `idl:"name:lpScHandle" json:"scm"`
	// Return: The ROpenSCManagerW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenSCMWResponse structure represents the ROpenSCManagerW operation response

func (*OpenSCMWResponse) MarshalNDR

func (o *OpenSCMWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenSCMWResponse) UnmarshalNDR

func (o *OpenSCMWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenServiceARequest

type OpenServiceARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database, created using one of the open methods specified in section 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated ANSI string that specifies the ServiceName
	// of the service record to open.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// dwDesiredAccess: A value that specifies the access right. This MUST be one of the
	// values specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
}

OpenServiceARequest structure represents the ROpenServiceA operation request

func (*OpenServiceARequest) MarshalNDR

func (o *OpenServiceARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenServiceARequest) UnmarshalNDR

func (o *OpenServiceARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenServiceAResponse

type OpenServiceAResponse struct {
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the found service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The ROpenServiceA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenServiceAResponse structure represents the ROpenServiceA operation response

func (*OpenServiceAResponse) MarshalNDR

func (o *OpenServiceAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenServiceAResponse) UnmarshalNDR

func (o *OpenServiceAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenServiceWRequest

type OpenServiceWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database, created using one of the open methods specified in section 3.1.4.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// lpServiceName: A pointer to a null-terminated UNICODE string that specifies the ServiceName
	// of the service record.
	//
	// The forward slash, back slash, comma, and space characters are illegal in service
	// names.
	ServiceName string `idl:"name:lpServiceName;string" json:"service_name"`
	// dwDesiredAccess: A value that specifies the access right. This MUST be one of the
	// values as specified in section 3.1.4.
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
}

OpenServiceWRequest structure represents the ROpenServiceW operation request

func (*OpenServiceWRequest) MarshalNDR

func (o *OpenServiceWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenServiceWRequest) UnmarshalNDR

func (o *OpenServiceWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenServiceWResponse

type OpenServiceWResponse struct {
	// lpServiceHandle: An LPSC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the found service record.
	Service *Handle `idl:"name:lpServiceHandle" json:"service"`
	// Return: The ROpenServiceW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenServiceWResponse structure represents the ROpenServiceW operation response

func (*OpenServiceWResponse) MarshalNDR

func (o *OpenServiceWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenServiceWResponse) UnmarshalNDR

func (o *OpenServiceWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfig2ARequest

type QueryServiceConfig2ARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwInfoLevel: A value that specifies the configuration information to query. This
	// SHOULD be one of the following values.
	//
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                        |                                                                                  |
	//	|                         VALUE                          |                                     MEANING                                      |
	//	|                                                        |                                                                                  |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_DESCRIPTION 0x00000001                  | The lpBuffer parameter is a pointer to a SERVICE_DESCRIPTIONA structure.         |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_FAILURE_ACTIONS 0x00000002              | The lpBuffer parameter is a pointer to a SERVICE_FAILURE_ACTIONSA structure.     |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_DELAYED_AUTO_START_INFO 0x00000003<56>  | The lpBuffer parameter is a pointer to a SERVICE_DELAYED_AUTO_START_INFO         |
	//	|                                                        | structure.                                                                       |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 0x00000004<57>     | The lpBuffer parameter is a pointer to a SERVICE_FAILURE_ACTIONS_FLAG structure. |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_SERVICE_SID_INFO 0x00000005<58>         | The lpBuffer parameter is a pointer to a SERVICE_SID_INFO structure.             |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 0x00000006<59> | The lpBuffer parameter is a pointer to a SERVICE_RPC_REQUIRED_PRIVILEGES_INFO    |
	//	|                                                        | structure.                                                                       |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_PRESHUTDOWN_INFO 0x00000007<60>         | The lpBuffer parameter is a pointer to a SERVICE_PRESHUTDOWN_INFO structure.     |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_PREFERRED_NODE 0x00000009<61>           | The lpBuffer parameter is a pointer to a SERVICE_PREFERRED_NODE_INFO             |
	//	|                                                        | structure.<62>                                                                   |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`
	// cbBufSize: The size, in bytes, of the lpBuffer parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceConfig2ARequest structure represents the RQueryServiceConfig2A operation request

func (*QueryServiceConfig2ARequest) MarshalNDR

func (*QueryServiceConfig2ARequest) UnmarshalNDR

func (o *QueryServiceConfig2ARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfig2AResponse

type QueryServiceConfig2AResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to the buffer that contains the service configuration information.
	// The format of this data depends on the value of the dwInfoLevel parameter.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_8K (section 2.2.8) data type that defines the
	// pointer to a variable that contains the number of bytes needed to return the configuration
	// information.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceConfig2A return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceConfig2AResponse structure represents the RQueryServiceConfig2A operation response

func (*QueryServiceConfig2AResponse) MarshalNDR

func (*QueryServiceConfig2AResponse) UnmarshalNDR

func (o *QueryServiceConfig2AResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfig2WRequest

type QueryServiceConfig2WRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	//
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                        |                                                                                  |
	//	|                         VALUE                          |                                     MEANING                                      |
	//	|                                                        |                                                                                  |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_DESCRIPTION 0x00000001                  | The lpBuffer parameter is a pointer to a SERVICE_DESCRIPTION_WOW64 (section      |
	//	|                                                        | 2.2.36) structure.                                                               |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_FAILURE_ACTIONS 0x00000002              | The lpBuffer parameter is a pointer to a SERVICE_FAILURE_ACTIONS_WOW64 (section  |
	//	|                                                        | 2.2.37) structure.                                                               |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_DELAYED_AUTO_START_INFO 0x00000003<65>  | The lpBuffer parameter is a pointer to a SERVICE_DELAYED_AUTO_START_INFO         |
	//	|                                                        | structure.                                                                       |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 0x00000004<66>     | The lpBuffer parameter is a pointer to a SERVICE_FAILURE_ACTIONS_FLAG structure. |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_SERVICE_SID_INFO 0x00000005<67>         | The lpBuffer parameter is a pointer to a SERVICE_SID_INFO structure.             |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 0x00000006<68> | The lpBuffer parameter is a pointer to a SERVICE_REQUIRED_PRIVILEGES_INFO_WOW64  |
	//	|                                                        | (section 2.2.38) structure.                                                      |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_PRESHUTDOWN_INFO 0x00000007<69>         | The lpBuffer parameter is a pointer to a SERVICE_PRESHUTDOWN_INFO structure.     |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_CONFIG_PREFERRED_NODE 0x00000009<70>           | The lpBuffer parameter is a pointer to a SERVICE_PREFERRED_NODE_INFO             |
	//	|                                                        | structure.<71>                                                                   |
	//	+--------------------------------------------------------+----------------------------------------------------------------------------------+
	Service *Handle `idl:"name:hService" json:"service"`
	// dwInfoLevel: A value that specifies the configuration information to query. This
	// MUST be one of the following values.
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`
	// cbBufSize: The size, in bytes, of the lpBuffer parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceConfig2WRequest structure represents the RQueryServiceConfig2W operation request

func (*QueryServiceConfig2WRequest) MarshalNDR

func (*QueryServiceConfig2WRequest) UnmarshalNDR

func (o *QueryServiceConfig2WRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfig2WResponse

type QueryServiceConfig2WResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to the buffer that contains the service configuration information.
	// The format of this data depends on the value of the dwInfoLevel parameter.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_8K (section 2.2.8) data type that defines the
	// pointer to a variable that receives the number of bytes needed to return the configuration
	// information.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceConfig2W return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceConfig2WResponse structure represents the RQueryServiceConfig2W operation response

func (*QueryServiceConfig2WResponse) MarshalNDR

func (*QueryServiceConfig2WResponse) UnmarshalNDR

func (o *QueryServiceConfig2WResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigA

type QueryServiceConfigA struct {
	// dwServiceType:  The type of service. This member MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | A service that runs in its own process.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | A service that shares a process with other services.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType:  Defines when to start the service. This member MUST be one of the following
	// values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | A service started automatically by the SCM during system startup.                |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | A service that cannot be started. Attempts to start the service result in the    |
	//	|                                 | error code ERROR_SERVICE_DISABLED.                                               |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl:  The severity of the error if this service fails to start during
	// startup, and the action that the SCM takes if failure occurs.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error in the event log and continues the startup operation.     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error in the event log. If the last-known good configuration    |
	//	|                                   | is being started, the startup operation continues. Otherwise, the system is      |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error in the event log if possible. If the last-known     |
	//	|                                   | good configuration is being started, the startup operation fails. Otherwise, the |
	//	|                                   | system is restarted with the last-known good configuration.                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName:  A pointer to a null-terminated string that contains the fully
	// qualified path to the service binary file. The path MAY include arguments. If the
	// path contains a space, it MUST be quoted so that it is correctly interpreted. For
	// example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup:  A pointer to a null-terminated string that names the service group
	// for load-ordering of which this service is a member. If the pointer is NULL or if
	// it points to an empty string, the service does not belong to a group.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string" json:"load_order_group"`
	// dwTagId:  A unique tag value for this service within the service group specified
	// by the lpLoadOrderGroup parameter. A value of 0 indicates that the service has not
	// been assigned a tag.
	TagID uint32 `idl:"name:dwTagId" json:"tag_id"`
	// lpDependencies:  A pointer to an array of null-separated names of services or names
	// of service groups that MUST start before this service. The array is doubly null-terminated.
	// Service group names are prefixed with a "+" character (to distinguish them from service
	// names). If the pointer is NULL or if it points to an empty string, the service has
	// no dependencies. Cyclic dependency between services is not allowed. The character
	// set is ANSI. Dependency on a service means that this service can only run if the
	// service it depends on is running. Dependency on a group means that this service can
	// run if at least one member of the group is running after an attempt to start all
	// members of the group.
	Dependencies string `idl:"name:lpDependencies;string" json:"dependencies"`
	// lpServiceStartName:  A pointer to a null-terminated string that contains the service
	// name.
	ServiceStartName string `idl:"name:lpServiceStartName;string" json:"service_start_name"`
	// lpDisplayName:  A pointer to a null-terminated string that contains the service display
	// name.
	DisplayName string `idl:"name:lpDisplayName;string" json:"display_name"`
}

QueryServiceConfigA structure represents QUERY_SERVICE_CONFIGA RPC structure.

The QUERY_SERVICE_CONFIGA structure defines configuration information about an installed service. String values are stored in ANSI.

func (*QueryServiceConfigA) MarshalNDR

func (o *QueryServiceConfigA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceConfigA) UnmarshalNDR

func (o *QueryServiceConfigA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type QueryServiceConfigARequest

type QueryServiceConfigARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// cbBufSize: The size, in bytes, of the lpServiceConfig parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceConfigARequest structure represents the RQueryServiceConfigA operation request

func (*QueryServiceConfigARequest) MarshalNDR

func (o *QueryServiceConfigARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceConfigARequest) UnmarshalNDR

func (o *QueryServiceConfigARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigAResponse

type QueryServiceConfigAResponse struct {
	// lpServiceConfig: A pointer to a buffer that contains the QUERY_SERVICE_CONFIGA structure.
	ServiceConfig *QueryServiceConfigA `idl:"name:lpServiceConfig" json:"service_config"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_8K (section 2.2.8) data type that defines the
	// pointer to a variable that contains the number of bytes needed to return all the
	// configuration information if the function fails.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceConfigA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceConfigAResponse structure represents the RQueryServiceConfigA operation response

func (*QueryServiceConfigAResponse) MarshalNDR

func (*QueryServiceConfigAResponse) UnmarshalNDR

func (o *QueryServiceConfigAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigExRequest

type QueryServiceConfigExRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwInfoLevel: The information level for the service configuration parameters. This
	// MUST be set to 0x00000008 which corresponds to the service's trigger information.
	InfoLevel uint32 `idl:"name:dwInfoLevel" json:"info_level"`
}

QueryServiceConfigExRequest structure represents the RQueryServiceConfigEx operation request

func (*QueryServiceConfigExRequest) MarshalNDR

func (*QueryServiceConfigExRequest) UnmarshalNDR

func (o *QueryServiceConfigExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigExResponse

type QueryServiceConfigExResponse struct {
	// pInfo: A pointer to an SC_RPC_CONFIG_INFOW (section 2.2.22) structure that contains
	// optional configuration information.
	Info *ConfigInfoW `idl:"name:pInfo" json:"info"`
	// Return: The RQueryServiceConfigEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceConfigExResponse structure represents the RQueryServiceConfigEx operation response

func (*QueryServiceConfigExResponse) MarshalNDR

func (*QueryServiceConfigExResponse) UnmarshalNDR

func (o *QueryServiceConfigExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigW

type QueryServiceConfigW struct {
	// dwServiceType:  The type of service. This member MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | A service that runs in its own process.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | A service that shares a process with other services.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwStartType:  Defines when to start the service. This member MUST be one of the following
	// values.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|              VALUE              |                                     MEANING                                      |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_BOOT_START 0x00000000   | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services.                                                                 |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SYSTEM_START 0x00000001 | Starts the driver service when the system boots up. This value is valid only for |
	//	|                                 | driver services. The services marked SERVICE_SYSTEM_START are started after all  |
	//	|                                 | SERVICE_BOOT_START services have been started.                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_AUTO_START 0x00000002   | A service started automatically by the SCM during system startup.                |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DEMAND_START 0x00000003 | Starts the service when a client requests the SCM to start the service.          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_DISABLED 0x00000004     | A service that cannot be started. Attempts to start the service result in the    |
	//	|                                 | error code ERROR_SERVICE_DISABLED.                                               |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	StartType uint32 `idl:"name:dwStartType" json:"start_type"`
	// dwErrorControl:  The severity of the error if this service fails to start during
	// startup and the action the SCM takes if failure occurs.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_IGNORE 0x00000000   | The SCM ignores the error and continues the startup operation.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_NORMAL 0x00000001   | The SCM logs the error in the event log and continues the startup operation.     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_SEVERE 0x00000002   | The SCM logs the error in the event log. If the last-known good configuration    |
	//	|                                   | is being started, the startup operation continues. Otherwise, the system is      |
	//	|                                   | restarted with the last-known good configuration.                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_ERROR_CRITICAL 0x00000003 | The SCM SHOULD log the error in the event log if possible. If the last-known     |
	//	|                                   | good configuration is being started, the startup operation fails. Otherwise, the |
	//	|                                   | system is restarted with the last-known good configuration.                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ErrorControl uint32 `idl:"name:dwErrorControl" json:"error_control"`
	// lpBinaryPathName:  A pointer to a null-terminated string that contains the fully
	// qualified path to the service binary file. The path MAY include arguments. If the
	// path contains a space, it MUST be quoted so that it is correctly interpreted. For
	// example, "d:\\my share\\myservice.exe" is specified as "\"d:\\my share\\myservice.exe\"".
	BinaryPathName string `idl:"name:lpBinaryPathName;string" json:"binary_path_name"`
	// lpLoadOrderGroup:  A pointer to a null-terminated string that names the service group
	// for load ordering of which this service is a member. If the pointer is NULL or if
	// it points to an empty string, the service does not belong to a group.
	LoadOrderGroup string `idl:"name:lpLoadOrderGroup;string" json:"load_order_group"`
	// dwTagId:  A unique tag value for this service in the service group. A value of 0
	// indicates that the service has not been assigned a tag.
	TagID uint32 `idl:"name:dwTagId" json:"tag_id"`
	// lpDependencies:  A pointer to an array of null-separated names of services or service
	// groups that MUST start before this service. The array is doubly null-terminated.
	// Service group names are prefixed with a "+" character (to distinguish them from service
	// names). If the pointer is NULL or if it points to an empty string, the service has
	// no dependencies. Cyclic dependency between services is not allowed. The character
	// set is Unicode. Dependency on a service means that this service can only run if the
	// service it depends on is running. Dependency on a group means that this service can
	// run if at least one member of the group is running after an attempt to start all
	// members of the group.
	Dependencies string `idl:"name:lpDependencies;string" json:"dependencies"`
	// lpServiceStartName:  A pointer to a null-terminated string that contains the service
	// start (key) name.
	ServiceStartName string `idl:"name:lpServiceStartName;string" json:"service_start_name"`
	// lpDisplayName:  A pointer to a null-terminated string that contains the service display
	// name.
	DisplayName string `idl:"name:lpDisplayName;string" json:"display_name"`
}

QueryServiceConfigW structure represents QUERY_SERVICE_CONFIGW RPC structure.

The QUERY_SERVICE_CONFIGW structure defines configuration information about an installed service. String values are stored in Unicode.

func (*QueryServiceConfigW) MarshalNDR

func (o *QueryServiceConfigW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceConfigW) UnmarshalNDR

func (o *QueryServiceConfigW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type QueryServiceConfigWRequest

type QueryServiceConfigWRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_CONFIG access right MUST have been
	// granted to the caller when the RPC context handle was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// cbBufSize: The size, in bytes, of the lpServiceConfig parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceConfigWRequest structure represents the RQueryServiceConfigW operation request

func (*QueryServiceConfigWRequest) MarshalNDR

func (o *QueryServiceConfigWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceConfigWRequest) UnmarshalNDR

func (o *QueryServiceConfigWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceConfigWResponse

type QueryServiceConfigWResponse struct {
	// lpServiceConfig: A pointer to a buffer that contains the QUERY_SERVICE_CONFIGW (section
	// 2.2.15) structure.
	ServiceConfig *QueryServiceConfigW `idl:"name:lpServiceConfig" json:"service_config"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_8K (section 2.2.8) data type that defines the
	// pointer to a variable that contains the number of bytes needed to return all the
	// configuration information if the method fails.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceConfigW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceConfigWResponse structure represents the RQueryServiceConfigW operation response

func (*QueryServiceConfigWResponse) MarshalNDR

func (*QueryServiceConfigWResponse) UnmarshalNDR

func (o *QueryServiceConfigWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceLockStatusA

type QueryServiceLockStatusA struct {
	// fIsLocked:  The lock status of the database. If this member is nonzero, the database
	// is locked. If it is 0, the database is unlocked.
	IsLocked uint32 `idl:"name:fIsLocked" json:"is_locked"`
	// lpLockOwner:  A pointer to a null-terminated string that contains the name of the
	// user that acquired the lock.
	LockOwner string `idl:"name:lpLockOwner;string" json:"lock_owner"`
	// dwLockDuration:  The elapsed time, in seconds, since the lock was first acquired.
	LockDuration uint32 `idl:"name:dwLockDuration" json:"lock_duration"`
}

QueryServiceLockStatusA structure represents QUERY_SERVICE_LOCK_STATUSA RPC structure.

The QUERY_SERVICE_LOCK_STATUSA structure defines information about the lock status of an SCM database. String values are stored in ANSI.

func (*QueryServiceLockStatusA) MarshalNDR

func (o *QueryServiceLockStatusA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceLockStatusA) UnmarshalNDR

func (o *QueryServiceLockStatusA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type QueryServiceLockStatusARequest

type QueryServiceLockStatusARequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created previously, using one of the open methods specified in section
	// 3.1.4. The SC_MANAGER_QUERY_LOCK_STATUS access right MUST have been granted to the
	// caller when the RPC context handle was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// cbBufSize: The size, in bytes, of the lpLockStatus buffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceLockStatusARequest structure represents the RQueryServiceLockStatusA operation request

func (*QueryServiceLockStatusARequest) MarshalNDR

func (*QueryServiceLockStatusARequest) UnmarshalNDR

type QueryServiceLockStatusAResponse

type QueryServiceLockStatusAResponse struct {
	// lpLockStatus: A pointer to a buffer that contains the QUERY_SERVICE_LOCK_STATUSA
	// (section 2.2.16) structures.
	LockStatus *QueryServiceLockStatusA `idl:"name:lpLockStatus" json:"lock_status"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the
	// pointer to a variable that receives the number of bytes needed to return all the
	// lock status.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceLockStatusA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceLockStatusAResponse structure represents the RQueryServiceLockStatusA operation response

func (*QueryServiceLockStatusAResponse) MarshalNDR

func (*QueryServiceLockStatusAResponse) UnmarshalNDR

type QueryServiceLockStatusW

type QueryServiceLockStatusW struct {
	// fIsLocked:  The lock status of the database. If this member is nonzero, the database
	// is locked. If it is 0, the database is unlocked.
	IsLocked uint32 `idl:"name:fIsLocked" json:"is_locked"`
	// lpLockOwner:  A pointer to a null-terminated string that contains the name of the
	// user that acquired the lock.
	LockOwner string `idl:"name:lpLockOwner;string" json:"lock_owner"`
	// dwLockDuration:  The elapsed time, in seconds, since the lock was first acquired.
	LockDuration uint32 `idl:"name:dwLockDuration" json:"lock_duration"`
}

QueryServiceLockStatusW structure represents QUERY_SERVICE_LOCK_STATUSW RPC structure.

The QUERY_SERVICE_LOCK_STATUSW structure defines information about the lock status of an SCM database. String values are stored in Unicode.

func (*QueryServiceLockStatusW) MarshalNDR

func (o *QueryServiceLockStatusW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceLockStatusW) UnmarshalNDR

func (o *QueryServiceLockStatusW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type QueryServiceLockStatusWRequest

type QueryServiceLockStatusWRequest struct {
	// hSCManager: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to
	// the SCM database created using one of the open methods specified in section 3.1.4.
	// The SC_MANAGER_QUERY_LOCK_STATUS access right MUST have been granted to the caller
	// when the RPC context handle was created.
	ServiceManager *Handle `idl:"name:hSCManager" json:"service_manager"`
	// cbBufSize: The size, in bytes, of the lpLockStatus buffer.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceLockStatusWRequest structure represents the RQueryServiceLockStatusW operation request

func (*QueryServiceLockStatusWRequest) MarshalNDR

func (*QueryServiceLockStatusWRequest) UnmarshalNDR

type QueryServiceLockStatusWResponse

type QueryServiceLockStatusWResponse struct {
	// lpLockStatus: A pointer to a buffer that contains QUERY_SERVICE_LOCK_STATUSW (section
	// 2.2.17) structures.
	LockStatus *QueryServiceLockStatusW `idl:"name:lpLockStatus" json:"lock_status"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_4K (section 2.2.7) data type that defines the
	// pointer to a variable that receives the number of bytes needed to return all the
	// lock status information if the method fails.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceLockStatusW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceLockStatusWResponse structure represents the RQueryServiceLockStatusW operation response

func (*QueryServiceLockStatusWResponse) MarshalNDR

func (*QueryServiceLockStatusWResponse) UnmarshalNDR

type QueryServiceObjectSecurityRequest

type QueryServiceObjectSecurityRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to a
	// service record or to the SCM database that MUST have been created previously using
	// one of the open methods specified in section 3.1.4.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwSecurityInformation: A SECURITY_INFORMATION (section 2.2.1) type definition that
	// specifies the security information being requested.
	SecurityInformation uint32 `idl:"name:dwSecurityInformation" json:"security_information"`
	// cbBufSize: Size, in bytes, of the buffer to which the lpSecurityDescriptor parameter
	// points.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceObjectSecurityRequest structure represents the RQueryServiceObjectSecurity operation request

func (*QueryServiceObjectSecurityRequest) MarshalNDR

func (*QueryServiceObjectSecurityRequest) UnmarshalNDR

type QueryServiceObjectSecurityResponse

type QueryServiceObjectSecurityResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpSecurityDescriptor: A pointer to a buffer that contains a copy of the SECURITY_DESCRIPTOR
	// structure (as specified in [MS-DTYP] section 2.4.6) for the specified service object.
	SecurityDescriptor []byte `idl:"name:lpSecurityDescriptor;size_is:(cbBufSize)" json:"security_descriptor"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_256K (section 2.2.9) pointer to a variable that
	// contains the number of bytes needed to return all the requested SECURITY_DESCRIPTOR
	// information if the method fails.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceObjectSecurity return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceObjectSecurityResponse structure represents the RQueryServiceObjectSecurity operation response

func (*QueryServiceObjectSecurityResponse) MarshalNDR

func (*QueryServiceObjectSecurityResponse) UnmarshalNDR

type QueryServiceStatusExRequest

type QueryServiceStatusExRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously, using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_STATUS access right MUST have been
	// granted to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// InfoLevel: An enumerated value from SC_STATUS_TYPE (section 2.2.29) that specifies
	// which service attributes are returned. MUST be SC_STATUS_PROCESS_INFO.
	InfoLevel StatusType `idl:"name:InfoLevel" json:"info_level"`
	// cbBufSize: The size, in bytes, of the lpBuffer parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

QueryServiceStatusExRequest structure represents the RQueryServiceStatusEx operation request

func (*QueryServiceStatusExRequest) MarshalNDR

func (*QueryServiceStatusExRequest) UnmarshalNDR

func (o *QueryServiceStatusExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceStatusExResponse

type QueryServiceStatusExResponse struct {
	// XXX: cbBufSize is an implicit input depedency for output parameters
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`

	// lpBuffer: A pointer to the buffer that contains the status information in the form
	// of a SERVICE_STATUS_PROCESS (section 2.2.49) structure.
	Buffer []byte `idl:"name:lpBuffer;size_is:(cbBufSize)" json:"buffer"`
	// pcbBytesNeeded: An LPBOUNDED_DWORD_8K (section 2.2.8) data type that defines the
	// pointer to a variable that contains the number of bytes needed to return the configuration
	// information.
	BytesNeededLength uint32 `idl:"name:pcbBytesNeeded" json:"bytes_needed_length"`
	// Return: The RQueryServiceStatusEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceStatusExResponse structure represents the RQueryServiceStatusEx operation response

func (*QueryServiceStatusExResponse) MarshalNDR

func (*QueryServiceStatusExResponse) UnmarshalNDR

func (o *QueryServiceStatusExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceStatusRequest

type QueryServiceStatusRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously using one of the open methods
	// specified in section 3.1.4. The SERVICE_QUERY_STATUS access right MUST have been
	// granted to the caller when the RPC context handle was created.
	Service *Handle `idl:"name:hService" json:"service"`
}

QueryServiceStatusRequest structure represents the RQueryServiceStatus operation request

func (*QueryServiceStatusRequest) MarshalNDR

func (o *QueryServiceStatusRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceStatusRequest) UnmarshalNDR

func (o *QueryServiceStatusRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryServiceStatusResponse

type QueryServiceStatusResponse struct {
	// lpServiceStatus: Pointer to a SERVICE_STATUS (section 2.2.47) structure that contains
	// the status information for the service.
	ServiceStatus *ServiceStatus `idl:"name:lpServiceStatus" json:"service_status"`
	// Return: The RQueryServiceStatus return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryServiceStatusResponse structure represents the RQueryServiceStatus operation response

func (*QueryServiceStatusResponse) MarshalNDR

func (o *QueryServiceStatusResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryServiceStatusResponse) UnmarshalNDR

func (o *QueryServiceStatusResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RequiredPrivilegesInfo

type RequiredPrivilegesInfo struct {
	// cbRequiredPrivileges:  Size, in bytes, of the pRequiredPrivileges buffer.
	RequiredPrivilegesLength uint32 `idl:"name:cbRequiredPrivileges" json:"required_privileges_length"`
	// pRequiredPrivileges:  Buffer that contains the required privileges of a service in
	// the format of a sequence of null-terminated strings, terminated by an empty string
	// (\0). The privilege constants are detailed in [MS-LSAD] section 3.1.1.2.1.
	RequiredPrivileges []byte `idl:"name:pRequiredPrivileges;size_is:(cbRequiredPrivileges)" json:"required_privileges"`
}

RequiredPrivilegesInfo structure represents SERVICE_RPC_REQUIRED_PRIVILEGES_INFO RPC structure.

The SERVICE_RPC_REQUIRED_PRIVILEGES_INFO structure<21> defines the required privileges for a service.

func (*RequiredPrivilegesInfo) MarshalNDR

func (o *RequiredPrivilegesInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RequiredPrivilegesInfo) UnmarshalNDR

func (o *RequiredPrivilegesInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceControlInParamsA

type ServiceControlInParamsA struct {
	// Types that are assignable to Value
	//
	// *ServiceControlInParamsA_StatusReasonInParams
	Value is_ServiceControlInParamsA `json:"value"`
}

ServiceControlInParamsA structure represents SC_RPC_SERVICE_CONTROL_IN_PARAMSA RPC union.

func (*ServiceControlInParamsA) GetValue

func (o *ServiceControlInParamsA) GetValue() any

func (*ServiceControlInParamsA) MarshalUnionNDR

func (o *ServiceControlInParamsA) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ServiceControlInParamsA) NDRSwitchValue

func (o *ServiceControlInParamsA) NDRSwitchValue(sw uint32) uint32

func (*ServiceControlInParamsA) UnmarshalUnionNDR

func (o *ServiceControlInParamsA) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ServiceControlInParamsA_StatusReasonInParams

type ServiceControlInParamsA_StatusReasonInParams struct {
	StatusReasonInParams *ServiceControlStatusReasonInParamsA `idl:"name:psrInParams" json:"status_reason_in_params"`
}

ServiceControlInParamsA_StatusReasonInParams structure represents SC_RPC_SERVICE_CONTROL_IN_PARAMSA RPC union arm.

It has following labels: 1

func (*ServiceControlInParamsA_StatusReasonInParams) MarshalNDR

func (*ServiceControlInParamsA_StatusReasonInParams) UnmarshalNDR

type ServiceControlInParamsW

type ServiceControlInParamsW struct {
	// Types that are assignable to Value
	//
	// *ServiceControlInParamsW_StatusReasonInParams
	Value is_ServiceControlInParamsW `json:"value"`
}

ServiceControlInParamsW structure represents SC_RPC_SERVICE_CONTROL_IN_PARAMSW RPC union.

func (*ServiceControlInParamsW) GetValue

func (o *ServiceControlInParamsW) GetValue() any

func (*ServiceControlInParamsW) MarshalUnionNDR

func (o *ServiceControlInParamsW) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ServiceControlInParamsW) NDRSwitchValue

func (o *ServiceControlInParamsW) NDRSwitchValue(sw uint32) uint32

func (*ServiceControlInParamsW) UnmarshalUnionNDR

func (o *ServiceControlInParamsW) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ServiceControlInParamsW_StatusReasonInParams

type ServiceControlInParamsW_StatusReasonInParams struct {
	StatusReasonInParams *ServiceControlStatusReasonInParamsW `idl:"name:psrInParams" json:"status_reason_in_params"`
}

ServiceControlInParamsW_StatusReasonInParams structure represents SC_RPC_SERVICE_CONTROL_IN_PARAMSW RPC union arm.

It has following labels: 1

func (*ServiceControlInParamsW_StatusReasonInParams) MarshalNDR

func (*ServiceControlInParamsW_StatusReasonInParams) UnmarshalNDR

type ServiceControlOutParamsA

type ServiceControlOutParamsA struct {
	// Types that are assignable to Value
	//
	// *ServiceControlOutParamsA_StatusReasonOutParams
	Value is_ServiceControlOutParamsA `json:"value"`
}

ServiceControlOutParamsA structure represents SC_RPC_SERVICE_CONTROL_OUT_PARAMSA RPC union.

func (*ServiceControlOutParamsA) GetValue

func (o *ServiceControlOutParamsA) GetValue() any

func (*ServiceControlOutParamsA) MarshalUnionNDR

func (o *ServiceControlOutParamsA) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ServiceControlOutParamsA) NDRSwitchValue

func (o *ServiceControlOutParamsA) NDRSwitchValue(sw uint32) uint32

func (*ServiceControlOutParamsA) UnmarshalUnionNDR

func (o *ServiceControlOutParamsA) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ServiceControlOutParamsA_StatusReasonOutParams

type ServiceControlOutParamsA_StatusReasonOutParams struct {
	StatusReasonOutParams *ServiceControlStatusReasonOutParams `idl:"name:psrOutParams" json:"status_reason_out_params"`
}

ServiceControlOutParamsA_StatusReasonOutParams structure represents SC_RPC_SERVICE_CONTROL_OUT_PARAMSA RPC union arm.

It has following labels: 1

func (*ServiceControlOutParamsA_StatusReasonOutParams) MarshalNDR

func (*ServiceControlOutParamsA_StatusReasonOutParams) UnmarshalNDR

type ServiceControlOutParamsW

type ServiceControlOutParamsW struct {
	// Types that are assignable to Value
	//
	// *ServiceControlOutParamsW_StatusReasonOutParams
	Value is_ServiceControlOutParamsW `json:"value"`
}

ServiceControlOutParamsW structure represents SC_RPC_SERVICE_CONTROL_OUT_PARAMSW RPC union.

func (*ServiceControlOutParamsW) GetValue

func (o *ServiceControlOutParamsW) GetValue() any

func (*ServiceControlOutParamsW) MarshalUnionNDR

func (o *ServiceControlOutParamsW) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ServiceControlOutParamsW) NDRSwitchValue

func (o *ServiceControlOutParamsW) NDRSwitchValue(sw uint32) uint32

func (*ServiceControlOutParamsW) UnmarshalUnionNDR

func (o *ServiceControlOutParamsW) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ServiceControlOutParamsW_StatusReasonOutParams

type ServiceControlOutParamsW_StatusReasonOutParams struct {
	StatusReasonOutParams *ServiceControlStatusReasonOutParams `idl:"name:psrOutParams" json:"status_reason_out_params"`
}

ServiceControlOutParamsW_StatusReasonOutParams structure represents SC_RPC_SERVICE_CONTROL_OUT_PARAMSW RPC union arm.

It has following labels: 1

func (*ServiceControlOutParamsW_StatusReasonOutParams) MarshalNDR

func (*ServiceControlOutParamsW_StatusReasonOutParams) UnmarshalNDR

type ServiceControlStatusReasonInParamsA

type ServiceControlStatusReasonInParamsA struct {
	// dwReason:  The reason associated with the SERVICE_CONTROL_STOP control. This member
	// MUST be set to a combination of one general reason code, one major reason code, and
	// one minor reason code.
	//
	// The following are the general reason codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_CUSTOM 0x20000000    | The reason code is defined by the user. If this flag is not present, the         |
	//	|                                   | reason code is defined by the system. If this flag is specified with a           |
	//	|                                   | system reason code, the function call fails. Users can create custom major       |
	//	|                                   | reason codes in the range SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000)      |
	//	|                                   | through SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) and minor reason       |
	//	|                                   | codes in the range SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) through     |
	//	|                                   | SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).                               |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_PLANNED 0x40000000   | The service stop was planned.                                                    |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_UNPLANNED 0x10000000 | The service stop was not planned.                                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The following are the major reason codes.
	//
	//	+------------------------------------------------------+------------------------+
	//	|                                                      |                        |
	//	|                        VALUE                         |        MEANING         |
	//	|                                                      |                        |
	//	+------------------------------------------------------+------------------------+
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000     | Application issue      |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000        | Hardware issue         |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_NONE 0x00060000            | No major reason        |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000 | Operating system issue |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000           | Other issue            |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000        | Software issue         |
	//	+------------------------------------------------------+------------------------+
	//
	// The following are the minor reason codes.
	//
	//	+----------------------------------------------------------------+---------------------------+
	//	|                                                                |                           |
	//	|                             VALUE                              |          MEANING          |
	//	|                                                                |                           |
	//	+----------------------------------------------------------------+---------------------------+
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_DISK 0x00000008                      | Disk                      |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a               | Environment               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b           | Driver                    |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_HUNG 0x00000006                      | Unresponsive              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003              | Installation              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002               | Maintenance               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_MMC 0x00000016                       | MMC issue                 |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011      | Network connectivity      |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009               | Network card              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NONE 0x00000017                      | No minor reason           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_OTHER 0x00000001                     | Other issue               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c               | Other driver event        |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005                  | Reconfigure               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010                  | Security issue            |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f               | Security update           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015     | Security update uninstall |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d               | Service pack              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013     | Service pack uninstall    |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e           | Software update           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x00000014 | Software update uninstall |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007                  | Unstable                  |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004                   | Installation of software  |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_WMI 0x00000012                       | WMI issue                 |
	//	+----------------------------------------------------------------+---------------------------+
	Reason uint32 `idl:"name:dwReason" json:"reason"`
	// pszComment:  A pointer to a string that specifies a comment associated with the dwReason
	// parameter. String values are in ANSI.
	Comment string `idl:"name:pszComment;string" json:"comment"`
}

ServiceControlStatusReasonInParamsA structure represents SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA RPC structure.

The SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA structure<8> contains the reason associated with the SERVICE_CONTROL_STOP control. String values are in ANSI.

func (*ServiceControlStatusReasonInParamsA) MarshalNDR

func (*ServiceControlStatusReasonInParamsA) UnmarshalNDR

type ServiceControlStatusReasonInParamsW

type ServiceControlStatusReasonInParamsW struct {
	// dwReason:  The reason associated with the SERVICE_CONTROL_STOP control. This member
	// MUST be set to a combination of one general reason code, one major reason code, and
	// one minor reason code.
	//
	// The following are the general reason codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|               VALUE               |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_CUSTOM 0x20000000    | The reason code is defined by the user. If this flag is not present, the         |
	//	|                                   | reason code is defined by the system. If this flag is specified with a           |
	//	|                                   | system reason code, the function call fails. Users can create custom major       |
	//	|                                   | reason codes in the range SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000)      |
	//	|                                   | through SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) and minor reason       |
	//	|                                   | codes in the range SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) through     |
	//	|                                   | SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).                               |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_PLANNED 0x40000000   | The service stop was planned.                                                    |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_STOP_UNPLANNED 0x10000000 | The service stop was not planned.                                                |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The following are the major reason codes.
	//
	//	+------------------------------------------------------+------------------------+
	//	|                                                      |                        |
	//	|                        VALUE                         |        MEANING         |
	//	|                                                      |                        |
	//	+------------------------------------------------------+------------------------+
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000     | Application issue      |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000        | Hardware issue         |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_NONE 0x00060000            | No major reason        |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000 | Operating system issue |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000           | Other issue            |
	//	+------------------------------------------------------+------------------------+
	//	| SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000        | Software issue         |
	//	+------------------------------------------------------+------------------------+
	//
	// The following are the minor reason codes.
	//
	//	+----------------------------------------------------------------+---------------------------+
	//	|                                                                |                           |
	//	|                             VALUE                              |          MEANING          |
	//	|                                                                |                           |
	//	+----------------------------------------------------------------+---------------------------+
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_DISK 0x00000008                      | Disk                      |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a               | Environment               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b           | Driver                    |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_HUNG 0x00000006                      | Unresponsive              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003              | Installation              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002               | Maintenance               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_MMC 0x00000016                       | MMC issue                 |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011      | Network connectivity      |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009               | Network card              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_NONE 0x00000017                      | No minor reason           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_OTHER 0x00000001                     | Other issue               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c               | Other driver event        |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005                  | Reconfigure               |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010                  | Security issue            |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f               | Security update           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015     | Security update uninstall |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d               | Service pack              |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013     | Service pack uninstall    |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e           | Software update           |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x00000014 | Software update uninstall |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007                  | Unstable                  |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004                   | Installation of software  |
	//	+----------------------------------------------------------------+---------------------------+
	//	| SERVICE_STOP_REASON_MINOR_WMI 0x00000012                       | WMI issue                 |
	//	+----------------------------------------------------------------+---------------------------+
	Reason uint32 `idl:"name:dwReason" json:"reason"`
	// pszComment:  A pointer to a string that specifies a comment associated with the dwReason
	// parameter. String values are in Unicode.
	Comment string `idl:"name:pszComment;string" json:"comment"`
}

ServiceControlStatusReasonInParamsW structure represents SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW RPC structure.

The SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW structure<9> contains the reason associated with the SERVICE_CONTROL_STOP. String values are in Unicode.

func (*ServiceControlStatusReasonInParamsW) MarshalNDR

func (*ServiceControlStatusReasonInParamsW) UnmarshalNDR

type ServiceControlStatusReasonOutParams

type ServiceControlStatusReasonOutParams struct {
	// ServiceStatus:  A SERVICE_STATUS_PROCESS (section 2.2.49) structure that contains
	// the current status of the service.
	ServiceStatus *ServiceStatusProcess `idl:"name:ServiceStatus" json:"service_status"`
}

ServiceControlStatusReasonOutParams structure represents SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS RPC structure.

The SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS structure<10> contains the status of the service.

func (*ServiceControlStatusReasonOutParams) MarshalNDR

func (*ServiceControlStatusReasonOutParams) UnmarshalNDR

type ServiceDelayedAutoStartInfo

type ServiceDelayedAutoStartInfo struct {
	// fDelayedAutostart:  A Boolean value that specifies whether to delay the start of
	// the service. If this value is TRUE, the service is started after other autostart
	// services are started plus a short delay of approximately two minutes. Otherwise,
	// the service is started during the system boot. This setting is ignored unless the
	// service is an autostart service.
	//
	// If the service has other services that it is dependent on, as specified via the lpDependencies
	// member of the QUERY_SERVICE_CONFIGA structure (section 2.2.14) and the QUERY_SERVICE_CONFIGW
	// structure (section 2.2.15), then those services are started before this service.
	DelayedAutoStart bool `idl:"name:fDelayedAutostart" json:"delayed_auto_start"`
}

ServiceDelayedAutoStartInfo structure represents SERVICE_DELAYED_AUTO_START_INFO RPC structure.

The SERVICE_DELAYED_AUTO_START_INFO structure<11> defines the delayed autostart setting of an autostart service.

func (*ServiceDelayedAutoStartInfo) MarshalNDR

func (*ServiceDelayedAutoStartInfo) UnmarshalNDR

func (o *ServiceDelayedAutoStartInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceDescriptionA

type ServiceDescriptionA struct {
	// lpDescription:  A pointer to a string that contains the description of the service
	// in ANSI.
	Description string `idl:"name:lpDescription;string" json:"description"`
}

ServiceDescriptionA structure represents SERVICE_DESCRIPTIONA RPC structure.

The SERVICE_DESCRIPTIONA structure contains the description of the service. String values are in ANSI.

func (*ServiceDescriptionA) MarshalNDR

func (o *ServiceDescriptionA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceDescriptionA) UnmarshalNDR

func (o *ServiceDescriptionA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceDescriptionW

type ServiceDescriptionW struct {
	// lpDescription:  A pointer to a string that contains the description of the service
	// in Unicode.
	Description string `idl:"name:lpDescription;string" json:"description"`
}

ServiceDescriptionW structure represents SERVICE_DESCRIPTIONW RPC structure.

The SERVICE_DESCRIPTIONW structure contains the description of the service. String values are in Unicode.

func (*ServiceDescriptionW) MarshalNDR

func (o *ServiceDescriptionW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceDescriptionW) UnmarshalNDR

func (o *ServiceDescriptionW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceDescriptionWOW64

type ServiceDescriptionWOW64 struct {
	// dwDescriptionOffset:  A pointer to the offset for the SERVICE_DESCRIPTIONW (section
	// 2.2.35) structure, which contains the service description in Unicode.
	DescriptionOffset uint32 `idl:"name:dwDescriptionOffset" json:"description_offset"`
}

ServiceDescriptionWOW64 structure represents SERVICE_DESCRIPTION_WOW64 RPC structure.

The SERVICE_DESCRIPTION_WOW64 structure defines the offset at which SERVICE_DESRIPTIONW is present.

func (*ServiceDescriptionWOW64) MarshalNDR

func (o *ServiceDescriptionWOW64) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceDescriptionWOW64) UnmarshalNDR

func (o *ServiceDescriptionWOW64) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceFailureActionsA

type ServiceFailureActionsA struct {
	// dwResetPeriod:  The time, in seconds, after which to reset the failure count to zero
	// if there are no failures.
	ResetPeriod uint32 `idl:"name:dwResetPeriod" json:"reset_period"`
	// lpRebootMsg:  The buffer that contains the message to be broadcast to server users
	// before rebooting in response to the SC_ACTION_REBOOT service controller action.
	RebootMessage string `idl:"name:lpRebootMsg;string" json:"reboot_message"`
	// lpCommand:  The buffer that contains the command line of the process for the process
	// creation function to execute in response to the SC_ACTION_RUN_COMMAND service controller
	// action.
	Command string `idl:"name:lpCommand;string" json:"command"`
	// cActions:  The number of elements in the lpsaActions array.
	ActionsCount uint32 `idl:"name:cActions" json:"actions_count"`
	// lpsaActions:  A pointer to an array of SC_ACTION (section 2.2.19) structures.
	Actions []*Action `idl:"name:lpsaActions;size_is:(cActions)" json:"actions"`
}

ServiceFailureActionsA structure represents SERVICE_FAILURE_ACTIONSA RPC structure.

The SERVICE_FAILURE_ACTIONSA structure defines the action that the service controller takes on each failure of a service. String values are stored in ANSI.

func (*ServiceFailureActionsA) MarshalNDR

func (o *ServiceFailureActionsA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceFailureActionsA) UnmarshalNDR

func (o *ServiceFailureActionsA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceFailureActionsFlag

type ServiceFailureActionsFlag struct {
	// fFailureActionsOnNonCrashFailures:  If this member is TRUE and the service has configured
	// failure actions, the failure actions are queued if the service process terminates
	// without reporting a status of SERVICE_STOPPED or if it enters the SERVICE_STOPPED
	// state but the dwWin32ExitCode member of the SERVICE_STATUS (section 2.2.47) structure
	// is not ERROR_SUCCESS.
	//
	// If this member is FALSE and the service has configured failure actions, the failure
	// actions are queued only if the service terminates without reporting a status of SERVICE_STOPPED.
	FailureActionsOnNonCrashFailures bool `idl:"name:fFailureActionsOnNonCrashFailures" json:"failure_actions_on_non_crash_failures"`
}

ServiceFailureActionsFlag structure represents SERVICE_FAILURE_ACTIONS_FLAG RPC structure.

The SERVICE_FAILURE_ACTIONS_FLAG structure<12> defines the failure action setting of a service. This setting determines when failure actions are to be executed.

func (*ServiceFailureActionsFlag) MarshalNDR

func (o *ServiceFailureActionsFlag) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceFailureActionsFlag) UnmarshalNDR

func (o *ServiceFailureActionsFlag) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceFailureActionsW

type ServiceFailureActionsW struct {
	// dwResetPeriod:  The time, in seconds, after which to reset the failure count to zero
	// if there are no failures.
	ResetPeriod uint32 `idl:"name:dwResetPeriod" json:"reset_period"`
	// lpRebootMsg:  The buffer that contains the message to be broadcast to server users
	// before rebooting in response to the SC_ACTION_REBOOT service controller action.
	RebootMessage string `idl:"name:lpRebootMsg;string" json:"reboot_message"`
	// lpCommand:  The buffer that contains the command line of the process for the process
	// creation function to execute in response to the SC_ACTION_RUN_COMMAND service controller
	// action.
	Command string `idl:"name:lpCommand;string" json:"command"`
	// cActions:  The number of elements in the lpsaActions array.
	ActionsCount uint32 `idl:"name:cActions" json:"actions_count"`
	// lpsaActions:  A pointer to an array of SC_ACTION (section 2.2.19) structures.
	Actions []*Action `idl:"name:lpsaActions;size_is:(cActions)" json:"actions"`
}

ServiceFailureActionsW structure represents SERVICE_FAILURE_ACTIONSW RPC structure.

The SERVICE_FAILURE_ACTIONSW structure defines the action that the service controller takes on each failure of a service. String values are stored in Unicode.

func (*ServiceFailureActionsW) MarshalNDR

func (o *ServiceFailureActionsW) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceFailureActionsW) UnmarshalNDR

func (o *ServiceFailureActionsW) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceFailureActionsWOW64

type ServiceFailureActionsWOW64 struct {
	// dwResetPeriod:  The time, in seconds, after which to reset the failure count to zero
	// if there are no failures.
	ResetPeriod uint32 `idl:"name:dwResetPeriod" json:"reset_period"`
	// dwRebootMsgOffset:  The offset for the buffer containing the message that is broadcast
	// in response to the SC_ACTION_REBOOT service controller action (section 2.2.18) to
	// all server users prior to a server reboot.
	RebootMessageOffset uint32 `idl:"name:dwRebootMsgOffset" json:"reboot_message_offset"`
	// dwCommandOffset:  The offset for the buffer that contains the Unicode command line
	// of the process that the process creation function executes in response to the SC_ACTION_RUN_COMMAND
	// service controller action (section 2.2.18).
	CommandOffset uint32 `idl:"name:dwCommandOffset" json:"command_offset"`
	// cActions:  The number of SC_ACTION (section 2.2.19) structures in the array that
	// is offset by the value of dwsaActionsOffset.
	ActionsCount uint32 `idl:"name:cActions" json:"actions_count"`
	// dwsaActionsOffset:  The offset for the buffer that contains an array of SC_ACTION
	// structures.
	ActionsOffset uint32 `idl:"name:dwsaActionsOffset" json:"actions_offset"`
}

ServiceFailureActionsWOW64 structure represents SERVICE_FAILURE_ACTIONS_WOW64 RPC structure.

The SERVICE_FAILURE_ACTIONS_WOW64 structure defines the action that the service controller takes on each failure of a service.

func (*ServiceFailureActionsWOW64) MarshalNDR

func (o *ServiceFailureActionsWOW64) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceFailureActionsWOW64) UnmarshalNDR

func (o *ServiceFailureActionsWOW64) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceNotifyStatusChangeParams

type ServiceNotifyStatusChangeParams ServiceNotifyStatusChangeParams2

ServiceNotifyStatusChangeParams structure represents SERVICE_NOTIFY_STATUS_CHANGE_PARAMS RPC structure.

func (*ServiceNotifyStatusChangeParams) MarshalNDR

func (*ServiceNotifyStatusChangeParams) ServiceNotifyStatusChangeParams2

func (o *ServiceNotifyStatusChangeParams) ServiceNotifyStatusChangeParams2() *ServiceNotifyStatusChangeParams2

func (*ServiceNotifyStatusChangeParams) UnmarshalNDR

type ServiceNotifyStatusChangeParams1

type ServiceNotifyStatusChangeParams1 struct {
	// ullThreadId:  Not used.
	ThreadID uint64 `idl:"name:ullThreadId" json:"thread_id"`
	// dwNotifyMask:  A value that specifies the status changes in which the client is interested.
	// It MUST be one or more of the following values.
	//
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	|                                            |                                                                 |
	//	|                   VALUE                    |                             MEANING                             |
	//	|                                            |                                                                 |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_CREATED 0x00000080          | Report when the service has been created.                       |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_CONTINUE_PENDING 0x00000010 | Report when the service is about to continue.                   |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_DELETE_PENDING 0x00000200   | Report when an application has specified the service to delete. |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_DELETED 0x00000100          | Report when the service has been deleted.                       |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_PAUSE_PENDING 0x00000020    | Report when the service is pausing.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_PAUSED 0x00000040           | Report when the service has paused.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_RUNNING 0x00000008          | Report when the service is running.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_START_PENDING 0x00000002    | Report when the service is starting.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_STOP_PENDING 0x00000004     | Report when the service is stopping.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_STOPPED 0x00000001          | Report when the service has stopped.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	NotifyMask uint32 `idl:"name:dwNotifyMask" json:"notify_mask"`
	// CallbackAddressArray:  Not used.
	CallbackAddressArray []byte `idl:"name:CallbackAddressArray" json:"callback_address_array"`
	// CallbackParamAddressArray:  Not used.
	CallbackParamAddressArray []byte `idl:"name:CallbackParamAddressArray" json:"callback_param_address_array"`
	// ServiceStatus:  A SERVICE_STATUS_PROCESS (section 2.2.49) structure that contains
	// information about the service.
	ServiceStatus *ServiceStatusProcess `idl:"name:ServiceStatus" json:"service_status"`
	// dwNotificationStatus:  A value that indicates the notification status. If this member
	// is ERROR_SUCCESS, the notification has succeeded and the server adds valid information
	// to the ServiceStatus, dwNotificationTriggered, and pszServiceNames members. If this
	// member is ERROR_REQUEST_ABORTED or ERROR_SERVICE_MARKED_FOR_DELETE, the notification
	// has failed.
	NotificationStatus uint32 `idl:"name:dwNotificationStatus" json:"notification_status"`
	// dwSequence:  Not used.
	Sequence uint32 `idl:"name:dwSequence" json:"sequence"`
}

ServiceNotifyStatusChangeParams1 structure represents SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1 RPC structure.

The SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1 structure defines the service status notification information. If a client uses this structure, the server copies data from this structure to the newer structure specified in 2.2.44, and uses the newer structure.

func (*ServiceNotifyStatusChangeParams1) MarshalNDR

func (*ServiceNotifyStatusChangeParams1) UnmarshalNDR

type ServiceNotifyStatusChangeParams2

type ServiceNotifyStatusChangeParams2 struct {
	// ullThreadId:  Not used.
	ThreadID uint64 `idl:"name:ullThreadId" json:"thread_id"`
	// dwNotifyMask:  A value that specifies the status changes in which the client is interested.
	// It MUST be one or more of the following values.
	//
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	|                                            |                                                                 |
	//	|                   VALUE                    |                             MEANING                             |
	//	|                                            |                                                                 |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_CREATED 0x00000080          | Report when the service has been created.                       |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_CONTINUE_PENDING 0x00000010 | Report when the service is about to continue.                   |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_DELETE_PENDING 0x00000200   | Report when an application has specified the service to delete. |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_DELETED 0x00000100          | Report when the service has been deleted.                       |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_PAUSE_PENDING 0x00000020    | Report when the service is pausing.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_PAUSED 0x00000040           | Report when the service has paused.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_RUNNING 0x00000008          | Report when the service is running.                             |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_START_PENDING 0x00000002    | Report when the service is starting.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_STOP_PENDING 0x00000004     | Report when the service is stopping.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	//	| SERVICE_NOTIFY_STOPPED 0x00000001          | Report when the service has stopped.                            |
	//	+--------------------------------------------+-----------------------------------------------------------------+
	NotifyMask uint32 `idl:"name:dwNotifyMask" json:"notify_mask"`
	// CallbackAddressArray:  Not used.
	CallbackAddressArray []byte `idl:"name:CallbackAddressArray" json:"callback_address_array"`
	// CallbackParamAddressArray:  Not used.
	CallbackParamAddressArray []byte `idl:"name:CallbackParamAddressArray" json:"callback_param_address_array"`
	// ServiceStatus:  A SERVICE_STATUS_PROCESS (section 2.2.49) structure that contains
	// information about the service.
	ServiceStatus *ServiceStatusProcess `idl:"name:ServiceStatus" json:"service_status"`
	// dwNotificationStatus:  A value that indicates the notification status. If this member
	// is ERROR_SUCCESS, the notification has succeeded and the server adds valid information
	// to the ServiceStatus, dwNotificationTriggered, and pszServiceNames members. If this
	// member is ERROR_REQUEST_ABORTED or ERROR_SERVICE_MARKED_FOR_DELETE, the notification
	// has failed.
	NotificationStatus uint32 `idl:"name:dwNotificationStatus" json:"notification_status"`
	// dwSequence:  Not used.
	Sequence uint32 `idl:"name:dwSequence" json:"sequence"`
	// dwNotificationTriggered:  The value that specifies the specific status change event
	// that triggered the notification to the client. This MUST be one or more of the values
	// specified in the dwNotifyMask parameter.
	NotificationTriggered uint32 `idl:"name:dwNotificationTriggered" json:"notification_triggered"`
	// pszServiceNames:  A pointer to a sequence of null-terminated strings, terminated
	// by an empty string (\0) that contains the name of the service that was created or
	// deleted.
	//
	// The forward slash, back slash, comma, and space characters are illegal in service
	// names.
	ServiceNames string `idl:"name:pszServiceNames;string" json:"service_names"`
}

ServiceNotifyStatusChangeParams2 structure represents SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 RPC structure.

The SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 structure<14> defines the service status notification information.

func (*ServiceNotifyStatusChangeParams2) MarshalNDR

func (*ServiceNotifyStatusChangeParams2) UnmarshalNDR

type ServicePreferredNodeInfo

type ServicePreferredNodeInfo struct {
	// usPreferredNode:  The preferred node number.
	PreferredNode uint16 `idl:"name:usPreferredNode" json:"preferred_node"`
	// fDelete:  If the preferred NUMA node information of the service can be deleted, set
	// to 1; otherwise set to 0.
	Delete bool `idl:"name:fDelete" json:"delete"`
}

ServicePreferredNodeInfo structure represents SERVICE_PREFERRED_NODE_INFO RPC structure.

func (*ServicePreferredNodeInfo) MarshalNDR

func (o *ServicePreferredNodeInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServicePreferredNodeInfo) UnmarshalNDR

func (o *ServicePreferredNodeInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServicePreshutdownInfo

type ServicePreshutdownInfo struct {
	// dwPreshutdownTimeout:  Time, in milliseconds, that the SCM waits for the service
	// to enter the SERVICE_STOPPED state after sending the SERVICE_CONTROL_PRESHUTDOWN
	// message.
	PreshutdownTimeout uint32 `idl:"name:dwPreshutdownTimeout" json:"preshutdown_timeout"`
}

ServicePreshutdownInfo structure represents SERVICE_PRESHUTDOWN_INFO RPC structure.

The SERVICE_PRESHUTDOWN_INFO structure<15> defines the time-out value in milliseconds.

func (*ServicePreshutdownInfo) MarshalNDR

func (o *ServicePreshutdownInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServicePreshutdownInfo) UnmarshalNDR

func (o *ServicePreshutdownInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceRequiredPrivilegesInfoWOW64

type ServiceRequiredPrivilegesInfoWOW64 struct {
	// dwRequiredPrivilegesOffset:  Offset of the SERVICE_RPC_REQUIRED_PRIVILEGES_INFO structure.
	RequiredPrivilegesOffset uint32 `idl:"name:dwRequiredPrivilegesOffset" json:"required_privileges_offset"`
}

ServiceRequiredPrivilegesInfoWOW64 structure represents SERVICE_REQUIRED_PRIVILEGES_INFO_WOW64 RPC structure.

The SERVICE_REQUIRED_PRIVILEGES_INFO_WOW64 structure defines the offset at which the SERVICE_RPC_REQUIRED_PRIVILEGES_INFO (section 2.2.48) structure is present.

func (*ServiceRequiredPrivilegesInfoWOW64) MarshalNDR

func (*ServiceRequiredPrivilegesInfoWOW64) UnmarshalNDR

type ServiceSIDInfo

type ServiceSIDInfo struct {
	// dwServiceSidType:  The type of service SID. This MUST be one of the following values.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                          |                                                                                  |
	//	|                  VALUE                   |                                     MEANING                                      |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SID_TYPE_NONE 0x00000000         | No service SID.                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SID_TYPE_RESTRICTED 0x00000003   | This type includes SERVICE_SID_TYPE_UNRESTRICTED. The service SID is also added  |
	//	|                                          | to the restricted SID list of the process token. Three additional SIDs are added |
	//	|                                          | to the restricted SID list: 1. World SID S-1-1-0. 2. Service logon SID. 3. One   |
	//	|                                          | access control entry (ACE) that allows GENERIC_ALL access for the service logon  |
	//	|                                          | SID is also added to the service process token object. If multiple services are  |
	//	|                                          | hosted in the same process and one service has SERVICE_SID_TYPE_RESTRICTED, all  |
	//	|                                          | services MUST have SERVICE_SID_TYPE_RESTRICTED.                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_SID_TYPE_UNRESTRICTED 0x00000001 | When the service process is created, the service SID is added to the service     |
	//	|                                          | process token with the following attributes: SE_GROUP_ENABLED_BY_DEFAULT |       |
	//	|                                          | SE_GROUP_OWNER.                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	ServiceSIDType uint32 `idl:"name:dwServiceSidType" json:"service_sid_type"`
}

ServiceSIDInfo structure represents SERVICE_SID_INFO RPC structure.

The SERVICE_SID_INFO structure<16> defines the type of service security identifier (SID) associated with a service.

func (*ServiceSIDInfo) MarshalNDR

func (o *ServiceSIDInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceSIDInfo) UnmarshalNDR

func (o *ServiceSIDInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceStatus

type ServiceStatus struct {
	// dwServiceType:  The type of service.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | A service that runs in its own process.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | A service that shares a process with other services.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwCurrentState:  The current state of the service.
	//
	//	+------------+--------------------------+
	//	|            |                          |
	//	|   VALUE    |         MEANING          |
	//	|            |                          |
	//	+------------+--------------------------+
	//	+------------+--------------------------+
	//	| 0x00000005 | SERVICE_CONTINUE_PENDING |
	//	+------------+--------------------------+
	//	| 0x00000006 | SERVICE_PAUSE_PENDING    |
	//	+------------+--------------------------+
	//	| 0x00000007 | SERVICE_PAUSED           |
	//	+------------+--------------------------+
	//	| 0x00000004 | SERVICE_RUNNING          |
	//	+------------+--------------------------+
	//	| 0x00000002 | SERVICE_START_PENDING    |
	//	+------------+--------------------------+
	//	| 0x00000003 | SERVICE_STOP_PENDING     |
	//	+------------+--------------------------+
	//	| 0x00000001 | SERVICE_STOPPED          |
	//	+------------+--------------------------+
	CurrentState uint32 `idl:"name:dwCurrentState" json:"current_state"`
	// dwControlsAccepted:  The control codes that the service accepts and processes in
	// its handler function. One or more of the following values can be set. By default,
	// all services accept the SERVICE_CONTROL_INTERROGATE value. A value of zero indicates
	// that no controls are accepted.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 | SERVICE_ACCEPT_PARAMCHANGE Service can reread its startup parameters without     |
	//	|            | being stopped and restarted. This control code allows the service to receive     |
	//	|            | SERVICE_CONTROL_PARAMCHANGE notifications.                                       |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | SERVICE_ACCEPT_PAUSE_CONTINUE Service can be paused and continued. This          |
	//	|            | control code allows the service to receive SERVICE_CONTROL_PAUSE and             |
	//	|            | SERVICE_CONTROL_CONTINUE notifications.                                          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000004 | SERVICE_ACCEPT_SHUTDOWN Service is notified when system shutdown occurs.         |
	//	|            | This control code enables the service to receive SERVICE_CONTROL_SHUTDOWN        |
	//	|            | notifications from the server.                                                   |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | SERVICE_ACCEPT_STOP Service can be stopped. This control code allows the service |
	//	|            | to receive SERVICE_CONTROL_STOP notifications.                                   |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000020 | SERVICE_ACCEPT_HARDWAREPROFILECHANGE Service is notified when the computer's     |
	//	|            | hardware profile changes.                                                        |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000040 | SERVICE_ACCEPT_POWEREVENT Service is notified when the computer's power status   |
	//	|            | changes.                                                                         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000080 | SERVICE_ACCEPT_SESSIONCHANGE Service is notified when the computer's session     |
	//	|            | status changes.                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000100 | SERVICE_ACCEPT_PRESHUTDOWN<17> The service can perform preshutdown tasks.        |
	//	|            | SERVICE_ACCEPT_PRESHUTDOWN is sent before sending SERVICE_CONTROL_SHUTDOWN to    |
	//	|            | give more time to services that need extra time before shutdown occurs.          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000200 | SERVICE_ACCEPT_TIMECHANGE<18> Service is notified when the system time changes.  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000400 | SERVICE_ACCEPT_TRIGGEREVENT<19> Service is notified when an event for which the  |
	//	|            | service has registered occurs.                                                   |
	//	+------------+----------------------------------------------------------------------------------+
	ControlsAccepted uint32 `idl:"name:dwControlsAccepted" json:"controls_accepted"`
	// dwWin32ExitCode:  An error code that the service uses to report an error that occurs
	// when it is starting or stopping. To return an error code specific to the service,
	// the service MUST set this value to ERROR_SERVICE_SPECIFIC_ERROR to indicate that
	// the dwServiceSpecificExitCode member contains the error code. The service sets this
	// value to NO_ERROR when it is running and on normal termination.
	Win32ExitCode uint32 `idl:"name:dwWin32ExitCode" json:"win32_exit_code"`
	// dwServiceSpecificExitCode:  A service-specific error code that the service returns
	// when an error occurs while it is starting or stopping. The client SHOULD<20> ignore
	// this value unless the dwWin32ExitCode member is set to ERROR_SERVICE_SPECIFIC_ERROR.
	ServiceSpecificExitCode uint32 `idl:"name:dwServiceSpecificExitCode" json:"service_specific_exit_code"`
	// dwCheckPoint:  A value that the service increments periodically to report its progress
	// during a lengthy start, stop, pause, or continue operation. This value is zero when
	// the service state is SERVICE_PAUSED, SERVICE_RUNNING, or SERVICE_STOPPED.
	CheckPoint uint32 `idl:"name:dwCheckPoint" json:"check_point"`
	// dwWaitHint:  An estimate of the amount of time, in milliseconds, that the service
	// expects a pending start, stop, pause, or continue operation to take before the service
	// makes its next status update. Before the specified amount of time has elapsed, the
	// service makes its next call to the SetServiceStatus function with either an incremented
	// dwCheckPoint value or a change in dwCurrentState. If the time specified by dwWaitHint
	// passes, and dwCheckPoint has not been incremented or dwCurrentState has not changed,
	// the server can assume that an error has occurred and the service can be stopped.
	// However, if the service shares a process with other services, the server cannot terminate
	// the service application because it would have to terminate the other services sharing
	// the process as well.
	WaitHint uint32 `idl:"name:dwWaitHint" json:"wait_hint"`
}

ServiceStatus structure represents SERVICE_STATUS RPC structure.

The SERVICE_STATUS structure defines information about a service.

func (*ServiceStatus) MarshalNDR

func (o *ServiceStatus) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceStatus) UnmarshalNDR

func (o *ServiceStatus) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceStatusProcess

type ServiceStatusProcess struct {
	// dwServiceType:  The type of service. This MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|                 VALUE                  |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_KERNEL_DRIVER 0x00000001       | A driver service. These are services that manage devices on the system.          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_FILE_SYSTEM_DRIVER 0x00000002  | A file system driver service. These are services that manage file systems on the |
	//	|                                        | system.                                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_OWN_PROCESS 0x00000010   | A service that runs in its own process.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_WIN32_SHARE_PROCESS 0x00000020 | A service that shares a process with other services.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| SERVICE_INTERACTIVE_PROCESS 0x00000100 | The service can interact with the desktop.                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ServiceType uint32 `idl:"name:dwServiceType" json:"service_type"`
	// dwCurrentState:  The current state of the service. This MUST be one of the following
	// values.
	//
	//	+------------+--------------------------+
	//	|            |                          |
	//	|   VALUE    |         MEANING          |
	//	|            |                          |
	//	+------------+--------------------------+
	//	+------------+--------------------------+
	//	| 0x00000005 | SERVICE_CONTINUE_PENDING |
	//	+------------+--------------------------+
	//	| 0x00000006 | SERVICE_PAUSE_PENDING    |
	//	+------------+--------------------------+
	//	| 0x00000007 | SERVICE_PAUSED           |
	//	+------------+--------------------------+
	//	| 0x00000004 | SERVICE_RUNNING          |
	//	+------------+--------------------------+
	//	| 0x00000002 | SERVICE_START_PENDING    |
	//	+------------+--------------------------+
	//	| 0x00000003 | SERVICE_STOP_PENDING     |
	//	+------------+--------------------------+
	//	| 0x00000001 | SERVICE_STOPPED          |
	//	+------------+--------------------------+
	CurrentState uint32 `idl:"name:dwCurrentState" json:"current_state"`
	// dwControlsAccepted:  The control codes that the service accepts and processes in
	// its handler function. This bit mask MUST be set to zero or more of the following
	// values. The value of dwControlsAccepted is 0x00000000 if the service type is SERVICE_KERNEL_DRIVER
	// or SERVICE_FILE_SYSTEM_DRIVER.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 | SERVICE_ACCEPT_PARAMCHANGE Service can reread its startup parameters without     |
	//	|            | being stopped and restarted.                                                     |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | SERVICE_ACCEPT_PAUSE_CONTINUE Service can be paused and continued.               |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000004 | SERVICE_ACCEPT_SHUTDOWN Service is notified when system shutdown occurs.         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | SERVICE_ACCEPT_STOP Service can be stopped.                                      |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000020 | SERVICE_ACCEPT_HARDWAREPROFILECHANGE Service is notified when the computer       |
	//	|            | hardware profile changes.                                                        |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000040 | SERVICE_ACCEPT_POWEREVENT Service is notified when the computer power status     |
	//	|            | changes.                                                                         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000080 | SERVICE_ACCEPT_SESSIONCHANGE Service is notified when the computer session       |
	//	|            | status changes.                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000100 | SERVICE_ACCEPT_PRESHUTDOWN<22> The service can perform preshutdown tasks.        |
	//	|            | SERVICE_ACCEPT_PRESHUTDOWN is sent before sending SERVICE_CONTROL_SHUTDOWN to    |
	//	|            | give more time to services that need extra time before shutdown occurs.          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000200 | SERVICE_ACCEPT_TIMECHANGE<23> Service is notified when the system time changes.  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000400 | SERVICE_ACCEPT_TRIGGEREVENT<24> Service is notified when an event for which the  |
	//	|            | service has registered occurs.                                                   |
	//	+------------+----------------------------------------------------------------------------------+
	ControlsAccepted uint32 `idl:"name:dwControlsAccepted" json:"controls_accepted"`
	// dwWin32ExitCode:  An error code that the service uses to report an error that occurs
	// when it is starting or stopping.
	Win32ExitCode uint32 `idl:"name:dwWin32ExitCode" json:"win32_exit_code"`
	// dwServiceSpecificExitCode:  A service-specific error code that the service returns
	// when an error occurs while it is starting or stopping.
	ServiceSpecificExitCode uint32 `idl:"name:dwServiceSpecificExitCode" json:"service_specific_exit_code"`
	// dwCheckPoint:  A value that the service increments periodically to report its progress
	// during a lengthy start, stop, pause, or continue operation.
	CheckPoint uint32 `idl:"name:dwCheckPoint" json:"check_point"`
	// dwWaitHint:  An estimate of the amount of time, in milliseconds, that the service
	// expects a pending start, stop, pause, or continue operation to take before the service
	// makes its next status update.
	WaitHint uint32 `idl:"name:dwWaitHint" json:"wait_hint"`
	// dwProcessId:  A process identifier of the service. A value of 0 indicates that the
	// service is not started.
	ProcessID uint32 `idl:"name:dwProcessId" json:"process_id"`
	// dwServiceFlags:  The bit flags that describe the process in which the service is
	// running. This MUST be one of the following values.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 | Service is either running in a process that is not a system process, or the      |
	//	|            | service is not running at all. In a nonsystem process, dwProcessId is nonzero.   |
	//	|            | If the service is not running, dwProcessId is 0.                                 |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | Service runs in a system process that MUST always be running.                    |
	//	+------------+----------------------------------------------------------------------------------+
	ServiceFlags uint32 `idl:"name:dwServiceFlags" json:"service_flags"`
}

ServiceStatusProcess structure represents SERVICE_STATUS_PROCESS RPC structure.

The SERVICE_STATUS_PROCESS structure contains information about a service that is used by the RQueryServiceStatusEx method.

func (*ServiceStatusProcess) MarshalNDR

func (o *ServiceStatusProcess) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceStatusProcess) UnmarshalNDR

func (o *ServiceStatusProcess) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceTrigger

type ServiceTrigger struct {
	// dwTriggerType:  The type of trigger. This MUST be one of the following values.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL The event is triggered when        |
	//	|            | a device of the specified device interface class arrives or is present when      |
	//	|            | the system starts. This trigger event is commonly used to start a service.       |
	//	|            | Interface arrival occurs when a device belonging to a device interface class     |
	//	|            | has been inserted. The pTriggerSubtype member specifies the device interface     |
	//	|            | class GUID, as defined in [MS-DTYP] section 2.3.4. These GUIDs are defined       |
	//	|            | in device-specific header files provided with the Windows Driver Kit (WDK)       |
	//	|            | [MSDN-WinDriverKit]. The pDataItems member specifies one or more hardware        |
	//	|            | ID and compatible ID strings for the device interface class. Strings MUST        |
	//	|            | be Unicode. If more than one string is specified, the event is triggered         |
	//	|            | if any one of the strings matches. For example, the Wpdbusenum service           |
	//	|            | is started when a device of device interface class GUID_DEVINTERFACE_DISK        |
	//	|            | {53f56307-b6bf-11d0-94f2-00a0c91efb8b} and a hardware ID string of               |
	//	|            | "USBSTOR\GenDisk" arrives.                                                       |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY The event is triggered when         |
	//	|            | the first IP address on the TCP/IP networking stack becomes available            |
	//	|            | or the last IP address on the stack becomes unavailable. This trigger            |
	//	|            | event can be used to start or stop a service. The pTriggerSubtype                |
	//	|            | member specifies NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID or                |
	//	|            | NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID. The pDataItems member is not used. |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000003 | SERVICE_TRIGGER_TYPE_DOMAIN_JOIN The event is triggered when the computer joins  |
	//	|            | or leaves a domain. This trigger event can be used to start or stop a service.   |
	//	|            | The pTriggerSubtype member specifies DOMAIN_JOIN_GUID or DOMAIN_LEAVE_GUID. The  |
	//	|            | pDataItems member is not used.                                                   |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000004 | SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT The event is triggered when a firewall  |
	//	|            | port is opened or approximately 60 seconds after the firewall port is closed.    |
	//	|            | This trigger event can be used to start or stop a service. The pTriggerSubtype   |
	//	|            | member specifies FIREWALL_PORT_OPEN_GUID or FIREWALL_PORT_CLOSE_GUID. The        |
	//	|            | pDataItems member specifies the port, the protocol, and optionally the           |
	//	|            | executable path and user information (SID string or name) of the service         |
	//	|            | listening on the event. The "RPC" token can be used in place of the port to      |
	//	|            | specify any listening socket used by RPC. The "system" token can be used in      |
	//	|            | place of the executable path to specify ports created by and listened on by the  |
	//	|            | Windows kernel. The event is triggered only if all strings match. For example,   |
	//	|            | if MyService hosted inside Svchost.exe is to be trigger-started when port UDP    |
	//	|            | 5001 opens, the trigger-specific data would be the Unicode representation of     |
	//	|            | "5001\0UDP\0%systemroot%\system32\svchost.exe\0MyService\0\0".                   |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 | SERVICE_TRIGGER_TYPE_GROUP_POLICY The event is triggered when a machine policy   |
	//	|            | or user policy change occurs. This trigger event is commonly used to start a     |
	//	|            | service. The pTriggerSubtype member specifies MACHINE_POLICY_PRESENT_GUID or     |
	//	|            | USER_POLICY_PRESENT_GUID. The pDataItems member is not used.                     |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000020 | SERVICE_TRIGGER_TYPE_CUSTOM The event is a custom event generated by an Event    |
	//	|            | Tracing for Windows (ETW) provider. This trigger event can be used to start or   |
	//	|            | stop a service. The pTriggerSubtype member specifies the event provider's GUID.  |
	//	|            | The pDataItems member specifies trigger-specific data defined by the provider.   |
	//	+------------+----------------------------------------------------------------------------------+
	TriggerType uint32 `idl:"name:dwTriggerType" json:"trigger_type"`
	// dwAction:  The type of action to be taken on the trigger arrival. This MUST be one
	// of the following values.
	//
	//	+------------+--------------------------------------+
	//	|            |                                      |
	//	|   VALUE    |               MEANING                |
	//	|            |                                      |
	//	+------------+--------------------------------------+
	//	+------------+--------------------------------------+
	//	| 0x00000001 | SERVICE_TRIGGER_ACTION_SERVICE_START |
	//	+------------+--------------------------------------+
	//	| 0x00000002 | SERVICE_TRIGGER_ACTION_SERVICE_STOP  |
	//	+------------+--------------------------------------+
	Action uint32 `idl:"name:dwAction" json:"action"`
	// pTriggerSubtype:  Points to a GUID that identifies the trigger event subtype. The
	// value of this member depends on the value of the dwTriggerType member.
	//
	// If dwTriggerType is SERVICE_TRIGGER_TYPE_CUSTOM, pTriggerSubtype is the GUID that
	// identifies the custom event provider.
	//
	// If dwTriggerType is SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL, pTriggerSubtype
	// is the GUID that identifies the device interface class.
	//
	// For other trigger event types, pTriggerSubtype can be one of the following values.
	//
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                                                  |                                                                                  |
	//	|                                      VALUE                                       |                                     MEANING                                      |
	//	|                                                                                  |                                                                                  |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| DOMAIN_JOIN_GUID 1ce20aba-9851-4421-9430-1ddeb766e809                            | The event is triggered when the computer joins a domain. The dwTriggerType       |
	//	|                                                                                  | member MUST be SERVICE_TRIGGER_TYPE_DOMAIN_JOIN.                                 |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| DOMAIN_LEAVE_GUID ddaf516e-58c2-4866-9574-c3b615d42ea1                           | The event is triggered when the computer leaves a domain. The dwTriggerType      |
	//	|                                                                                  | member MUST be SERVICE_TRIGGER_TYPE_DOMAIN_JOIN.                                 |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| FIREWALL_PORT_OPEN_GUID b7569e07-8421-4ee0-ad10-86915afdad09                     | The event is triggered when the specified firewall port is opened. The           |
	//	|                                                                                  | dwTriggerType member MUST be SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT.           |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| FIREWALL_PORT_CLOSE_GUID a144ed38-8e12-4de4-9d96-e64740b1a524                    | The event is triggered approximately 60 seconds after the                        |
	//	|                                                                                  | specified firewall port is closed. The dwTriggerType member MUST be              |
	//	|                                                                                  | SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT.                                        |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| MACHINE_POLICY_PRESENT_GUID 659FCAE6-5BDB-4DA9-B1FF-CA2A178D46E0                 | The event is triggered when the machine policy has changed. The dwTriggerType    |
	//	|                                                                                  | member MUST be SERVICE_TRIGGER_TYPE_GROUP_POLICY.                                |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID                                    | The event is triggered when the first IP address on the TCP/IP                   |
	//	| 4f27f2de-14e2-430b-a549-7cd48cbc8245                                             | networking stack becomes available. The dwTriggerType member MUST be             |
	//	|                                                                                  | SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY.                                    |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID                                     | The event is triggered when the last IP address on the TCP/IP                    |
	//	| cc4ba62a-162e-4648-847a-b6bdf993e335                                             | networking stack becomes unavailable. The dwTriggerType member MUST be           |
	//	|                                                                                  | SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY.                                    |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| USER_POLICY_PRESENT_GUID 54FB46C8-F089-464C-B1FD-59D1B62C3B50                    | The event is triggered when the user policy has changed. The dwTriggerType       |
	//	|                                                                                  | member MUST be SERVICE_TRIGGER_TYPE_GROUP_POLICY.                                |
	//	+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
	TriggerSubtype *dtyp.GUID `idl:"name:pTriggerSubtype" json:"trigger_subtype"`
	// cDataItems:  Number of data items in the pDataItems array.
	DataItemsCount uint32 `idl:"name:cDataItems" json:"data_items_count"`
	// pDataItems:  Array of SERVICE_TRIGGER_SPECIFIC_DATA_ITEM structures.
	DataItems []*ServiceTriggerSpecificDataItem `idl:"name:pDataItems;size_is:(cDataItems)" json:"data_items"`
}

ServiceTrigger structure represents SERVICE_TRIGGER RPC structure.

The SERVICE_TRIGGER <26> structure contains information about one trigger of a service.

func (*ServiceTrigger) MarshalNDR

func (o *ServiceTrigger) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceTrigger) UnmarshalNDR

func (o *ServiceTrigger) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceTriggerInfo

type ServiceTriggerInfo struct {
	// cTriggers:  Number of items in the pTriggers array.
	TriggersCount uint32 `idl:"name:cTriggers" json:"triggers_count"`
	// pTriggers:  Array of triggers each element of type SERVICE_TRIGGER.
	Triggers []*ServiceTrigger `idl:"name:pTriggers;size_is:(cTriggers)" json:"triggers"`
	// contains filtered or unexported fields
}

ServiceTriggerInfo structure represents SERVICE_TRIGGER_INFO RPC structure.

The SERVICE_TRIGGER_INFO <27> structure contains trigger information about a service.

func (*ServiceTriggerInfo) MarshalNDR

func (o *ServiceTriggerInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceTriggerInfo) UnmarshalNDR

func (o *ServiceTriggerInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceTriggerSpecificDataItem

type ServiceTriggerSpecificDataItem struct {
	// dwDataType:  The type of trigger data. This MUST be one of the following values.
	//
	//	+------------+----------------------------------+
	//	|            |                                  |
	//	|   VALUE    |             MEANING              |
	//	|            |                                  |
	//	+------------+----------------------------------+
	//	+------------+----------------------------------+
	//	| 0x00000001 | SERVICE_TRIGGER_DATA_TYPE_BINARY |
	//	+------------+----------------------------------+
	//	| 0x00000002 | SERVICE_TRIGGER_DATA_TYPE_STRING |
	//	+------------+----------------------------------+
	DataType uint32 `idl:"name:dwDataType" json:"data_type"`
	// cbData:  Size in bytes of the data in pData.
	DataLength uint32 `idl:"name:cbData" json:"data_length"`
	// pData:  Trigger data. When dwDataType is set equal to 0x00000002 (SERVICE_TRIGGER_DATA_TYPE_STRING),
	// the encoding is Unicode string and includes a terminating null character. This string
	// can contain data in the format of a sequence of null-terminated strings, terminated
	// by an empty string (\0).
	Data []byte `idl:"name:pData;size_is:(cbData)" json:"data"`
}

ServiceTriggerSpecificDataItem structure represents SERVICE_TRIGGER_SPECIFIC_DATA_ITEM RPC structure.

The SERVICE_TRIGGER_SPECIFIC_DATA_ITEM <25> structure contains information about one trigger data item of a service.

func (*ServiceTriggerSpecificDataItem) MarshalNDR

func (*ServiceTriggerSpecificDataItem) UnmarshalNDR

type SetServiceObjectSecurityRequest

type SetServiceObjectSecurityRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to a
	// service record or to the SCM database that MUST have been created previously using
	// one of the open methods specified in section 3.1.4.
	Service *Handle `idl:"name:hService" json:"service"`
	// dwSecurityInformation: A SECURITY_INFORMATION (section 2.2.1) type definition that
	// specifies the security information being set.
	SecurityInformation uint32 `idl:"name:dwSecurityInformation" json:"security_information"`
	// lpSecurityDescriptor: A pointer to a buffer of bytes that contains the new security
	// information.
	SecurityDescriptor []byte `idl:"name:lpSecurityDescriptor;size_is:(cbBufSize)" json:"security_descriptor"`
	// cbBufSize: Size, in bytes, of the buffer pointed to by the lpSecurityDescriptor parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

SetServiceObjectSecurityRequest structure represents the RSetServiceObjectSecurity operation request

func (*SetServiceObjectSecurityRequest) MarshalNDR

func (*SetServiceObjectSecurityRequest) UnmarshalNDR

type SetServiceObjectSecurityResponse

type SetServiceObjectSecurityResponse struct {
	// Return: The RSetServiceObjectSecurity return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetServiceObjectSecurityResponse structure represents the RSetServiceObjectSecurity operation response

func (*SetServiceObjectSecurityResponse) MarshalNDR

func (*SetServiceObjectSecurityResponse) UnmarshalNDR

type SetServiceStatusRequest

type SetServiceStatusRequest struct {
	// hServiceStatus: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle
	// to the service record that MUST have been created previously using one of the open
	// methods specified in section 3.1.4. The SERVICE_SET_STATUS access right MUST have
	// been granted to the caller when the RPC context handle was created.
	Service *Handle `idl:"name:hServiceStatus" json:"service"`
	// lpServiceStatus: Pointer to the SERVICE_STATUS (section 2.2.47) structure that contains
	// the latest status information for the service.
	ServiceStatus *ServiceStatus `idl:"name:lpServiceStatus" json:"service_status"`
}

SetServiceStatusRequest structure represents the RSetServiceStatus operation request

func (*SetServiceStatusRequest) MarshalNDR

func (o *SetServiceStatusRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetServiceStatusRequest) UnmarshalNDR

func (o *SetServiceStatusRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetServiceStatusResponse

type SetServiceStatusResponse struct {
	// Return: The RSetServiceStatus return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetServiceStatusResponse structure represents the RSetServiceStatus operation response

func (*SetServiceStatusResponse) MarshalNDR

func (o *SetServiceStatusResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetServiceStatusResponse) UnmarshalNDR

func (o *SetServiceStatusResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartServiceARequest

type StartServiceARequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) that defines the handle to the service
	// record that MUST have been created previously, using one of the open methods specified
	// in section 3.1.4. The SERVICE_START access right MUST have been granted to the caller
	// when the RPC context handle was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// argc: The number of argument strings in the argv array. If argv is NULL, this parameter
	// MAY be zero.
	Argc uint32 `idl:"name:argc" json:"argc"`
	// argv: A pointer to a buffer that contains an array of pointers to null-terminated
	// ANSI strings that are passed as arguments to the service.
	Argv []*String `idl:"name:argv;size_is:(argc);pointer:unique" json:"argv"`
}

StartServiceARequest structure represents the RStartServiceA operation request

func (*StartServiceARequest) MarshalNDR

func (o *StartServiceARequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartServiceARequest) UnmarshalNDR

func (o *StartServiceARequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartServiceAResponse

type StartServiceAResponse struct {
	// Return: The RStartServiceA return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

StartServiceAResponse structure represents the RStartServiceA operation response

func (*StartServiceAResponse) MarshalNDR

func (o *StartServiceAResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartServiceAResponse) UnmarshalNDR

func (o *StartServiceAResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartServiceWRequest

type StartServiceWRequest struct {
	// hService: An SC_RPC_HANDLE (section 2.2.4) data type that defines the handle to the
	// service record that MUST have been created previously using one of the open methods
	// specified in section 3.1.4. The SERVICE_START access right MUST have been granted
	// to the caller when the RPC context handle to the service record was created.
	Service *Handle `idl:"name:hService" json:"service"`
	// argc: The number of argument strings in the argv array. If argv is NULL, this parameter
	// MAY be 0.
	Argc uint32 `idl:"name:argc" json:"argc"`
	// argv: A pointer to a buffer that contains an array of pointers to null-terminated
	// UNICODE strings that are passed as arguments to the service.
	Argv []*UnicodeString `idl:"name:argv;size_is:(argc);pointer:unique" json:"argv"`
}

StartServiceWRequest structure represents the RStartServiceW operation request

func (*StartServiceWRequest) MarshalNDR

func (o *StartServiceWRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartServiceWRequest) UnmarshalNDR

func (o *StartServiceWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartServiceWResponse

type StartServiceWResponse struct {
	// Return: The RStartServiceW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

StartServiceWResponse structure represents the RStartServiceW operation response

func (*StartServiceWResponse) MarshalNDR

func (o *StartServiceWResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartServiceWResponse) UnmarshalNDR

func (o *StartServiceWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StatusType

type StatusType uint32

StatusType type represents SC_STATUS_TYPE RPC enumeration.

The SC_STATUS_TYPE enumeration specifies the information level for the RQueryServiceStatusEx method.

var (
	// SC_STATUS_PROCESS_INFO:  The information level
	StatusTypeProcessInfo StatusType = 0
)

func (StatusType) String

func (o StatusType) String() string

type String

type String struct {
	// StringPtr:  Pointer to an ANSI character string.
	StringPointer string `idl:"name:StringPtr;string" json:"string_pointer"`
}

String structure represents STRING_PTRSA RPC structure.

The STRING_PTRSA structure defines a pointer to an ANSI character string.

func (*String) MarshalNDR

func (o *String) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*String) UnmarshalNDR

func (o *String) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SvcctlClient

type SvcctlClient interface {

	// The RCloseServiceHandle method is called by the client. In response, the server releases
	// the handle to the specified service or the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN         |                                                                                  |
	//	|       VALUE/CODE       |                                   DESCRIPTION                                    |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | The handle is no longer valid.                                                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 0xFFFF75FD             | The operation completed successfully. Additionally, the passed handle was the    |
	//	|                        | last one created for the associated service record that was previously used in a |
	//	|                        | successful call to the RNotifyServiceStatusChange (section 3.1.4.43) method.     |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 0xFFFF75FE             | The operation completed successfully. Additionally, the passed handle was        |
	//	|                        | previously used in a successful call to the RNotifyServiceStatusChange method.   |
	//	+------------------------+----------------------------------------------------------------------------------+
	CloseService(context.Context, *CloseServiceRequest, ...dcerpc.CallOption) (*CloseServiceResponse, error)

	// The RControlService method receives a control code for a specific service handle,
	// as specified by the client.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The required access right had not been granted to the caller when the RPC        |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                       | it.                                                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | The requested control code is undefined                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<35>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the             |
	//	|                                       | ServiceStatus.dwCurrentState in the service record is SERVICE_START_PENDING or   |
	//	|                                       | SERVICE_STOP_PENDING.                                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                       | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	ControlService(context.Context, *ControlServiceRequest, ...dcerpc.CallOption) (*ControlServiceResponse, error)

	// The RDeleteService method marks the specified service for deletion from the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The DELETE access right had not been granted to the caller when the RPC context  |
	//	|                                      | handle to the service record was created.                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle is no longer valid.                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has already been called for the service record identified by  |
	//	|                                      | the hService parameter.                                                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	DeleteService(context.Context, *DeleteServiceRequest, ...dcerpc.CallOption) (*DeleteServiceResponse, error)

	// The RLockServiceDatabase method acquires a lock on an SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The SC_MANAGER_LOCK access rights had not been granted to the caller when the    |
	//	|                                    | RPC context handle was created.                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE             | The handle is no longer valid.                                                   |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED | The service database is locked.                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	LockServiceDatabase(context.Context, *LockServiceDatabaseRequest, ...dcerpc.CallOption) (*LockServiceDatabaseResponse, error)

	// The RQueryServiceObjectSecurity method returns a copy of the SECURITY_DESCRIPTOR
	// structure associated with a service object.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The required access rights had not been granted to the caller when the RPC       |
	//	|                               | context handle was created.                                                      |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER    | A parameter that was specified is invalid.                                       |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//
	// The client MAY provide a combination of one or more SECURITY_INFORMATION bit flags
	// for dwSecurityInformation.
	//
	// If SACL_SECURITY_INFORMATION is specified for the dwSecurityInformation parameter,
	// then an ACCESS_SYSTEM_SECURITY right MUST have been granted to the caller when hService
	// was created. (See AS in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	//
	// If DACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, OWNER_SECURITY_INFORMATION,
	// or GROUP_SECURITY_INFORMATION is specified for the dwSecurityInformation parameter,
	// then a READ_CONTROL right MUST have been granted to the caller when hService was
	// created. (See RC in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	QueryServiceObjectSecurity(context.Context, *QueryServiceObjectSecurityRequest, ...dcerpc.CallOption) (*QueryServiceObjectSecurityResponse, error)

	// The RSetServiceObjectSecurity method sets the SECURITY_DESCRIPTOR structure associated
	// with a service object.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The required access rights had not been granted to the caller when the RPC       |
	//	|                                      | context handle was created.                                                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle is no longer valid.                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService method has been called with an RPC context handle identifying |
	//	|                                      | the same service record as the hService parameter for this call.                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//
	// The client MAY provide a combination of one or more SECURITY_INFORMATION bit flags
	// for dwSecurityInformation.
	//
	// If SACL_SECURITY_INFORMATION is specified via dwSecurityInformation, then an ACCESS_SYSTEM_SECURITY
	// right MUSThave been granted to the caller when hService was created. (See WD in ACCESS_MASK
	// in [MS-DTYP] 2.4.3.
	//
	// If LABEL_SECURITY_INFORMATION or OWNER_SECURITY_INFORMATION or GROUP_SECURITY_INFORMATION
	// is specified via dwSecurityInformation, then a WRITE_OWNER right MUST have been granted
	// to the caller when hService was created. (See WO in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	//
	// If DACL_SECURITY_INFORMATION is specified via dwSecurityInformation, then a WRITE_DAC
	// right MUST have been granted to the caller when hService was created. (See WD in
	// ACCESS_MASK in [MS-DTYP] 2.4.3.)
	SetServiceObjectSecurity(context.Context, *SetServiceObjectSecurityRequest, ...dcerpc.CallOption) (*SetServiceObjectSecurityResponse, error)

	// The RQueryServiceStatus method returns the current status of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_STATUS access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND          | The ImagePath of the service record identified by the hService parameter does    |
	//	|                                 | not exist.                                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//
	// If the type of the service record is SERVICE_KERNEL_DRIVER or SERVICE_FILESYSTEM_DRIVER,
	// the SCM queries the current status of the driver from the operating system and set
	// the ServiceStatus.dwCurrentState of the service record to SERVICE_RUNNING if driver
	// is loaded and to SERVICE_STOPPED if it is not.
	QueryServiceStatus(context.Context, *QueryServiceStatusRequest, ...dcerpc.CallOption) (*QueryServiceStatusResponse, error)

	// The RSetServiceStatus method updates the SCM status information for the calling service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN         |                                                                                  |
	//	|       VALUE/CODE       |                                   DESCRIPTION                                    |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | Either the handle is no longer valid or the SERVICE_SET_STATUS access rights had |
	//	|                        | not been granted to the caller when the RPC context handle was created.          |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA  | The data provided in the lpServiceStatus parameter is invalid.                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	SetServiceStatus(context.Context, *SetServiceStatusRequest, ...dcerpc.CallOption) (*SetServiceStatusResponse, error)

	// The RUnlockServiceDatabase method releases a lock on a service database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+---------------------------------+----------------------------------------------+
	//	|             RETURN              |                                              |
	//	|           VALUE/CODE            |                 DESCRIPTION                  |
	//	|                                 |                                              |
	//	+---------------------------------+----------------------------------------------+
	//	+---------------------------------+----------------------------------------------+
	//	| 1071 ERROR_INVALID_SERVICE_LOCK | The specified RPC context handle is invalid. |
	//	+---------------------------------+----------------------------------------------+
	UnlockServiceDatabase(context.Context, *UnlockServiceDatabaseRequest, ...dcerpc.CallOption) (*UnlockServiceDatabaseResponse, error)

	// The RNotifyBootConfigStatus method reports the boot status to the SCM.
	//
	// Return Values: The method returns ERROR_SUCCESS (0x00000000) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED            | The caller does not have the SC_MANAGER_MODIFY_BOOT_CONFIG access rights granted |
	//	|                                  | in the SCM Security Descriptor.                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 1074 ERROR_ALREADY_RUNNING_LKG   | The system is currently running with the last-known-good configuration.          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 1076 ERROR_BOOT_ALREADY_ACCEPTED | The BootAccepted field of the SCM on the target machine indicated that a         |
	//	|                                  | successful call to RNotifyBootConfigStatus has already been made.                |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	NotifyBootConfigStatus(context.Context, *NotifyBootConfigStatusRequest, ...dcerpc.CallOption) (*NotifyBootConfigStatusResponse, error)

	// The RChangeServiceConfigW method changes a service's configuration parameters in
	// the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                      | the RPC context handle to the service record was created.                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The lpDisplayName matches either the ServiceName or the DisplayName of another   |
	//	|                                      | service record in the service control manager database.                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has been called for the service record identified by the      |
	//	|                                      | hService parameter.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfigW(context.Context, *ChangeServiceConfigWRequest, ...dcerpc.CallOption) (*ChangeServiceConfigWResponse, error)

	// The RCreateServiceW method creates the service record in the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle was created.                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists and RDeleteService has   |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceW(context.Context, *CreateServiceWRequest, ...dcerpc.CallOption) (*CreateServiceWResponse, error)

	// The REnumDependentServicesW method returns the ServiceName, DisplayName, and ServiceStatus
	// values of service records that are listed as dependents of a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_ENUMERATE_DEPENDENT access right had not been granted to the caller  |
	//	|                                 | when the RPC context handle to the service record was created.                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA             | More data is available.                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	EnumDependentServicesW(context.Context, *EnumDependentServicesWRequest, ...dcerpc.CallOption) (*EnumDependentServicesWResponse, error)

	// The REnumServicesStatusW method enumerates service records in the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|           RETURN           |                                                                                  |
	//	|         VALUE/CODE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED      | The SM_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                            | when the RPC context handle to the service record was created.                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE     | The handle is no longer valid.                                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER | A parameter that was specified is invalid.                                       |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA        | More data is available.                                                          |
	//	+----------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusW(context.Context, *EnumServicesStatusWRequest, ...dcerpc.CallOption) (*EnumServicesStatusWResponse, error)

	// The ROpenSCManagerW method establishes a connection to server and opens the SCM database
	// on the specified server.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The client does not have the required access rights to open the SCM              |
	//	|                                    | database on the server or the desired access is not granted to it in the SCM     |
	//	|                                    | SecurityDescriptor.                                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCMW(context.Context, *OpenSCMWRequest, ...dcerpc.CallOption) (*OpenSCMWResponse, error)

	// The ROpenServiceW method creates an RPC context handle to an existing service record.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The access specified by the dwDesiredAccess parameter cannot be granted to the   |
	//	|                                   | caller.                                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with a specified DisplayName does not exist in the SCM        |
	//	|                                   | database.                                                                        |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	OpenServiceW(context.Context, *OpenServiceWRequest, ...dcerpc.CallOption) (*OpenServiceWResponse, error)

	// The RQueryServiceConfigW method returns the configuration parameters of the specified
	// service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigW(context.Context, *QueryServiceConfigWRequest, ...dcerpc.CallOption) (*QueryServiceConfigWResponse, error)

	// The RQueryServiceLockStatusW method returns the lock status of the specified SCM
	// database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The SC_MANAGER_QUERY_LOCK_STATUS access right had not been granted to the caller |
	//	|                               | when the RPC context handle was created.                                         |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	QueryServiceLockStatusW(context.Context, *QueryServiceLockStatusWRequest, ...dcerpc.CallOption) (*QueryServiceLockStatusWResponse, error)

	// The RStartServiceW method starts a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.<41>
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 2 ERROR_FILE_NOT_FOUND                | The system cannot find the file specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND                | The system cannot find the path specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The SERVICE_START access right had not been granted to the caller when the RPC   |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<42>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1054 ERROR_SERVICE_NO_THREAD          | A thread could not be created for the service.                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED    | The service database is locked by the call to the BlockServiceDatabase           |
	//	|                                       | method.<43>                                                                      |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1056 ERROR_SERVICE_ALREADY_RUNNING    | The ServiceStatus.dwCurrentState in the service record is not set to             |
	//	|                                       | SERVICE_STOPPED.                                                                 |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1058 ERROR_SERVICE_DISABLED           | The service cannot be started because the Start field in the service record is   |
	//	|                                       | set to SERVICE_DISABLED.                                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1068 ERROR_SERVICE_DEPENDENCY_FAIL    | The specified service depends on another service that has failed to start.       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1069 ERROR_SERVICE_LOGON_FAILED       | The service did not start due to a logon failure.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE  | The RDeleteService method has been called for the service record identified by   |
	//	|                                       | the hService parameter.                                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1075 ERROR_SERVICE_DEPENDENCY_DELETED | The specified service depends on a service that does not exist or has been       |
	//	|                                       | marked for deletion.                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	StartServiceW(context.Context, *StartServiceWRequest, ...dcerpc.CallOption) (*StartServiceWResponse, error)

	// The RGetServiceDisplayNameW method returns the display name of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The display name does not fit in the buffer.                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the specified ServiceName does not exist in the SCM      |
	//	|                                   | database identified by the hSCManager parameter.                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceDisplayNameW(context.Context, *GetServiceDisplayNameWRequest, ...dcerpc.CallOption) (*GetServiceDisplayNameWResponse, error)

	// The RGetServiceKeyNameW method returns the ServiceName of the service record with
	// the specified DisplayName.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The name specified in the lpDisplayName parameter is invalid or set to NULL.     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the DisplayName matching the value specified in the      |
	//	|                                   | lpDisplayName parameter does not exist in the SCM database identified by the     |
	//	|                                   | hSCManager parameter.                                                            |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceKeyNameW(context.Context, *GetServiceKeyNameWRequest, ...dcerpc.CallOption) (*GetServiceKeyNameWResponse, error)

	// The RChangeServiceConfigA method changes a service's configuration parameters in
	// the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                      | the RPC context handle to the service record was created.                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The lpDisplayName matches either the ServiceName or the DisplayName of another   |
	//	|                                      | service record in the service control manager database.                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has been called for the service record identified by the      |
	//	|                                      | hService parameter.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfigA(context.Context, *ChangeServiceConfigARequest, ...dcerpc.CallOption) (*ChangeServiceConfigAResponse, error)

	// The RCreateServiceA method creates the service record in the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle was created.                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceA(context.Context, *CreateServiceARequest, ...dcerpc.CallOption) (*CreateServiceAResponse, error)

	// The REnumDependentServicesA method returns the ServiceName, DisplayName, and ServiceStatus
	// of each service record that depends on the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_ENUMERATE_DEPENDENT access right had not been granted to the caller  |
	//	|                                 | when the RPC context handle to the service record was created.                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA             | More data is available.                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	EnumDependentServicesA(context.Context, *EnumDependentServicesARequest, ...dcerpc.CallOption) (*EnumDependentServicesAResponse, error)

	// The REnumServicesStatusA method enumerates service records in the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|           RETURN           |                                                                                  |
	//	|         VALUE/CODE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED      | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                            | when the RPC context handle to the service record was created.                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE     | The handle is no longer valid.                                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER | A parameter that was specified is invalid.                                       |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA        | More data is available.                                                          |
	//	+----------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusA(context.Context, *EnumServicesStatusARequest, ...dcerpc.CallOption) (*EnumServicesStatusAResponse, error)

	// The ROpenSCManagerA method opens a connection to the SCM from the client and then
	// opens the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The SC_MANAGER_CONNECT access right or the desired access is not granted to the  |
	//	|                                    | caller in the SCM SecurityDescriptor.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCMA(context.Context, *OpenSCMARequest, ...dcerpc.CallOption) (*OpenSCMAResponse, error)

	// The ROpenServiceA method creates an RPC context handle to an existing service record.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The access specified by the dwDesiredAccess parameter cannot be granted to the   |
	//	|                                   | caller.                                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with a specified DisplayName does not exist in the SCM        |
	//	|                                   | database.                                                                        |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	OpenServiceA(context.Context, *OpenServiceARequest, ...dcerpc.CallOption) (*OpenServiceAResponse, error)

	// The RQueryServiceConfigA method returns the configuration parameters of the specified
	// service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigA(context.Context, *QueryServiceConfigARequest, ...dcerpc.CallOption) (*QueryServiceConfigAResponse, error)

	// The RQueryServiceLockStatusA method returns the lock status of the specified SCM
	// database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The SC_MANAGER_QUERY_LOCK_STATUS access right had not been granted to the caller |
	//	|                               | when the RPC context handle was created.                                         |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	QueryServiceLockStatusA(context.Context, *QueryServiceLockStatusARequest, ...dcerpc.CallOption) (*QueryServiceLockStatusAResponse, error)

	// The RStartServiceA method starts a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.<46>
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 2 ERROR_FILE_NOT_FOUND                | The system cannot find the file specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND                | The system cannot find the path specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The SERVICE_START access right had not been granted to the caller when the RPC   |
	//	|                                       | context handle to the service was created.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<47>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1054 ERROR_SERVICE_NO_THREAD          | A thread could not be created for the service.                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED    | The service database is locked by the call to the RLockServiceDatabase (section  |
	//	|                                       | 3.1.4.4) method.<48>                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1056 ERROR_SERVICE_ALREADY_RUNNING    | The ServiceStatus.dwCurrentState in the service record is not set to             |
	//	|                                       | SERVICE_STOPPED.                                                                 |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1058 ERROR_SERVICE_DISABLED           | The service cannot be started because the Start field in the service record is   |
	//	|                                       | set to SERVICE_DISABLED.                                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1068 ERROR_SERVICE_DEPENDENCY_FAIL    | The specified service depends on another service that has failed to start.       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1069 ERROR_SERVICE_LOGON_FAILED       | The service did not start due to a logon failure.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE  | The RDeleteService method has been called for the service record identified by   |
	//	|                                       | the hService parameter.                                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1075 ERROR_SERVICE_DEPENDENCY_DELETED | The specified service depends on a service that does not exist or has been       |
	//	|                                       | marked for deletion.                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	StartServiceA(context.Context, *StartServiceARequest, ...dcerpc.CallOption) (*StartServiceAResponse, error)

	// The RGetServiceDisplayNameA method returns the display name of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The display name does not fit in the buffer.                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the specified ServiceName does not exist in the SCM      |
	//	|                                   | database identified by the hSCManager parameter.                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceDisplayNameA(context.Context, *GetServiceDisplayNameARequest, ...dcerpc.CallOption) (*GetServiceDisplayNameAResponse, error)

	// The RGetServiceKeyNameA method returns the ServiceName of the service record with
	// the specified DisplayName.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The data area passed to a system call is too small.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The name specified in lpDisplayName is invalid or set to NULL.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the DisplayName matching the specified lpDisplayName     |
	//	|                                   | does not exist in the SCM database identified by the hSCManager parameter.       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceKeyNameA(context.Context, *GetServiceKeyNameARequest, ...dcerpc.CallOption) (*GetServiceKeyNameAResponse, error)

	// The REnumServiceGroupW method returns the members of a service group.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle was created.                                         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by pszGroupName does not exist in the SCM GroupList.         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServiceGroupW(context.Context, *EnumServiceGroupWRequest, ...dcerpc.CallOption) (*EnumServiceGroupWResponse, error)

	// The RChangeServiceConfig2A method SHOULD<51> change the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.<52>
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                  |                                                                                  |
	//	|               VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                   | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                         | the RPC context handle to the service record was created.                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                  | The handle is no longer valid.                                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER              | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE    | The RDeleteService has been called for the service record identified by the      |
	//	|                                         | hService parameter.                                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1080 ERROR_CANNOT_DETECT_DRIVER_FAILURE | SERVICE_CONFIG_FAILURE_ACTIONS cannot be used as a dwInfoLevel in the Info       |
	//	|                                         | parameter for service records with a Type value defined for drivers.             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS         | The system is shutting down.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfig2A(context.Context, *ChangeServiceConfig2ARequest, ...dcerpc.CallOption) (*ChangeServiceConfig2AResponse, error)

	// The RChangeServiceConfig2W <53> method changes the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.<54>
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                  |                                                                                  |
	//	|               VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                   | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                         | the RPC context handle to the service record was created.                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                  | The handle is no longer valid.                                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER              | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE    | The RDeleteService has been called for the service record identified by the      |
	//	|                                         | hService parameter.                                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1080 ERROR_CANNOT_DETECT_DRIVER_FAILURE | SERVICE_CONFIG_FAILURE_ACTIONS cannot be used as a dwInfoLevel in the Info       |
	//	|                                         | parameter for service records with a Type value defined for drivers.             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS         | The system is shutting down.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfig2W(context.Context, *ChangeServiceConfig2WRequest, ...dcerpc.CallOption) (*ChangeServiceConfig2WResponse, error)

	// The RQueryServiceConfig2A <55> method returns the optional configuration parameters
	// of the specified service based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle to the service record was created.                        |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfig2A(context.Context, *QueryServiceConfig2ARequest, ...dcerpc.CallOption) (*QueryServiceConfig2AResponse, error)

	// The RQueryServiceConfig2W <64> method returns the optional configuration parameters
	// of the specified service based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED        | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                       | the RPC context handle to the service record was created.                        |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000006 ERROR_INVALID_HANDLE       | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000087 ERROR_INVALID_PARAMETER    | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000122 ERROR_INSUFFICIENT_BUFFER  | The data area passed to a system call is too small.                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000124 ERROR_INVALID_LEVEL        | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfig2W(context.Context, *QueryServiceConfig2WRequest, ...dcerpc.CallOption) (*QueryServiceConfig2WResponse, error)

	// The RQueryServiceStatusEx method returns the current status of the specified service,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_STATUS access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle to the service record was created.                        |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The InfoLevel parameter contains an unsupported value.                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceStatusEx(context.Context, *QueryServiceStatusExRequest, ...dcerpc.CallOption) (*QueryServiceStatusExResponse, error)

	// The REnumServicesStatusExA method enumerates services in the specified SCM database,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle to the SCM was created.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL           | The InfoLevel parameter contains an unsupported value.                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by the pszGroupName parameter does not exist in the SCM      |
	//	|                                   | GroupList.                                                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusExA(context.Context, *EnumServicesStatusExARequest, ...dcerpc.CallOption) (*EnumServicesStatusExAResponse, error)

	// The REnumServicesStatusExW method enumerates services in the specified SCM database,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) (ERROR_SUCCESS) on success;
	// otherwise, it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle to the SCM was created.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL           | The InfoLevel parameter contains an unsupported value.                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by the pszGroupName parameter does not exist in the SCM      |
	//	|                                   | GroupList.                                                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusExW(context.Context, *EnumServicesStatusExWRequest, ...dcerpc.CallOption) (*EnumServicesStatusExWResponse, error)

	// The RCreateServiceWOW64A method creates the service record for a 32-bit service on
	// a 64-bit system with the path to the file image automatically adjusted to point to
	// a 32-bit file location on the system.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists and RDeleteService has   |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the SCM database.                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceWOW64A(context.Context, *CreateServiceWOW64ARequest, ...dcerpc.CallOption) (*CreateServiceWOW64AResponse, error)

	// The RCreateServiceWOW64W method creates the service record for a 32-bit service on
	// a 64-bit system with the path to the file image automatically adjusted to point to
	// a 32-bit file location on the system.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceWOW64W(context.Context, *CreateServiceWOW64WRequest, ...dcerpc.CallOption) (*CreateServiceWOW64WResponse, error)

	// The RNotifyServiceStatusChange method<74> allows the client to register for notifications
	// and check, via RGetNotifyResults (section 3.1.4.44), when the specified service of
	// type SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS is created or deleted
	// or when its status changes.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                    | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                          | when the RPC context handle to the SCM was created, or the SERVICE_QUERY_STATUS  |
	//	|                                          | access right had not been granted to the caller when the RPC context handle to   |
	//	|                                          | the service record was created.                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                   | The handle is no longer valid or is not supported for the specified              |
	//	|                                          | notification.                                                                    |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 50 ERROR_NOT_SUPPORTED                   | The request is not supported.                                                    |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER               | A parameter that was specified is invalid.                                       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL                  | The system call level is not correct.                                            |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE     | The RDeleteService has been called for the service record identified by the      |
	//	|                                          | hService parameter.                                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS          | The system is shutting down.                                                     |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1242 ERROR_ALREADY_REGISTERED            | A notification status handle has already been created for the service handle     |
	//	|                                          | passed in the hService parameter.                                                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1294 ERROR_SERVICE_NOTIFY_CLIENT_LAGGING | The service notification client is lagging too far behind the current state of   |
	//	|                                          | services in the machine.                                                         |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	NotifyServiceStatusChange(context.Context, *NotifyServiceStatusChangeRequest, ...dcerpc.CallOption) (*NotifyServiceStatusChangeResponse, error)

	// The RGetNotifyResults method<75> returns notification information when the specified
	// status change that was previously requested by the client via RNotifyServiceStatusChange
	// (section 3.1.4.43) occurs on a specified service.
	//
	// The client MUST make one call to RGetNotifyResults for each call to RNotifyServiceStatusChange.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+--------------------------------+
	//	|             RETURN              |                                |
	//	|           VALUE/CODE            |          DESCRIPTION           |
	//	|                                 |                                |
	//	+---------------------------------+--------------------------------+
	//	+---------------------------------+--------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid. |
	//	+---------------------------------+--------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.   |
	//	+---------------------------------+--------------------------------+
	//	| 1235 ERROR_REQUEST_ABORTED      | The request was aborted.       |
	//	+---------------------------------+--------------------------------+
	GetNotifyResults(context.Context, *GetNotifyResultsRequest, ...dcerpc.CallOption) (*GetNotifyResultsResponse, error)

	// The RCloseNotifyHandle method<77> unregisters the client from receiving future notifications
	// via the RGetNotifyResults (section 3.1.4.44) method from the server for specified
	// status changes on a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+------------------------+--------------------------------+
	//	|         RETURN         |                                |
	//	|       VALUE/CODE       |          DESCRIPTION           |
	//	|                        |                                |
	//	+------------------------+--------------------------------+
	//	+------------------------+--------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | The handle is no longer valid. |
	//	+------------------------+--------------------------------+
	CloseNotify(context.Context, *CloseNotifyRequest, ...dcerpc.CallOption) (*CloseNotifyResponse, error)

	// The RControlServiceExA method<78> receives a control code for a specific service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The required access right had not been granted to the caller when the RPC        |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | The requested control code is undefined.                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL               | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                       | it.                                                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<79>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the state of    |
	//	|                                       | the service is SERVICE_START_PENDING or SERVICE_STOP_PENDING.                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                       | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	ControlServiceExA(context.Context, *ControlServiceExARequest, ...dcerpc.CallOption) (*ControlServiceExAResponse, error)

	// The RControlServiceExW method<80> receives a control code for a specific service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	|                   RETURN                    |                                                                                  |
	//	|                 VALUE/CODE                  |                                   DESCRIPTION                                    |
	//	|                                             |                                                                                  |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED              | The required access right had not been granted to the caller when the RPC        |
	//	|                                             | context handle to the service record was created.                                |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000006 ERROR_INVALID_HANDLE             | The handle is no longer valid.                                                   |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000087 ERROR_INVALID_PARAMETER          | The requested control code is undefined.                                         |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000124 ERROR_INVALID_LEVEL              | The dwInfoLevel parameter contains an unsupported level.                         |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                             | it.                                                                              |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                             | implementation-specific timeout.<81>                                             |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the state of    |
	//	|                                             | the service is SERVICE_START_PENDING or SERVICE_STOP_PENDING.                    |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                             | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS             | The system is shutting down.                                                     |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	ControlServiceExW(context.Context, *ControlServiceExWRequest, ...dcerpc.CallOption) (*ControlServiceExWResponse, error)

	// The RQueryServiceConfigEx  method SHOULD<82> query the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigEx(context.Context, *QueryServiceConfigExRequest, ...dcerpc.CallOption) (*QueryServiceConfigExResponse, error)

	// The RCreateWowService method creates a service whose binary is compiled for a specified
	// computer architecture.<83> The path to the file image is automatically adjusted to
	// point to the correct WoW-redirected location.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 50 ERROR_NOT_SUPPORTED               | dwServiceWowType was an architecture that is not supported.                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateWOWService(context.Context, *CreateWOWServiceRequest, ...dcerpc.CallOption) (*CreateWOWServiceResponse, error)

	// The ROpenSCManager2 method establishes a connection to server and opens the SCM database
	// on the specified server.<87>
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The client does not have the required access rights to open the SCM              |
	//	|                                    | database on the server or the desired access is not granted to it in the SCM     |
	//	|                                    | SecurityDescriptor.                                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCM2(context.Context, *OpenSCM2Request, ...dcerpc.CallOption) (*OpenSCM2Response, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error

	// Conn returns the client connection (unsafe)
	Conn() dcerpc.Conn
}

svcctl interface.

func NewSvcctlClient

func NewSvcctlClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (SvcctlClient, error)

type SvcctlServer

type SvcctlServer interface {

	// The RCloseServiceHandle method is called by the client. In response, the server releases
	// the handle to the specified service or the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN         |                                                                                  |
	//	|       VALUE/CODE       |                                   DESCRIPTION                                    |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | The handle is no longer valid.                                                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 0xFFFF75FD             | The operation completed successfully. Additionally, the passed handle was the    |
	//	|                        | last one created for the associated service record that was previously used in a |
	//	|                        | successful call to the RNotifyServiceStatusChange (section 3.1.4.43) method.     |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 0xFFFF75FE             | The operation completed successfully. Additionally, the passed handle was        |
	//	|                        | previously used in a successful call to the RNotifyServiceStatusChange method.   |
	//	+------------------------+----------------------------------------------------------------------------------+
	CloseService(context.Context, *CloseServiceRequest) (*CloseServiceResponse, error)

	// The RControlService method receives a control code for a specific service handle,
	// as specified by the client.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The required access right had not been granted to the caller when the RPC        |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                       | it.                                                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | The requested control code is undefined                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<35>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the             |
	//	|                                       | ServiceStatus.dwCurrentState in the service record is SERVICE_START_PENDING or   |
	//	|                                       | SERVICE_STOP_PENDING.                                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                       | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	ControlService(context.Context, *ControlServiceRequest) (*ControlServiceResponse, error)

	// The RDeleteService method marks the specified service for deletion from the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The DELETE access right had not been granted to the caller when the RPC context  |
	//	|                                      | handle to the service record was created.                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle is no longer valid.                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has already been called for the service record identified by  |
	//	|                                      | the hService parameter.                                                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	DeleteService(context.Context, *DeleteServiceRequest) (*DeleteServiceResponse, error)

	// The RLockServiceDatabase method acquires a lock on an SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The SC_MANAGER_LOCK access rights had not been granted to the caller when the    |
	//	|                                    | RPC context handle was created.                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE             | The handle is no longer valid.                                                   |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED | The service database is locked.                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	LockServiceDatabase(context.Context, *LockServiceDatabaseRequest) (*LockServiceDatabaseResponse, error)

	// The RQueryServiceObjectSecurity method returns a copy of the SECURITY_DESCRIPTOR
	// structure associated with a service object.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The required access rights had not been granted to the caller when the RPC       |
	//	|                               | context handle was created.                                                      |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER    | A parameter that was specified is invalid.                                       |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//
	// The client MAY provide a combination of one or more SECURITY_INFORMATION bit flags
	// for dwSecurityInformation.
	//
	// If SACL_SECURITY_INFORMATION is specified for the dwSecurityInformation parameter,
	// then an ACCESS_SYSTEM_SECURITY right MUST have been granted to the caller when hService
	// was created. (See AS in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	//
	// If DACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, OWNER_SECURITY_INFORMATION,
	// or GROUP_SECURITY_INFORMATION is specified for the dwSecurityInformation parameter,
	// then a READ_CONTROL right MUST have been granted to the caller when hService was
	// created. (See RC in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	QueryServiceObjectSecurity(context.Context, *QueryServiceObjectSecurityRequest) (*QueryServiceObjectSecurityResponse, error)

	// The RSetServiceObjectSecurity method sets the SECURITY_DESCRIPTOR structure associated
	// with a service object.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The required access rights had not been granted to the caller when the RPC       |
	//	|                                      | context handle was created.                                                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle is no longer valid.                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService method has been called with an RPC context handle identifying |
	//	|                                      | the same service record as the hService parameter for this call.                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//
	// The client MAY provide a combination of one or more SECURITY_INFORMATION bit flags
	// for dwSecurityInformation.
	//
	// If SACL_SECURITY_INFORMATION is specified via dwSecurityInformation, then an ACCESS_SYSTEM_SECURITY
	// right MUSThave been granted to the caller when hService was created. (See WD in ACCESS_MASK
	// in [MS-DTYP] 2.4.3.
	//
	// If LABEL_SECURITY_INFORMATION or OWNER_SECURITY_INFORMATION or GROUP_SECURITY_INFORMATION
	// is specified via dwSecurityInformation, then a WRITE_OWNER right MUST have been granted
	// to the caller when hService was created. (See WO in ACCESS_MASK in [MS-DTYP] 2.4.3.)
	//
	// If DACL_SECURITY_INFORMATION is specified via dwSecurityInformation, then a WRITE_DAC
	// right MUST have been granted to the caller when hService was created. (See WD in
	// ACCESS_MASK in [MS-DTYP] 2.4.3.)
	SetServiceObjectSecurity(context.Context, *SetServiceObjectSecurityRequest) (*SetServiceObjectSecurityResponse, error)

	// The RQueryServiceStatus method returns the current status of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_STATUS access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND          | The ImagePath of the service record identified by the hService parameter does    |
	//	|                                 | not exist.                                                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//
	// If the type of the service record is SERVICE_KERNEL_DRIVER or SERVICE_FILESYSTEM_DRIVER,
	// the SCM queries the current status of the driver from the operating system and set
	// the ServiceStatus.dwCurrentState of the service record to SERVICE_RUNNING if driver
	// is loaded and to SERVICE_STOPPED if it is not.
	QueryServiceStatus(context.Context, *QueryServiceStatusRequest) (*QueryServiceStatusResponse, error)

	// The RSetServiceStatus method updates the SCM status information for the calling service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN         |                                                                                  |
	//	|       VALUE/CODE       |                                   DESCRIPTION                                    |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | Either the handle is no longer valid or the SERVICE_SET_STATUS access rights had |
	//	|                        | not been granted to the caller when the RPC context handle was created.          |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA  | The data provided in the lpServiceStatus parameter is invalid.                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	SetServiceStatus(context.Context, *SetServiceStatusRequest) (*SetServiceStatusResponse, error)

	// The RUnlockServiceDatabase method releases a lock on a service database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+---------------------------------+----------------------------------------------+
	//	|             RETURN              |                                              |
	//	|           VALUE/CODE            |                 DESCRIPTION                  |
	//	|                                 |                                              |
	//	+---------------------------------+----------------------------------------------+
	//	+---------------------------------+----------------------------------------------+
	//	| 1071 ERROR_INVALID_SERVICE_LOCK | The specified RPC context handle is invalid. |
	//	+---------------------------------+----------------------------------------------+
	UnlockServiceDatabase(context.Context, *UnlockServiceDatabaseRequest) (*UnlockServiceDatabaseResponse, error)

	// The RNotifyBootConfigStatus method reports the boot status to the SCM.
	//
	// Return Values: The method returns ERROR_SUCCESS (0x00000000) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED            | The caller does not have the SC_MANAGER_MODIFY_BOOT_CONFIG access rights granted |
	//	|                                  | in the SCM Security Descriptor.                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 1074 ERROR_ALREADY_RUNNING_LKG   | The system is currently running with the last-known-good configuration.          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 1076 ERROR_BOOT_ALREADY_ACCEPTED | The BootAccepted field of the SCM on the target machine indicated that a         |
	//	|                                  | successful call to RNotifyBootConfigStatus has already been made.                |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	NotifyBootConfigStatus(context.Context, *NotifyBootConfigStatusRequest) (*NotifyBootConfigStatusResponse, error)

	// The RChangeServiceConfigW method changes a service's configuration parameters in
	// the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                      | the RPC context handle to the service record was created.                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The lpDisplayName matches either the ServiceName or the DisplayName of another   |
	//	|                                      | service record in the service control manager database.                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has been called for the service record identified by the      |
	//	|                                      | hService parameter.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfigW(context.Context, *ChangeServiceConfigWRequest) (*ChangeServiceConfigWResponse, error)

	// The RCreateServiceW method creates the service record in the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle was created.                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists and RDeleteService has   |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceW(context.Context, *CreateServiceWRequest) (*CreateServiceWResponse, error)

	// The REnumDependentServicesW method returns the ServiceName, DisplayName, and ServiceStatus
	// values of service records that are listed as dependents of a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_ENUMERATE_DEPENDENT access right had not been granted to the caller  |
	//	|                                 | when the RPC context handle to the service record was created.                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA             | More data is available.                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	EnumDependentServicesW(context.Context, *EnumDependentServicesWRequest) (*EnumDependentServicesWResponse, error)

	// The REnumServicesStatusW method enumerates service records in the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|           RETURN           |                                                                                  |
	//	|         VALUE/CODE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED      | The SM_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                            | when the RPC context handle to the service record was created.                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE     | The handle is no longer valid.                                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER | A parameter that was specified is invalid.                                       |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA        | More data is available.                                                          |
	//	+----------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusW(context.Context, *EnumServicesStatusWRequest) (*EnumServicesStatusWResponse, error)

	// The ROpenSCManagerW method establishes a connection to server and opens the SCM database
	// on the specified server.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The client does not have the required access rights to open the SCM              |
	//	|                                    | database on the server or the desired access is not granted to it in the SCM     |
	//	|                                    | SecurityDescriptor.                                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCMW(context.Context, *OpenSCMWRequest) (*OpenSCMWResponse, error)

	// The ROpenServiceW method creates an RPC context handle to an existing service record.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The access specified by the dwDesiredAccess parameter cannot be granted to the   |
	//	|                                   | caller.                                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with a specified DisplayName does not exist in the SCM        |
	//	|                                   | database.                                                                        |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	OpenServiceW(context.Context, *OpenServiceWRequest) (*OpenServiceWResponse, error)

	// The RQueryServiceConfigW method returns the configuration parameters of the specified
	// service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigW(context.Context, *QueryServiceConfigWRequest) (*QueryServiceConfigWResponse, error)

	// The RQueryServiceLockStatusW method returns the lock status of the specified SCM
	// database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The SC_MANAGER_QUERY_LOCK_STATUS access right had not been granted to the caller |
	//	|                               | when the RPC context handle was created.                                         |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	QueryServiceLockStatusW(context.Context, *QueryServiceLockStatusWRequest) (*QueryServiceLockStatusWResponse, error)

	// The RStartServiceW method starts a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.<41>
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 2 ERROR_FILE_NOT_FOUND                | The system cannot find the file specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND                | The system cannot find the path specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The SERVICE_START access right had not been granted to the caller when the RPC   |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<42>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1054 ERROR_SERVICE_NO_THREAD          | A thread could not be created for the service.                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED    | The service database is locked by the call to the BlockServiceDatabase           |
	//	|                                       | method.<43>                                                                      |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1056 ERROR_SERVICE_ALREADY_RUNNING    | The ServiceStatus.dwCurrentState in the service record is not set to             |
	//	|                                       | SERVICE_STOPPED.                                                                 |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1058 ERROR_SERVICE_DISABLED           | The service cannot be started because the Start field in the service record is   |
	//	|                                       | set to SERVICE_DISABLED.                                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1068 ERROR_SERVICE_DEPENDENCY_FAIL    | The specified service depends on another service that has failed to start.       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1069 ERROR_SERVICE_LOGON_FAILED       | The service did not start due to a logon failure.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE  | The RDeleteService method has been called for the service record identified by   |
	//	|                                       | the hService parameter.                                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1075 ERROR_SERVICE_DEPENDENCY_DELETED | The specified service depends on a service that does not exist or has been       |
	//	|                                       | marked for deletion.                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	StartServiceW(context.Context, *StartServiceWRequest) (*StartServiceWResponse, error)

	// The RGetServiceDisplayNameW method returns the display name of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The display name does not fit in the buffer.                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the specified ServiceName does not exist in the SCM      |
	//	|                                   | database identified by the hSCManager parameter.                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceDisplayNameW(context.Context, *GetServiceDisplayNameWRequest) (*GetServiceDisplayNameWResponse, error)

	// The RGetServiceKeyNameW method returns the ServiceName of the service record with
	// the specified DisplayName.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The name specified in the lpDisplayName parameter is invalid or set to NULL.     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the DisplayName matching the value specified in the      |
	//	|                                   | lpDisplayName parameter does not exist in the SCM database identified by the     |
	//	|                                   | hSCManager parameter.                                                            |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceKeyNameW(context.Context, *GetServiceKeyNameWRequest) (*GetServiceKeyNameWResponse, error)

	// The RChangeServiceConfigA method changes a service's configuration parameters in
	// the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                      | the RPC context handle to the service record was created.                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The lpDisplayName matches either the ServiceName or the DisplayName of another   |
	//	|                                      | service record in the service control manager database.                          |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The RDeleteService has been called for the service record identified by the      |
	//	|                                      | hService parameter.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfigA(context.Context, *ChangeServiceConfigARequest) (*ChangeServiceConfigAResponse, error)

	// The RCreateServiceA method creates the service record in the SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle was created.                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceA(context.Context, *CreateServiceARequest) (*CreateServiceAResponse, error)

	// The REnumDependentServicesA method returns the ServiceName, DisplayName, and ServiceStatus
	// of each service record that depends on the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_ENUMERATE_DEPENDENT access right had not been granted to the caller  |
	//	|                                 | when the RPC context handle to the service record was created.                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA             | More data is available.                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	EnumDependentServicesA(context.Context, *EnumDependentServicesARequest) (*EnumDependentServicesAResponse, error)

	// The REnumServicesStatusA method enumerates service records in the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|           RETURN           |                                                                                  |
	//	|         VALUE/CODE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED      | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                            | when the RPC context handle to the service record was created.                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE     | The handle is no longer valid.                                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER | A parameter that was specified is invalid.                                       |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA        | More data is available.                                                          |
	//	+----------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusA(context.Context, *EnumServicesStatusARequest) (*EnumServicesStatusAResponse, error)

	// The ROpenSCManagerA method opens a connection to the SCM from the client and then
	// opens the specified SCM database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The SC_MANAGER_CONNECT access right or the desired access is not granted to the  |
	//	|                                    | caller in the SCM SecurityDescriptor.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCMA(context.Context, *OpenSCMARequest) (*OpenSCMAResponse, error)

	// The ROpenServiceA method creates an RPC context handle to an existing service record.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The access specified by the dwDesiredAccess parameter cannot be granted to the   |
	//	|                                   | caller.                                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with a specified DisplayName does not exist in the SCM        |
	//	|                                   | database.                                                                        |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	OpenServiceA(context.Context, *OpenServiceARequest) (*OpenServiceAResponse, error)

	// The RQueryServiceConfigA method returns the configuration parameters of the specified
	// service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigA(context.Context, *QueryServiceConfigARequest) (*QueryServiceConfigAResponse, error)

	// The RQueryServiceLockStatusA method returns the lock status of the specified SCM
	// database.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|            RETURN             |                                                                                  |
	//	|          VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED         | The SC_MANAGER_QUERY_LOCK_STATUS access right had not been granted to the caller |
	//	|                               | when the RPC context handle was created.                                         |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE        | The handle is no longer valid.                                                   |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER | The data area passed to a system call is too small.                              |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	QueryServiceLockStatusA(context.Context, *QueryServiceLockStatusARequest) (*QueryServiceLockStatusAResponse, error)

	// The RStartServiceA method starts a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.<46>
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 2 ERROR_FILE_NOT_FOUND                | The system cannot find the file specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 3 ERROR_PATH_NOT_FOUND                | The system cannot find the path specified.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The SERVICE_START access right had not been granted to the caller when the RPC   |
	//	|                                       | context handle to the service was created.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<47>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1054 ERROR_SERVICE_NO_THREAD          | A thread could not be created for the service.                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1055 ERROR_SERVICE_DATABASE_LOCKED    | The service database is locked by the call to the RLockServiceDatabase (section  |
	//	|                                       | 3.1.4.4) method.<48>                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1056 ERROR_SERVICE_ALREADY_RUNNING    | The ServiceStatus.dwCurrentState in the service record is not set to             |
	//	|                                       | SERVICE_STOPPED.                                                                 |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1058 ERROR_SERVICE_DISABLED           | The service cannot be started because the Start field in the service record is   |
	//	|                                       | set to SERVICE_DISABLED.                                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1068 ERROR_SERVICE_DEPENDENCY_FAIL    | The specified service depends on another service that has failed to start.       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1069 ERROR_SERVICE_LOGON_FAILED       | The service did not start due to a logon failure.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE  | The RDeleteService method has been called for the service record identified by   |
	//	|                                       | the hService parameter.                                                          |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1075 ERROR_SERVICE_DEPENDENCY_DELETED | The specified service depends on a service that does not exist or has been       |
	//	|                                       | marked for deletion.                                                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	StartServiceA(context.Context, *StartServiceARequest) (*StartServiceAResponse, error)

	// The RGetServiceDisplayNameA method returns the display name of the specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The display name does not fit in the buffer.                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The specified service name is invalid.                                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the specified ServiceName does not exist in the SCM      |
	//	|                                   | database identified by the hSCManager parameter.                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceDisplayNameA(context.Context, *GetServiceDisplayNameARequest) (*GetServiceDisplayNameAResponse, error)

	// The RGetServiceKeyNameA method returns the ServiceName of the service record with
	// the specified DisplayName.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER     | The data area passed to a system call is too small.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME            | The name specified in lpDisplayName is invalid or set to NULL.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The service record with the DisplayName matching the specified lpDisplayName     |
	//	|                                   | does not exist in the SCM database identified by the hSCManager parameter.       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	GetServiceKeyNameA(context.Context, *GetServiceKeyNameARequest) (*GetServiceKeyNameAResponse, error)

	// The REnumServiceGroupW method returns the members of a service group.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle was created.                                         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by pszGroupName does not exist in the SCM GroupList.         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServiceGroupW(context.Context, *EnumServiceGroupWRequest) (*EnumServiceGroupWResponse, error)

	// The RChangeServiceConfig2A method SHOULD<51> change the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.<52>
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                  |                                                                                  |
	//	|               VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                   | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                         | the RPC context handle to the service record was created.                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                  | The handle is no longer valid.                                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER              | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE    | The RDeleteService has been called for the service record identified by the      |
	//	|                                         | hService parameter.                                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1080 ERROR_CANNOT_DETECT_DRIVER_FAILURE | SERVICE_CONFIG_FAILURE_ACTIONS cannot be used as a dwInfoLevel in the Info       |
	//	|                                         | parameter for service records with a Type value defined for drivers.             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS         | The system is shutting down.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfig2A(context.Context, *ChangeServiceConfig2ARequest) (*ChangeServiceConfig2AResponse, error)

	// The RChangeServiceConfig2W <53> method changes the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise
	// it returns one of the following error codes.<54>
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                  |                                                                                  |
	//	|               VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                   | The SERVICE_CHANGE_CONFIG access right had not been granted to the caller when   |
	//	|                                         | the RPC context handle to the service record was created.                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                  | The handle is no longer valid.                                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER              | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE    | The RDeleteService has been called for the service record identified by the      |
	//	|                                         | hService parameter.                                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1080 ERROR_CANNOT_DETECT_DRIVER_FAILURE | SERVICE_CONFIG_FAILURE_ACTIONS cannot be used as a dwInfoLevel in the Info       |
	//	|                                         | parameter for service records with a Type value defined for drivers.             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS         | The system is shutting down.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	ChangeServiceConfig2W(context.Context, *ChangeServiceConfig2WRequest) (*ChangeServiceConfig2WResponse, error)

	// The RQueryServiceConfig2A <55> method returns the optional configuration parameters
	// of the specified service based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle to the service record was created.                        |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfig2A(context.Context, *QueryServiceConfig2ARequest) (*QueryServiceConfig2AResponse, error)

	// The RQueryServiceConfig2W <64> method returns the optional configuration parameters
	// of the specified service based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED        | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                       | the RPC context handle to the service record was created.                        |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000006 ERROR_INVALID_HANDLE       | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000087 ERROR_INVALID_PARAMETER    | A parameter that was specified is invalid.                                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000122 ERROR_INSUFFICIENT_BUFFER  | The data area passed to a system call is too small.                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000124 ERROR_INVALID_LEVEL        | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfig2W(context.Context, *QueryServiceConfig2WRequest) (*QueryServiceConfig2WResponse, error)

	// The RQueryServiceStatusEx method returns the current status of the specified service,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_STATUS access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle to the service record was created.                        |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER      | A parameter that was specified is invalid.                                       |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 122 ERROR_INSUFFICIENT_BUFFER   | The data area passed to a system call is too small.                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The InfoLevel parameter contains an unsupported value.                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceStatusEx(context.Context, *QueryServiceStatusExRequest) (*QueryServiceStatusExResponse, error)

	// The REnumServicesStatusExA method enumerates services in the specified SCM database,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle to the SCM was created.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL           | The InfoLevel parameter contains an unsupported value.                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by the pszGroupName parameter does not exist in the SCM      |
	//	|                                   | GroupList.                                                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusExA(context.Context, *EnumServicesStatusExARequest) (*EnumServicesStatusExAResponse, error)

	// The REnumServicesStatusExW method enumerates services in the specified SCM database,
	// based on the specified information level.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) (ERROR_SUCCESS) on success;
	// otherwise, it returns one of the following error codes.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN               |                                                                                  |
	//	|            VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED             | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                   | when the RPC context handle to the SCM was created.                              |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE            | The handle is no longer valid.                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER        | A parameter that was specified is invalid.                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL           | The InfoLevel parameter contains an unsupported value.                           |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 234 ERROR_MORE_DATA               | More data is available.                                                          |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1060 ERROR_SERVICE_DOES_NOT_EXIST | The group specified by the pszGroupName parameter does not exist in the SCM      |
	//	|                                   | GroupList.                                                                       |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS   | The system is shutting down.                                                     |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	EnumServicesStatusExW(context.Context, *EnumServicesStatusExWRequest) (*EnumServicesStatusExWResponse, error)

	// The RCreateServiceWOW64A method creates the service record for a 32-bit service on
	// a 64-bit system with the path to the file image automatically adjusted to point to
	// a 32-bit file location on the system.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists and RDeleteService has   |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the SCM database.                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceWOW64A(context.Context, *CreateServiceWOW64ARequest) (*CreateServiceWOW64AResponse, error)

	// The RCreateServiceWOW64W method creates the service record for a 32-bit service on
	// a 64-bit system with the path to the file image automatically adjusted to point to
	// a 32-bit file location on the system.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateServiceWOW64W(context.Context, *CreateServiceWOW64WRequest) (*CreateServiceWOW64WResponse, error)

	// The RNotifyServiceStatusChange method<74> allows the client to register for notifications
	// and check, via RGetNotifyResults (section 3.1.4.44), when the specified service of
	// type SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS is created or deleted
	// or when its status changes.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                    | The SC_MANAGER_ENUMERATE_SERVICE access right had not been granted to the caller |
	//	|                                          | when the RPC context handle to the SCM was created, or the SERVICE_QUERY_STATUS  |
	//	|                                          | access right had not been granted to the caller when the RPC context handle to   |
	//	|                                          | the service record was created.                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                   | The handle is no longer valid or is not supported for the specified              |
	//	|                                          | notification.                                                                    |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 50 ERROR_NOT_SUPPORTED                   | The request is not supported.                                                    |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER               | A parameter that was specified is invalid.                                       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL                  | The system call level is not correct.                                            |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE     | The RDeleteService has been called for the service record identified by the      |
	//	|                                          | hService parameter.                                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS          | The system is shutting down.                                                     |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1242 ERROR_ALREADY_REGISTERED            | A notification status handle has already been created for the service handle     |
	//	|                                          | passed in the hService parameter.                                                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1294 ERROR_SERVICE_NOTIFY_CLIENT_LAGGING | The service notification client is lagging too far behind the current state of   |
	//	|                                          | services in the machine.                                                         |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	NotifyServiceStatusChange(context.Context, *NotifyServiceStatusChangeRequest) (*NotifyServiceStatusChangeResponse, error)

	// The RGetNotifyResults method<75> returns notification information when the specified
	// status change that was previously requested by the client via RNotifyServiceStatusChange
	// (section 3.1.4.43) occurs on a specified service.
	//
	// The client MUST make one call to RGetNotifyResults for each call to RNotifyServiceStatusChange.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+--------------------------------+
	//	|             RETURN              |                                |
	//	|           VALUE/CODE            |          DESCRIPTION           |
	//	|                                 |                                |
	//	+---------------------------------+--------------------------------+
	//	+---------------------------------+--------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid. |
	//	+---------------------------------+--------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.   |
	//	+---------------------------------+--------------------------------+
	//	| 1235 ERROR_REQUEST_ABORTED      | The request was aborted.       |
	//	+---------------------------------+--------------------------------+
	GetNotifyResults(context.Context, *GetNotifyResultsRequest) (*GetNotifyResultsResponse, error)

	// The RCloseNotifyHandle method<77> unregisters the client from receiving future notifications
	// via the RGetNotifyResults (section 3.1.4.44) method from the server for specified
	// status changes on a specified service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns the following error code.
	//
	//	+------------------------+--------------------------------+
	//	|         RETURN         |                                |
	//	|       VALUE/CODE       |          DESCRIPTION           |
	//	|                        |                                |
	//	+------------------------+--------------------------------+
	//	+------------------------+--------------------------------+
	//	| 6 ERROR_INVALID_HANDLE | The handle is no longer valid. |
	//	+------------------------+--------------------------------+
	CloseNotify(context.Context, *CloseNotifyRequest) (*CloseNotifyResponse, error)

	// The RControlServiceExA method<78> receives a control code for a specific service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                 | The required access right had not been granted to the caller when the RPC        |
	//	|                                       | context handle to the service record was created.                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE                | The handle is no longer valid.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER            | The requested control code is undefined.                                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL               | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                       | it.                                                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                       | implementation-specific time-out.<79>                                            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the state of    |
	//	|                                       | the service is SERVICE_START_PENDING or SERVICE_STOP_PENDING.                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                       | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS       | The system is shutting down.                                                     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	ControlServiceExA(context.Context, *ControlServiceExARequest) (*ControlServiceExAResponse, error)

	// The RControlServiceExW method<80> receives a control code for a specific service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	|                   RETURN                    |                                                                                  |
	//	|                 VALUE/CODE                  |                                   DESCRIPTION                                    |
	//	|                                             |                                                                                  |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED              | The required access right had not been granted to the caller when the RPC        |
	//	|                                             | context handle to the service record was created.                                |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000006 ERROR_INVALID_HANDLE             | The handle is no longer valid.                                                   |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000087 ERROR_INVALID_PARAMETER          | The requested control code is undefined.                                         |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000124 ERROR_INVALID_LEVEL              | The dwInfoLevel parameter contains an unsupported level.                         |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001051 ERROR_DEPENDENT_SERVICES_RUNNING | The service cannot be stopped because other running services are dependent on    |
	//	|                                             | it.                                                                              |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001052 ERROR_INVALID_SERVICE_CONTROL    | The requested control code is not valid, or it is unacceptable to the service.   |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001053 ERROR_SERVICE_REQUEST_TIMEOUT    | The process for the service was started, but it did not respond within an        |
	//	|                                             | implementation-specific timeout.<81>                                             |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001061 ERROR_SERVICE_CANNOT_ACCEPT_CTRL | The requested control code cannot be sent to the service because the state of    |
	//	|                                             | the service is SERVICE_START_PENDING or SERVICE_STOP_PENDING.                    |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001062 ERROR_SERVICE_NOT_ACTIVE         | The service has not been started, or the ServiceStatus.dwCurrentState in the     |
	//	|                                             | service record is SERVICE_STOPPED.                                               |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS             | The system is shutting down.                                                     |
	//	+---------------------------------------------+----------------------------------------------------------------------------------+
	ControlServiceExW(context.Context, *ControlServiceExWRequest) (*ControlServiceExWResponse, error)

	// The RQueryServiceConfigEx  method SHOULD<82> query the optional configuration parameters
	// of a service.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED           | The SERVICE_QUERY_CONFIG access right had not been granted to the caller when    |
	//	|                                 | the RPC context handle was created.                                              |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE          | The handle is no longer valid.                                                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 124 ERROR_INVALID_LEVEL         | The dwInfoLevel parameter contains an unsupported value.                         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS | The system is shutting down.                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	QueryServiceConfigEx(context.Context, *QueryServiceConfigExRequest) (*QueryServiceConfigExResponse, error)

	// The RCreateWowService method creates a service whose binary is compiled for a specified
	// computer architecture.<83> The path to the file image is automatically adjusted to
	// point to the correct WoW-redirected location.
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED                | The SC_MANAGER_CREATE_SERVICE access right had not been granted to the caller    |
	//	|                                      | when the RPC context handle to the SCM was created.                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 6 ERROR_INVALID_HANDLE               | The handle specified is invalid.                                                 |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 13 ERROR_INVALID_DATA                | The data is invalid.                                                             |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 50 ERROR_NOT_SUPPORTED               | dwServiceWowType was an architecture that is not supported.                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 87 ERROR_INVALID_PARAMETER           | A parameter that was specified is invalid.                                       |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME               | The specified service name is invalid.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1057 ERROR_INVALID_SERVICE_ACCOUNT   | The user account name specified in the lpServiceStartName parameter does not     |
	//	|                                      | exist.                                                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1059 ERROR_CIRCULAR_DEPENDENCY       | A circular service dependency was specified.                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1072 ERROR_SERVICE_MARKED_FOR_DELETE | The service record with a specified name already exists, and RDeleteService has  |
	//	|                                      | been called for it.                                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1073 ERROR_SERVICE_EXISTS            | The service record with the ServiceName matching the specified lpServiceName     |
	//	|                                      | already exists.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1078 ERROR_DUPLICATE_SERVICE_NAME    | The service record with the same DisplayName or the same ServiceName as the      |
	//	|                                      | passed-in lpDisplayName already exists in the service control manager database.  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS      | The system is shutting down.                                                     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	CreateWOWService(context.Context, *CreateWOWServiceRequest) (*CreateWOWServiceResponse, error)

	// The ROpenSCManager2 method establishes a connection to server and opens the SCM database
	// on the specified server.<87>
	//
	// Return Values: The method returns 0x00000000 (ERROR_SUCCESS) on success; otherwise,
	// it returns one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 5 ERROR_ACCESS_DENIED              | The client does not have the required access rights to open the SCM              |
	//	|                                    | database on the server or the desired access is not granted to it in the SCM     |
	//	|                                    | SecurityDescriptor.                                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 123 ERROR_INVALID_NAME             | The specified service name is invalid.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1065 ERROR_DATABASE_DOES_NOT_EXIST | The database specified does not exist.                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 1115 ERROR_SHUTDOWN_IN_PROGRESS    | The system is shutting down.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	OpenSCM2(context.Context, *OpenSCM2Request) (*OpenSCM2Response, error)
}

svcctl server interface.

type UnicodeString

type UnicodeString struct {
	// StringPtr:  A pointer to a Unicode character string.
	StringPointer string `idl:"name:StringPtr;string" json:"string_pointer"`
}

UnicodeString structure represents STRING_PTRSW RPC structure.

The STRING_PTRSW structure defines a pointer to a Unicode character string.

func (*UnicodeString) MarshalNDR

func (o *UnicodeString) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*UnicodeString) UnmarshalNDR

func (o *UnicodeString) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type UnimplementedSvcctlServer added in v1.1.5

type UnimplementedSvcctlServer struct {
}

Unimplemented svcctl

func (UnimplementedSvcctlServer) ChangeServiceConfig2A added in v1.1.5

func (UnimplementedSvcctlServer) ChangeServiceConfig2W added in v1.1.5

func (UnimplementedSvcctlServer) ChangeServiceConfigA added in v1.1.5

func (UnimplementedSvcctlServer) ChangeServiceConfigW added in v1.1.5

func (UnimplementedSvcctlServer) CloseNotify added in v1.1.5

func (UnimplementedSvcctlServer) CloseService added in v1.1.5

func (UnimplementedSvcctlServer) ControlService added in v1.1.5

func (UnimplementedSvcctlServer) ControlServiceExA added in v1.1.5

func (UnimplementedSvcctlServer) ControlServiceExW added in v1.1.5

func (UnimplementedSvcctlServer) CreateServiceA added in v1.1.5

func (UnimplementedSvcctlServer) CreateServiceW added in v1.1.5

func (UnimplementedSvcctlServer) CreateServiceWOW64A added in v1.1.5

func (UnimplementedSvcctlServer) CreateServiceWOW64W added in v1.1.5

func (UnimplementedSvcctlServer) CreateWOWService added in v1.1.5

func (UnimplementedSvcctlServer) DeleteService added in v1.1.5

func (UnimplementedSvcctlServer) EnumDependentServicesA added in v1.1.5

func (UnimplementedSvcctlServer) EnumDependentServicesW added in v1.1.5

func (UnimplementedSvcctlServer) EnumServiceGroupW added in v1.1.5

func (UnimplementedSvcctlServer) EnumServicesStatusA added in v1.1.5

func (UnimplementedSvcctlServer) EnumServicesStatusExA added in v1.1.5

func (UnimplementedSvcctlServer) EnumServicesStatusExW added in v1.1.5

func (UnimplementedSvcctlServer) EnumServicesStatusW added in v1.1.5

func (UnimplementedSvcctlServer) GetNotifyResults added in v1.1.5

func (UnimplementedSvcctlServer) GetServiceDisplayNameA added in v1.1.5

func (UnimplementedSvcctlServer) GetServiceDisplayNameW added in v1.1.5

func (UnimplementedSvcctlServer) GetServiceKeyNameA added in v1.1.5

func (UnimplementedSvcctlServer) GetServiceKeyNameW added in v1.1.5

func (UnimplementedSvcctlServer) LockServiceDatabase added in v1.1.5

func (UnimplementedSvcctlServer) NotifyBootConfigStatus added in v1.1.5

func (UnimplementedSvcctlServer) NotifyServiceStatusChange added in v1.1.5

func (UnimplementedSvcctlServer) OpenSCM2 added in v1.1.5

func (UnimplementedSvcctlServer) OpenSCMA added in v1.1.5

func (UnimplementedSvcctlServer) OpenSCMW added in v1.1.5

func (UnimplementedSvcctlServer) OpenServiceA added in v1.1.5

func (UnimplementedSvcctlServer) OpenServiceW added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceConfig2A added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceConfig2W added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceConfigA added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceConfigEx added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceConfigW added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceLockStatusA added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceLockStatusW added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceObjectSecurity added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceStatus added in v1.1.5

func (UnimplementedSvcctlServer) QueryServiceStatusEx added in v1.1.5

func (UnimplementedSvcctlServer) SetServiceObjectSecurity added in v1.1.5

func (UnimplementedSvcctlServer) SetServiceStatus added in v1.1.5

func (UnimplementedSvcctlServer) StartServiceA added in v1.1.5

func (UnimplementedSvcctlServer) StartServiceW added in v1.1.5

func (UnimplementedSvcctlServer) UnlockServiceDatabase added in v1.1.5

type UnlockServiceDatabaseRequest

type UnlockServiceDatabaseRequest struct {
	// Lock: An LPSC_RPC_LOCK (section 2.2.5) data type that defines the database lock context
	// handle created by a previous call to the RLockServiceDatabase method.
	Lock *Lock `idl:"name:Lock" json:"lock"`
}

UnlockServiceDatabaseRequest structure represents the RUnlockServiceDatabase operation request

func (*UnlockServiceDatabaseRequest) MarshalNDR

func (*UnlockServiceDatabaseRequest) UnmarshalNDR

func (o *UnlockServiceDatabaseRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type UnlockServiceDatabaseResponse

type UnlockServiceDatabaseResponse struct {
	// Lock: An LPSC_RPC_LOCK (section 2.2.5) data type that defines the database lock context
	// handle created by a previous call to the RLockServiceDatabase method.
	Lock *Lock `idl:"name:Lock" json:"lock"`
	// Return: The RUnlockServiceDatabase return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UnlockServiceDatabaseResponse structure represents the RUnlockServiceDatabase operation response

func (*UnlockServiceDatabaseResponse) MarshalNDR

func (*UnlockServiceDatabaseResponse) UnmarshalNDR

func (o *UnlockServiceDatabaseResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL