8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / uts / common / smbsrv / winsvc.h
blob132a6e7895fabd8b1ae96efe0ed629b2e8e49af4
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SMBSRV_WINSVC_H
27 #define _SMBSRV_WINSVC_H
30 * NT Service Control interface definition for the Service Control
31 * Manager (SCM).
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
39 * Service types (Bit Mask).
41 * SERVICE_WIN32_OWN_PROCESS The service runs in its own process.
42 * SERVICE_WIN32_SHARE_PROCESS The service shares a process with other
43 * services.
45 #define SERVICE_KERNEL_DRIVER 0x00000001
46 #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
47 #define SERVICE_ADAPTER 0x00000004
48 #define SERVICE_RECOGNIZER_DRIVER 0x00000008
49 #define SERVICE_WIN32_OWN_PROCESS 0x00000010
50 #define SERVICE_WIN32_SHARE_PROCESS 0x00000020
51 #define SERVICE_INTERACTIVE_PROCESS 0x00000100
53 #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER \
54 | SERVICE_FILE_SYSTEM_DRIVER \
55 | SERVICE_RECOGNIZER_DRIVER)
57 #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS \
58 | SERVICE_WIN32_SHARE_PROCESS)
60 #define SERVICE_TYPE_ALL (SERVICE_WIN32 \
61 | SERVICE_ADAPTER \
62 | SERVICE_DRIVER \
63 | SERVICE_INTERACTIVE_PROCESS)
66 * Start type.
68 #define SERVICE_BOOT_START 0x00000000
69 #define SERVICE_SYSTEM_START 0x00000001
70 #define SERVICE_AUTO_START 0x00000002
71 #define SERVICE_DEMAND_START 0x00000003
72 #define SERVICE_DISABLED 0x00000004
75 * Error control type.
77 #define SERVICE_ERROR_IGNORE 0x00000000
78 #define SERVICE_ERROR_NORMAL 0x00000001
79 #define SERVICE_ERROR_SEVERE 0x00000002
80 #define SERVICE_ERROR_CRITICAL 0x00000003
83 * Value to indicate no change to an optional parameter.
85 #define SERVICE_NO_CHANGE 0xffffffff
88 * Service State - for Enum Requests (Bit Mask).
90 #define SERVICE_ACTIVE 0x00000001
91 #define SERVICE_INACTIVE 0x00000002
92 #define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE)
95 * Controls
97 #define SERVICE_CONTROL_STOP 0x00000001
98 #define SERVICE_CONTROL_PAUSE 0x00000002
99 #define SERVICE_CONTROL_CONTINUE 0x00000003
100 #define SERVICE_CONTROL_INTERROGATE 0x00000004
101 #define SERVICE_CONTROL_SHUTDOWN 0x00000005
102 #define SERVICE_CONTROL_PARAMCHANGE 0x00000006
103 #define SERVICE_CONTROL_NETBINDADD 0x00000007
104 #define SERVICE_CONTROL_NETBINDREMOVE 0x00000008
105 #define SERVICE_CONTROL_NETBINDENABLE 0x00000009
106 #define SERVICE_CONTROL_NETBINDDISABLE 0x0000000A
109 * Service State -- for CurrentState
111 #define SERVICE_STOPPED 0x00000001
112 #define SERVICE_START_PENDING 0x00000002
113 #define SERVICE_STOP_PENDING 0x00000003
114 #define SERVICE_RUNNING 0x00000004
115 #define SERVICE_CONTINUE_PENDING 0x00000005
116 #define SERVICE_PAUSE_PENDING 0x00000006
117 #define SERVICE_PAUSED 0x00000007
120 * Controls Accepted (Bit Mask)
122 * SERVICE_ACCEPT_NETBINDCHANGE
123 * Windows 2000/XP: The service is a network component that
124 * can accept changes in its binding without being stopped and restarted.
125 * This control code allows the service to receive SERVICE_CONTROL_NETBINDADD,
126 * SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE, and
127 * SERVICE_CONTROL_NETBINDDISABLE notifications.
129 * SERVICE_ACCEPT_PARAMCHANGE
130 * Windows 2000/XP: The service can reread its startup parameters without
131 * being stopped and restarted. This control code allows the service to
132 * receive SERVICE_CONTROL_PARAMCHANGE notifications.
134 * SERVICE_ACCEPT_PAUSE_CONTINUE
135 * The service can be paused and continued. This control code allows the
136 * service to receive SERVICE_CONTROL_PAUSE and SERVICE_CONTROL_CONTINUE
137 * notifications.
139 * SERVICE_ACCEPT_SHUTDOWN
140 * The service is notified when system shutdown occurs. This control code
141 * allows the service to receive SERVICE_CONTROL_SHUTDOWN notifications.
142 * Note that ControlService cannot send this notification; only the system
143 * can send it.
145 * SERVICE_ACCEPT_STOP
146 * The service can be stopped. This control code allows the service to
147 * receive SERVICE_CONTROL_STOP notifications.
149 #define SERVICE_ACCEPT_STOP 0x00000001
150 #define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002
151 #define SERVICE_ACCEPT_SHUTDOWN 0x00000004
152 #define SERVICE_ACCEPT_PARAMCHANGE 0x00000008
153 #define SERVICE_ACCEPT_NETBINDCHANGE 0x00000010
156 * Service Control Manager object specific access types.
158 #define SC_MANAGER_CONNECT 0x0001
159 #define SC_MANAGER_CREATE_SERVICE 0x0002
160 #define SC_MANAGER_ENUMERATE_SERVICE 0x0004
161 #define SC_MANAGER_LOCK 0x0008
162 #define SC_MANAGER_QUERY_LOCK_STATUS 0x0010
163 #define SC_MANAGER_MODIFY_BOOT_CONFIG 0x0020
165 #define SC_MANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED \
166 | SC_MANAGER_CONNECT \
167 | SC_MANAGER_CREATE_SERVICE \
168 | SC_MANAGER_ENUMERATE_SERVICE \
169 | SC_MANAGER_LOCK \
170 | SC_MANAGER_QUERY_LOCK_STATUS \
171 | SC_MANAGER_MODIFY_BOOT_CONFIG)
174 * Service object specific access type.
176 #define SERVICE_QUERY_CONFIG 0x0001
177 #define SERVICE_CHANGE_CONFIG 0x0002
178 #define SERVICE_QUERY_STATUS 0x0004
179 #define SERVICE_ENUMERATE_DEPENDENTS 0x0008
180 #define SERVICE_START 0x0010
181 #define SERVICE_STOP 0x0020
182 #define SERVICE_PAUSE_CONTINUE 0x0040
183 #define SERVICE_INTERROGATE 0x0080
184 #define SERVICE_USER_DEFINED_CONTROL 0x0100
186 #define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED \
187 | SERVICE_QUERY_CONFIG \
188 | SERVICE_CHANGE_CONFIG \
189 | SERVICE_QUERY_STATUS \
190 | SERVICE_ENUMERATE_DEPENDENTS \
191 | SERVICE_START \
192 | SERVICE_STOP \
193 | SERVICE_PAUSE_CONTINUE \
194 | SERVICE_INTERROGATE \
195 | SERVICE_USER_DEFINED_CONTROL)
198 * Info levels for ChangeServiceConfig2 and QueryServiceConfig2.
200 #define SERVICE_CONFIG_DESCRIPTION 1
201 #define SERVICE_CONFIG_FAILURE_ACTIONS 2
202 #define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
203 #define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
204 #define SERVICE_CONFIG_SERVICE_SID_INFO 5
205 #define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
206 #define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
207 #define SERVICE_CONFIG_TRIGGER_INFO 8
208 #define SERVICE_CONFIG_PREFERRED_NODE 9
211 * Actions to take on service failure (SC_ACTION_TYPE).
213 #define SC_ACTION_NONE 0
214 #define SC_ACTION_RESTART 1
215 #define SC_ACTION_REBOOT 2
216 #define SC_ACTION_RUN_COMMAND 3
219 * Information level for QueryServiceStatusEx
221 #define SC_STATUS_PROCESS_INFO 0
223 #ifdef __cplusplus
225 #endif
227 #endif /* _SMBSRV_WINSVC_H */