da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER START
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The contents of this file are subject to the terms of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Common Development and Distribution License (the "License").
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You may not use this file except in compliance with the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * or http://www.opensolaris.org/os/licensing.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * See the License for the specific language governing permissions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and limitations under the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * When distributing Covered Code, include this CDDL HEADER in each
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If applicable, add the following below this CDDL HEADER, with the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * fields enclosed by brackets "[]" replaced with your own identifying
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * information: Portions Copyright [yyyy] [name of copyright owner]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER END
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Use is subject to license terms.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#ifndef _MLSVC_SVCCTL_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define _MLSVC_SVCCTL_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * NT Service Control Services (SVCCTL) RPC interface definition.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * This interface provides remote access to add, remove, start and
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * stop services.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#include "ndrtypes.ndl"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows NT */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_Close 0x00
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ControlService 0x01
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_DeleteService 0x02
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_LockServiceDatabase 0x03
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceSecurity 0x04
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SetServiceSecurity 0x05
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_QueryServiceStatus 0x06
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SetServiceStatus 0x07
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_UnlockServiceDatabase 0x08
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_NotifyBootConfigStatus 0x09
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SetServiceBits 0x0a
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ChangeServiceConfig 0x0b
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_CreateService 0x0c
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_EnumDependentServices 0x0d
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_EnumServicesStatus 0x0E
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_OpenManager 0x0F
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_OpenService 0x10
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define SVCCTL_OPNUM_QueryServiceConfig 0x11
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceLockStatus 0x12
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_StartService 0x13
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetServiceDisplayNameW 0x14
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetServiceKeyNameW 0x15
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SetServiceBitsA 0x16
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ChangeServiceConfigA 0x17
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_CreateServiceA 0x18
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_EnumDependentServicesA 0x19
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh#define SVCCTL_OPNUM_EnumServicesStatusA 0x1a
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_OpenSCManagerA 0x1b
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_OpenServiceA 0x1c
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceConfigA 0x1d
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceLockStatusA 0x1e
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_StartServiceA 0x1f
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetServiceDisplayNameA 0x20
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetServiceKeyNameA 0x21
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetCurrentGroupStateW 0x22
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_EnumServiceGroupW 0x23
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ChangeServiceConfig2A 0x24
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ChangeServiceConfig2W 0x25
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceConfig2A 0x26
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows 2000 */
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceConfig2W 0x27
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceStatusEx 0x28
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh#define SVCCTL_OPNUM_EnumServicesStatusExA 0x29
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh#define SVCCTL_OPNUM_EnumServicesStatusExW 0x2a
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows XP and Windows Server 2003 */
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SendTSMessage 0x2b
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows Vista */
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_CreateServiceWOW64A 0x2c
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_CreateServiceWOW64W 0x2d
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_QueryServiceTagInfo 0x2e
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_NotifyServiceStatusChange 0x2f
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_GetNotifyResult 0x30
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_CloseNotifyHandle 0x31
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ControlServiceExA 0x32
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ControlServiceExW 0x33
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_SendPnPMessage 0x34
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_ValidatePnPService 0x35
3db3f65c6274eb042354801a308c8e9bc4994553amw#define SVCCTL_OPNUM_OpenServiceStatusHandle 0x36
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
8d7e41661dc4633488e93b13363137523ce59977jose borregoCONTEXT_HANDLE(svcctl_handle) svcctl_handle_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * String definition for the ASCII interface.
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_value {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD vc_first_is; /* 0 */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD vc_length_is;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(vc_length_is)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh BYTE value[ANY_SIZE_ARRAY];
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The svc_status (SERVICE_STATUS) structure contains information about a
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * service. The ControlService, EnumDependentServices, EnumServicesStatus,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and QueryServiceStatus functions use this structure to return information
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * about a service. A service uses this structure in the SetServiceStatus
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * function to report its current status to the service control manager.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * service_type
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The type of service. This member can be one of the following values.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_FILE_SYSTEM_DRIVER
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_KERNEL_DRIVER
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_WIN32_OWN_PROCESS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_WIN32_SHARE_PROCESS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If the service type is either SERVICE_WIN32_OWN_PROCESS or
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_WIN32_SHARE_PROCESS, and the service is running in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the context of the LocalSystem account, the following type
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * may also be specified to indicate that the service can
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * interact with the desktop.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_INTERACTIVE_PROCESS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * cur_state
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The current state of the service. This member can be one of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * following values.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_CONTINUE_PENDING
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_PAUSE_PENDING
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_PAUSED
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_RUNNING
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_START_PENDING
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_STOP_PENDING
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_STOPPED
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * ctrl_accepted
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The control codes that the service will accept and process in its
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * handler function (see Handler and HandlerEx). A user interface
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * process can control a service by specifying a control command in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the ControlService function. By default, all services accept the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_CONTROL_INTERROGATE value. The following are the control
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * codes.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_ACCEPT_STOP
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_ACCEPT_PAUSE_CONTINUE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_ACCEPT_SHUTDOWN
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_ACCEPT_PARAMCHANGE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * SERVICE_ACCEPT_NETBINDCHANGE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * w32_exitcode
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * An error code that the service uses to report an error that occurs when
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * it is starting or stopping. To return an error code specific to the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * service, the service must set this value to ERROR_SERVICE_SPECIFIC_ERROR
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * to indicate that the dwServiceSpecificExitCode member contains the error
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * code. The service should set this value to NO_ERROR when it is running
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and on normal termination.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * svc_specified_exitcode
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * A service-specific error code that the service returns when an error
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * occurs while the service is starting or stopping. This value is ignored
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * unless the w32_exitcode member is set to ERROR_SERVICE_SPECIFIC_ERROR.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * check_point
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * A value that the service increments periodically to report its progress
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * during a lengthy start, stop, pause, or continue operation. For example,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the service should increment this value as it completes each step of its
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * initialization when it is starting up. The user interface program that
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * invoked the operation on the service uses this value to track the progress
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * of the service during a lengthy operation. This value is not valid and
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * should be zero when the service does not have a start, stop, pause, or
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * continue operation pending.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * wait_hint
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * An estimate of the amount of time, in milliseconds, that the service
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * expects a pending start, stop, pause, or continue operation to take
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * before the service makes its next call to the SetServiceStatus
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * function with either an incremented check_point value or a change in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * dwCurrentState. If the amount of time specified by wait_hint passes,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and check_point has not been incremented, or cur_state has not changed,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * the service control manager or service control program can assume that
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * an error has occurred and the service should be stopped.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svc_status {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD service_type;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD cur_state;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD ctrl_accepted;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD w32_exitcode;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD svc_specified_exitcode;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD check_point;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD wait_hint;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct svc_status svc_status_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svc_enum_status {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD svc_name; /* offset within response buffer */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD display_name; /* offset within response buffer */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw svc_status_t svc_status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct svc_enum_status svc_enum_status_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svc_config {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD service_type;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD start_type;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD error_control;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR binary_pathname;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR loadorder_group;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD tag_id;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR dependencies;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR service_startname;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR display_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct svc_config svc_config_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United Statesstruct svc_failure_actions {
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD reset_period;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD rebootmsg_offset;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD command_offset;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD actions;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD actions_offset;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States};
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United Statestypedef struct svc_failure_actions svc_failure_actions_t;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United Statesstruct svc_description {
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States DWORD desc; /* offset of description string */
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States};
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United Statestypedef struct svc_description svc_description_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai/* Boolean flag to control delayed start of service. Set 1=true, 0=false */
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desaistruct svc_delayed_auto_start {
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai DWORD dstart;
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai};
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desaitypedef struct svc_delayed_auto_start svc_delayed_auto_start_t;
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai/* Boolean flag to control configured failure action. Set 1=true, 0=false */
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desaistruct svc_config_failure_action {
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai DWORD cfa;
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai};
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desaitypedef struct svc_config_failure_action svc_config_failure_action_t;
e3f2c991a8548408db0a2787bd8b43d5124821d3Keyur Desai
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Close
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_Close)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_Close {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN svcctl_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT svcctl_handle_t result_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * ControlService
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_ControlService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_ControlService {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD control;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT svc_status_t service_status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * DeleteService
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_DeleteService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_DeleteService {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * QueryServiceSecurity
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_QueryServiceSecurity)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_QueryServiceSecurity {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD security_info;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD buf_size;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT REFERENCE LPBYTE buffer;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD bytes_needed;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * SetServiceSecurity
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_SetServiceSecurity)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_SetServiceSecurity {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD security_info;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN REFERENCE LPBYTE buffer;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD buf_size;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * OpenManager
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_OpenManager)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_OpenManager {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN LPTSTR machine_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN LPTSTR database_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD desired_access;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT svcctl_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * OpenService
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_OpenService)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_OpenService {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN svcctl_handle_t manager_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN REFERENCE LPTSTR service_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD desired_access;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT svcctl_handle_t service_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * QueryServiceStatus
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_QueryServiceStatus)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_QueryServiceStatus {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN svcctl_handle_t service_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT svc_status_t service_status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * EnumDependentServices
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_EnumDependentServices)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_EnumDependentServices {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD svc_state;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD buf_size;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT REFERENCE LPBYTE services;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD bytes_needed;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD svc_num;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * EnumServicesStatus
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_EnumServicesStatus)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_EnumServicesStatus {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN svcctl_handle_t manager_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD svc_type;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD svc_state;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN DWORD buf_size;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States SIZE_IS(buf_size)
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT REFERENCE LPBYTE services;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD bytes_needed;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD svc_num;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States INOUT DWORD *resume_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * QueryServiceConfig
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(SVCCTL_OPNUM_QueryServiceConfig)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct svcctl_QueryServiceConfig {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN svcctl_handle_t service_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD buf_size;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT svc_config_t service_cfg;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD cfg_bytes;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * StartService
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh *
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * argc: The number of strings in argv. If argv is NULL,
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * argc may be 0.
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * argv: A pointer to a buffer containing an array of
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * null-terminated Unicode strings.
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh *
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * For service management support, this should probably be:
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * IN DWORD argc;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * IN REFERENCE LPBYTE argv;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_StartService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_StartService {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD argc;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD argv;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
3db3f65c6274eb042354801a308c8e9bc4994553amw/*
3db3f65c6274eb042354801a308c8e9bc4994553amw ***********************************************************************
3db3f65c6274eb042354801a308c8e9bc4994553amw * GetServiceDisplayNameW
3db3f65c6274eb042354801a308c8e9bc4994553amw ***********************************************************************
3db3f65c6274eb042354801a308c8e9bc4994553amw */
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(SVCCTL_OPNUM_GetServiceDisplayNameW)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct svcctl_GetServiceDisplayNameW {
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN svcctl_handle_t manager_handle;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN REFERENCE LPTSTR service_name;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT REFERENCE LPTSTR display_name;
3db3f65c6274eb042354801a308c8e9bc4994553amw INOUT DWORD buf_size;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/*
3db3f65c6274eb042354801a308c8e9bc4994553amw ***********************************************************************
3db3f65c6274eb042354801a308c8e9bc4994553amw * GetServiceKeyNameW
3db3f65c6274eb042354801a308c8e9bc4994553amw ***********************************************************************
3db3f65c6274eb042354801a308c8e9bc4994553amw */
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(SVCCTL_OPNUM_GetServiceKeyNameW)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct svcctl_GetServiceKeyNameW {
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN svcctl_handle_t manager_handle;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN REFERENCE LPTSTR service_name;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT REFERENCE LPTSTR key_name;
3db3f65c6274eb042354801a308c8e9bc4994553amw INOUT DWORD buf_size;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * OpenSCManagerA
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_OpenSCManagerA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_OpenSCManagerA {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN struct svcctl_value *machine_name;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN struct svcctl_value *database_name;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD desired_access;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT svcctl_handle_t handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * OpenServiceA
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_OpenServiceA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_OpenServiceA {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t manager_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN REFERENCE struct svcctl_value *service_name;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD desired_access;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * EnumServicesStatusA
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_EnumServicesStatusA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_EnumServicesStatusA {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t manager_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD svc_type;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD svc_state;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD buf_size;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT REFERENCE LPBYTE services;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD bytes_needed;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD svc_num;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh INOUT DWORD *resume_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States/*
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States ***********************************************************************
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States * QueryServiceConfig2W
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States ***********************************************************************
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States */
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United StatesOPERATION(SVCCTL_OPNUM_QueryServiceConfig2W)
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United Statesstruct svcctl_QueryServiceConfig2W {
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN svcctl_handle_t service_handle;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN DWORD info_level;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States IN DWORD buf_size;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States SIZE_IS(buf_size)
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT REFERENCE LPBYTE buffer;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT DWORD bytes_needed;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States OUT DWORD status;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States};
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh/*
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh * QueryServiceStatusEx
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh ***********************************************************************
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh */
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svc_status_ex {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD service_type;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD cur_state;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD ctrl_accepted;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD w32_exitcode;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD svc_specified_exitcode;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD check_point;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD wait_hint;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD process_id;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh DWORD service_flags;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshtypedef struct svc_status_ex svc_status_ex_t;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshOPERATION(SVCCTL_OPNUM_QueryServiceStatusEx)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintoshstruct svcctl_QueryServiceStatusEx {
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN svcctl_handle_t service_handle;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD info_level;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh IN DWORD buf_size;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh SIZE_IS(buf_size)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT REFERENCE LPBYTE buffer;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD bytes_needed;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh OUT DWORD status;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh};
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The SVCCTL interface definition.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwINTERFACE(0)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion svcctl_interface {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_Close)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_Close SvcClose;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_ControlService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_ControlService SvcControlService;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_DeleteService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_DeleteService SvcDeleteService;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_QueryServiceSecurity)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_QueryServiceSecurity SvcQueryServiceSecurity;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_SetServiceSecurity)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_SetServiceSecurity SvcSetServiceSecurity;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_OpenManager)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_OpenManager SvcOpenManager;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_OpenService)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_OpenService SvcOpenService;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_QueryServiceStatus)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_QueryServiceStatus SvcQueryServiceStatus;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_EnumDependentServices)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_EnumDependentServices Svc_EnumDependentServices;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_EnumServicesStatus)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_EnumServicesStatus SvcEnumServicesStatus;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(SVCCTL_OPNUM_QueryServiceConfig)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct svcctl_QueryServiceConfig SvcQueryServiceConfig;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_StartService)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_StartService SvcStartService;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(SVCCTL_OPNUM_GetServiceDisplayNameW)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct svcctl_GetServiceDisplayNameW SvcGetServiceDisplayNameW;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(SVCCTL_OPNUM_GetServiceKeyNameW)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct svcctl_GetServiceKeyNameW SvcGetServiceKeyNameW;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_OpenSCManagerA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_OpenSCManagerA SvcOpenSCManagerA;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_OpenServiceA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_OpenServiceA SvcOpenServiceA;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_EnumServicesStatusA)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_EnumServicesStatusA SvcEnumServicesStatusA;
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States CASE(SVCCTL_OPNUM_QueryServiceConfig2W)
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States struct svcctl_QueryServiceConfig2W SvcQueryServiceConfig2W;
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh CASE(SVCCTL_OPNUM_QueryServiceStatusEx)
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh struct svcctl_QueryServiceStatusEx SvcQueryServiceStatusEx;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef union svcctl_interface svcctl_interface_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwEXTERNTYPEINFO(svcctl_interface)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#endif /* _MLSVC_SVCCTL_NDL_ */