~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/wine/svcctl.idl

Version: ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~ [ wine-1.0-rc5 ] ~ [ wine-1.0-rc4 ] ~ [ wine-1.0-rc3 ] ~ [ wine-1.0-rc2 ] ~ [ wine-1.0-rc1 ] ~ [ wine-0.9.61 ] ~ [ wine-0.9.60 ] ~ [ wine-0.9.59 ] ~ [ wine-0.9.58 ] ~ [ wine-0.9.57 ] ~ [ wine-0.9.56 ] ~ [ wine-0.9.55 ] ~ [ wine-0.9.54 ] ~ [ wine-0.9.53 ] ~ [ wine-0.9.52 ] ~ [ wine-0.9.51 ] ~ [ wine-0.9.50 ] ~ [ wine-0.9.49 ] ~ [ wine-0.9.48 ] ~ [ wine-0.9.47 ] ~ [ wine-0.9.46 ] ~ [ wine-0.9.45 ] ~ [ wine-0.9.44 ] ~ [ wine-0.9.43 ] ~ [ wine-0.9.42 ] ~ [ wine-0.9.41 ] ~ [ wine-0.9.40 ] ~ [ wine-0.9.39 ] ~ [ wine-0.9.38 ] ~ [ wine-0.9.37 ] ~ [ wine-0.9.36 ] ~ [ wine-0.9.35 ] ~ [ wine-0.9.34 ] ~ [ wine-0.9.33 ] ~ [ wine-0.9.32 ] ~ [ wine-0.9.31 ] ~ [ wine-0.9.30 ] ~ [ wine-0.9.29 ] ~ [ wine-0.9.28 ] ~ [ wine-0.9.27 ] ~ [ wine-0.9.26 ] ~ [ wine-0.9.25 ] ~ [ wine-0.9.24 ] ~ [ wine-0.9.23 ] ~ [ wine-0.9.22 ] ~ [ wine-0.9.21 ] ~ [ wine-0.9.20 ] ~ [ wine-0.9.19 ] ~ [ wine-0.9.18 ] ~ [ wine-0.9.17 ] ~ [ wine-0.9.16 ] ~ [ wine-0.9.15 ] ~ [ wine-0.9.14 ] ~ [ wine-0.9.13 ] ~ [ wine-0.9.12 ] ~ [ wine-0.9.11 ] ~ [ wine-0.9.10 ] ~ [ wine-0.9.9 ] ~ [ wine-0.9.8 ] ~ [ wine-0.9.7 ] ~ [ wine-0.9.6 ] ~ [ wine-0.9.5 ] ~ [ wine-0.9.4 ] ~ [ wine-0.9.3 ] ~ [ wine-0.9.2 ] ~ [ wine-0.9.1 ] ~ [ wine-0.9 ] ~ [ wine20050930 ] ~ [ wine20050830 ] ~ [ wine20050725 ] ~ [ wine20050628 ] ~ [ wine20050524 ] ~ [ wine20050419 ] ~ [ wine20050310 ] ~ [ wine20050211 ] ~ [ wine20050111 ] ~ [ wine20041201 ] ~ [ wine20041019 ] ~ [ wine20040914 ] ~ [ wine20040813 ] ~ [ wine20040716 ] ~ [ wine20040615 ] ~ [ wine20040505 ] ~ [ wine20040408 ] ~ [ wine20040309 ] ~ [ wine20040213 ] ~ [ wine20040121 ] ~ [ wine20031212 ] ~ [ wine20031118 ] ~ [ wine20031016 ] ~ [ wine20030911 ] ~ [ wine20030813 ] ~ [ wine20030709 ] ~ [ wine20030618 ] ~ [ wine20030508 ] ~ [ wine20030408 ] ~ [ wine20030318 ] ~ [ wine20030219 ] ~ [ wine20030115 ] ~ [ wine20021219 ] ~ [ wine20021125 ] ~ [ wine20021031 ] ~ [ wine20021007 ] ~ [ wine20020904 ] ~ [ wine20020804 ] ~ [ wine20020710 ] ~ [ wine20020605 ] ~ [ wine20020509 ] ~ [ wine20020411 ] ~ [ wine20020310 ] ~ [ wine20020228 ] ~ [ wine20011226 ] ~ [ wine20011108 ] ~ [ wine20011004 ] ~ [ wine20010824 ] ~ [ wine20010731 ] ~ [ wine20010629 ] ~ [ wine20010510 ] ~ [ wine20010418 ] ~ [ wine20010326 ] ~ [ wine20010305 ] ~ [ wine20010216 ] ~ [ wine20010112 ] ~ [ wine20001222 ] ~ [ wine20001202 ] ~ [ wine20001026 ] ~ [ wine20001002 ] ~ [ wine20000909 ] ~ [ wine20000821 ] ~ [ wine20000801 ] ~ [ wine20000716 ] ~ [ wine20000326 ] ~ [ wine20000227 ] ~ [ wine20000130 ] ~ [ wine20000109 ] ~

  1 /*
  2  * svcctl interface definitions - exported by services.exe to access the
  3  * services database
  4  *
  5  * Copyright 2007 Google (Mikolaj Zalewski)
  6  *
  7  * This library is free software; you can redistribute it and/or
  8  * modify it under the terms of the GNU Lesser General Public
  9  * License as published by the Free Software Foundation; either
 10  * version 2.1 of the License, or (at your option) any later version.
 11  *
 12  * This library is distributed in the hope that it will be useful,
 13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15  * Lesser General Public License for more details.
 16  *
 17  * You should have received a copy of the GNU Lesser General Public
 18  * License along with this library; if not, write to the Free Software
 19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 20  */
 21 
 22 import "wtypes.idl";
 23 
 24 /*
 25  * some defined for the C code
 26  */
 27 cpp_quote("#include \"winsvc.h\"")
 28 cpp_quote("#define SVCCTL_TRANSPORT {'n','c','a','c','n','_','n','p',0}")
 29 cpp_quote("#define SVCCTL_ENDPOINT {'\\\\','p','i','p','e','\\\\','s','v','c','c','t','l',0}")
 30 
 31 /* Not the Windows event name - if needed the true one can be found in Inside Windows */
 32 cpp_quote("#define SVCCTL_STARTED_EVENT {'_','_','w','i','n','e','_','S','v','c','c','t','l','S','t','a','r','t','e','d',0}")
 33 
 34 /* Service startup protocol over control pipe - not compatible with Windows */
 35 enum service_pipe_command
 36 {
 37     WINESERV_STARTINFO = 1,
 38     WINESERV_SENDCONTROL = 2
 39 };
 40 
 41 typedef struct service_start_info_t
 42 {
 43     enum service_pipe_command cmd;        /* request code */
 44     DWORD                     total_size; /* total request size */
 45     DWORD                     name_size;  /* size of name in data buffer */
 46     DWORD                     control;    /* control code */
 47     WCHAR                     data[1];
 48 } service_start_info;
 49 
 50 [
 51     uuid(367abb81-9844-35f1-ad32-98f038001003),
 52     version(2.0),
 53     pointer_default(unique),
 54     endpoint("ncacn_np:[\\pipe\\svcctl]")
 55 ]
 56 interface svcctl
 57 {
 58     /* handle types */
 59     typedef [handle] LPCWSTR MACHINE_HANDLEW;
 60     typedef [context_handle] void *SC_RPC_HANDLE;
 61     typedef [context_handle] void *SC_RPC_LOCK;
 62 
 63     /* undocumented access rights */
 64     cpp_quote("#define SERVICE_SET_STATUS   0x8000")
 65 
 66     /* undocumented access rights */
 67     cpp_quote("#define SERVICE_SET_STATUS   0x8000")
 68 
 69 cpp_quote("#if 0 /* already defined in winsvc.h */")
 70 typedef struct _QUERY_SERVICE_CONFIGW {
 71     DWORD   dwServiceType;
 72     DWORD   dwStartType;
 73     DWORD   dwErrorControl;
 74     [unique] LPWSTR  lpBinaryPathName;
 75     [unique] LPWSTR  lpLoadOrderGroup;
 76     DWORD   dwTagId;
 77     [unique] LPWSTR  lpDependencies;
 78     [unique] LPWSTR  lpServiceStartName;
 79     [unique] LPWSTR  lpDisplayName;
 80 } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
 81 
 82 typedef struct _SERVICE_STATUS {
 83   DWORD dwServiceType;
 84   DWORD dwCurrentState;
 85   DWORD dwControlsAccepted;
 86   DWORD dwWin32ExitCode;
 87   DWORD dwServiceSpecificExitCode;
 88   DWORD dwCheckPoint;
 89   DWORD dwWaitHint;
 90 } SERVICE_STATUS, *LPSERVICE_STATUS;
 91 
 92 typedef enum _SC_STATUS_TYPE {
 93   SC_STATUS_PROCESS_INFO      = 0
 94 } SC_STATUS_TYPE;
 95 cpp_quote("#endif")
 96 
 97 
 98     /* Compatible with Windows function 0x00 */
 99     DWORD svcctl_CloseServiceHandle(
100         [in,out] SC_RPC_HANDLE *handle
101     );
102 
103     /* Compatible with Windows function 0x01 */
104     DWORD svcctl_ControlService(
105         [in] SC_RPC_HANDLE hService,
106         [in] DWORD dwControl,
107         [out] SERVICE_STATUS *lpServiceStatus
108     );
109 
110     /* Compatible with Windows function 0x02 */
111     DWORD svcctl_DeleteService(
112         [in] SC_RPC_HANDLE hService
113     );
114 
115     /* Compatible with Windows function 0x03 */
116     DWORD svcctl_LockServiceDatabase(
117         [in] SC_RPC_HANDLE hSCManager,
118         [out] SC_RPC_LOCK *phLock
119     );
120 
121     /* Not compatible with Windows function 0x04 */
122     DWORD svcctl_QueryServiceObjectSecurity(/* FIXME */);
123 
124     /* Not compatible with Windows function 0x05 */
125     DWORD svcctl_SetServiceObjectSecurity(/* FIXME */);
126 
127     /* Not compatible with Windows function 0x06 */
128     DWORD svcctl_QueryServiceStatus(/* FIXME */);
129 
130     /* Compatible with Windows function 0x07 */
131     DWORD svcctl_SetServiceStatus(
132         [in] SC_RPC_HANDLE hServiceStatus,
133         [in] LPSERVICE_STATUS lpServiceStatus
134     );
135 
136     /* Compatible with Windows function 0x08 */
137     DWORD svcctl_UnlockServiceDatabase(
138         [in,out] SC_RPC_LOCK *phLock
139     );
140 
141     /* Not compatible with Windows function 0x09 */
142     DWORD svcctl_NotifyBootConfigStatus(/* FIXME */);
143 
144     /* Not compatible with Windows function 0x0a */
145     DWORD svcctl_SCSetServiceBitsW(/* FIXME */);
146 
147     /* Compatible with Windows function 0x0b */
148     DWORD svcctl_ChangeServiceConfigW(
149         [in] SC_RPC_HANDLE hService,
150         [in] DWORD dwServiceType,
151         [in] DWORD dwStartType,
152         [in] DWORD dwErrorControl,
153         [in,unique] LPCWSTR lpBinaryPathName,
154         [in,unique] LPCWSTR lpLoadOrderGroupKey,
155         [in,out,unique] DWORD *lpdwTagId,
156         [in,unique,size_is(dwDependenciesSize)] const BYTE *lpDependencies,
157         [in] DWORD dwDependenciesSize,
158         [in,unique] LPCWSTR lpServiceStartName,
159         [in,unique,size_is(dwPasswordSize)] const BYTE *lpPassword,
160         [in] DWORD dwPasswordSize,
161         [in,unique] LPCWSTR lpDisplayName
162     );
163 
164     /* Compatible with Windows function 0x0c */
165     DWORD svcctl_CreateServiceW(
166         [in] SC_RPC_HANDLE hSCManager,
167         [in] LPCWSTR lpServiceName,
168         [in,unique] LPCWSTR lpDisplayName,
169         [in] DWORD dwDesiredAccess,
170         [in] DWORD dwServiceType,
171         [in] DWORD dwStartType,
172         [in] DWORD dwErrorControl,
173         [in] LPCWSTR lpBinaryPathName,
174         [in,unique] LPCWSTR lpLoadOrderGroup,
175         [in,out,unique] DWORD *lpdwTagId,
176         [in,unique,size_is(dwDependenciesSize)] const BYTE *lpDependencies,
177         [in] DWORD dwDependenciesSize,
178         [in,unique] LPCWSTR lpServiceStartName,
179         [in,unique,size_is(dwPasswordSize)] const BYTE *lpPassword,
180         [in] DWORD dwPasswordSize,
181         [out] SC_RPC_HANDLE *phService
182     );
183 
184     /* Not compatible with Windows function 0x0d */
185     DWORD svcctl_EnumDependentServicesW(/* FIXME */);
186 
187     /* Not compatible with Windows function 0x0e */
188     DWORD svcctl_EnumServicesStatusW(/* FIXME */);
189 
190     /* Compatible with Windows function 0x0f */
191     DWORD svcctl_OpenSCManagerW(
192         [in,unique] MACHINE_HANDLEW MachineName,
193         [in,unique] LPCWSTR DatabaseName,
194         [in] DWORD dwAccessMask,
195         [out] SC_RPC_HANDLE *handle
196     );
197 
198     /* Compatible with Windows function 0x10 */
199     DWORD svcctl_OpenServiceW(
200         [in] SC_RPC_HANDLE hSCManager,
201         [in] LPCWSTR lpServiceName,
202         [in] DWORD dwDesiredAccess,
203         [out] SC_RPC_HANDLE *phService
204     );
205 
206     /* Windows function 0x11 must be using a different prototype - not compatible */
207     DWORD svcctl_QueryServiceConfigW(
208         [in] SC_RPC_HANDLE hService,
209         [out] QUERY_SERVICE_CONFIGW *config);
210 
211     /* Not compatible with Windows function 0x12 */
212     DWORD svcctl_QueryServiceLockStatusW(/* FIXME */);
213 
214     /* Untested with Windows function 0x13 */
215     DWORD svcctl_StartServiceW(
216         [in] SC_RPC_HANDLE hService,
217         [in] DWORD dwNumServiceArgs,
218         [in,unique,size_is(dwNumServiceArgs)] LPCWSTR *lpServiceArgVectors
219     );
220 
221     /* Compatible with Windows function 0x14 */
222     DWORD svcctl_GetServiceDisplayNameW(
223         [in] SC_RPC_HANDLE hSCManager,
224         [in] LPCWSTR lpServiceName,
225         [out,size_is(cchBufSize)] WCHAR lpBuffer[],
226         [in] DWORD cchBufSize,
227         [out] DWORD *cchLength);
228 
229     /* Compatible with Windows function 0x15 */
230     DWORD svcctl_GetServiceKeyNameW(
231         [in] SC_RPC_HANDLE hSCManager,
232         [in] LPCWSTR lpServiceDisplayName,
233         [out,size_is(cchBufSize)] WCHAR lpBuffer[],
234         [in] DWORD cchBufSize,
235         [out] DWORD *cchLength);
236 
237     /* Not compatible with Windows function 0x16 */
238     DWORD svcctl_SCSetServiceBitsA(/* FIXME */);
239 
240     /* Not compatible with Windows function 0x17 */
241     DWORD svcctl_ChangeServiceConfigA(/* FIXME */);
242 
243     /* Not compatible with Windows function 0x18 */
244     DWORD svcctl_CreateServiceA(/* FIXME */);
245 
246     /* Not compatible with Windows function 0x19 */
247     DWORD svcctl_EnumDependentServicesA(/* FIXME */);
248 
249     /* Not compatible with Windows function 0x1a */
250     DWORD svcctl_EnumServicesStatusA(/* FIXME */);
251 
252     /* Not compatible with Windows function 0x1b */
253     DWORD svcctl_OpenSCManagerA(/* FIXME */);
254 
255     /* Not compatible with Windows function 0x1c */
256     DWORD svcctl_OpenServiceA(/* FIXME */);
257 
258     /* Not compatible with Windows function 0x1d */
259     DWORD svcctl_QueryServiceConfigA(/* FIXME */);
260 
261     /* Not compatible with Windows function 0x1e */
262     DWORD svcctl_QueryServiceLockStatusA(/* FIXME */);
263 
264     /* Not compatible with Windows function 0x1f */
265     DWORD svcctl_StartServiceA(/* FIXME */);
266 
267     /* Not compatible with Windows function 0x20 */
268     DWORD svcctl_GetServiceDisplayNameA(/* FIXME */);
269 
270     /* Not compatible with Windows function 0x21 */
271     DWORD svcctl_GetServiceKeyNameA(/* FIXME */);
272 
273     /* Not compatible with Windows function 0x22 */
274     DWORD svcctl_GetCurrentGroupStateW(/* FIXME */);
275 
276     /* Not compatible with Windows function 0x23 */
277     DWORD svcctl_EnumServiceGroupW(/* FIXME */);
278 
279     /* Not compatible with Windows function 0x24 */
280     DWORD svcctl_ChangeServiceConfig2A(/* FIXME */);
281 
282     /* Not compatible with Windows function 0x25 */
283     DWORD svcctl_ChangeServiceConfig2W(/* FIXME */);
284 
285     /* Not compatible with Windows function 0x26 */
286     DWORD svcctl_QueryServiceConfig2A(/* FIXME */);
287 
288     /* Not compatible with Windows function 0x27 */
289     DWORD svcctl_QueryServiceConfig2W(/* FIXME */);
290 
291     /* Untested with Windows function 0x28 */
292     DWORD svcctl_QueryServiceStatusEx(
293         [in] SC_RPC_HANDLE hService,
294         [in] SC_STATUS_TYPE InfoLevel,
295         [out,size_is(cbBufSize)] BYTE *lpBuffer,
296         [in] DWORD cbBufSize,
297         [out] LPDWORD pcbBytesNeeded
298     );
299 }

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.