#define DWORD unsigned long\r
#define BOOL unsigned long\r
#define SC_HANDLE unsigned int\r
+#define SC_LOCK unsigned int\r
#define LPCSTR char*\r
#define LPCWSTR wchar_t*\r
+#define LPDWORD unsigned long*\r
\r
[\r
uuid(367abb81-9844-35f1-ad32-98f038001003),\r
]\r
interface svcctl\r
{\r
-cpp_quote("#if 0");\r
+cpp_quote("#if 0")\r
typedef struct _SERVICE_STATUS\r
{\r
DWORD dwServiceType;\r
DWORD dwCheckPoint;\r
DWORD dwWaitHint;\r
} SERVICE_STATUS, *LPSERVICE_STATUS;\r
-cpp_quote("#endif");\r
+cpp_quote("#endif")\r
\r
- /* Service 0 */\r
+ /* Function 0 */\r
DWORD ScmrCloseServiceHandle([in] handle_t BindingHandle,\r
[in] SC_HANDLE hSCObject);\r
\r
- /* Service 1 */\r
-// BOOL ScmrControlService([in] handle_t BindingHandle,\r
-// [in] SC_HANDLE hService,\r
-// [in] DWORD dwControl,\r
-// [out] LPSERVICE_STATUS lpServiceStatus);\r
+ /* Function 1 */\r
+ BOOL ScmrControlService([in] handle_t BindingHandle,\r
+ [in] SC_HANDLE hService,\r
+ [in] DWORD dwControl,\r
+ [out] LPSERVICE_STATUS lpServiceStatus);\r
\r
- /* Service 2 */\r
+ /* Function 2 */\r
DWORD ScmrDeleteService([in] handle_t BindingHandle,\r
[in] SC_HANDLE hService);\r
\r
- DWORD ScmrOpenSCManagerA([in] handle_t BindingHandle,\r
- [in, string, unique] LPCSTR lpMachineName,\r
- [in, string, unique] LPCSTR lpDatabaseName,\r
+ /* Function 3 */\r
+ DWORD ScmrLockServiceDatabase([in] handle_t BindingHandle,\r
+ [in] SC_HANDLE hSCManager,\r
+ [out] SC_LOCK *hLock);\r
+\r
+ /* Function 4 */\r
+ DWORD ScmrQueryServiceObjectSecurity([in] handle_t BindingHandle); /* FIXME */\r
+\r
+ /* Function 5 */\r
+ DWORD ScmrSetServiceObjectSecurity([in] handle_t BindingHandle); /* FIXME */\r
+\r
+ /* Function 6 */\r
+ DWORD ScmrQueryServiceStatus([in] handle_t BindingHandle,\r
+ [in] SC_HANDLE hSCManager,\r
+ [out] LPSERVICE_STATUS lpServiceStatus);\r
+\r
+ /* Function 7 */\r
+ DWORD ScmrSetServiceStatus([in] handle_t BindingHandle); /* FIXME */\r
+\r
+ /* Function 8 */\r
+ DWORD ScmrUnlockServiceDatabase([in] handle_t BindingHandle,\r
+ [in] SC_LOCK hLock);\r
+\r
+ /* Function 9 */\r
+ DWORD ScmrNotifyBootConfigStatus([in] handle_t BindingHandle,\r
+ [in] BOOL BootAcceptable);\r
+ /* Function 11 */\r
+ DWORD ScmrChangeServiceConfigW([in] handle_t BiningHandle,\r
+ [in] SC_HANDLE hSCManager,\r
+ [in] DWORD dwServiceType,\r
+ [in] DWORD dwStartType,\r
+ [in] DWORD dwErrorControl,\r
+ [in, string, ref] LPCWSTR lpBinaryPathName,\r
+ [in, string, unique] LPCWSTR lpLoadOrderGroup,\r
+ [in, out, unique] LPDWORD lpdwTagId,\r
+ [in, size_is(dwDependenciesLength), unique] LPCWSTR lpDependencies,\r
+ [in] DWORD dwDependenciesLength,\r
+ [in, string, unique] LPCWSTR lpServiceStartName,\r
+ [in, size_is(dwPasswordLength), unique] LPCWSTR lpPassword,\r
+ [in] DWORD dwPasswordLength,\r
+ [in, string, unique] LPCWSTR lpDisplayName);\r
+\r
+ /* Function 12 */\r
+ DWORD ScmrCreateServiceW([in] handle_t BindingHandle,\r
+ [in] SC_HANDLE hSCManager,\r
+ [in, string, ref] LPCWSTR lpServiceName,\r
+ [in, string, unique] LPCWSTR lpDisplayName,\r
[in] DWORD dwDesiredAccess,\r
- [out] SC_HANDLE *hScm);\r
+ [in] DWORD dwServiceType,\r
+ [in] DWORD dwStartType,\r
+ [in] DWORD dwErrorControl,\r
+ [in, string, ref] LPCWSTR lpBinaryPathName,\r
+ [in, string, unique] LPCWSTR lpLoadOrderGroup,\r
+ [in, out, unique] LPDWORD lpdwTagId,\r
+ [in, size_is(dwDependenciesLength), unique] LPCWSTR lpDependencies,\r
+ [in] DWORD dwDependenciesLength,\r
+ [in, string, unique] LPCWSTR lpServiceStartName,\r
+ [in, size_is(dwPasswordLength), unique] LPCWSTR lpPassword,\r
+ [in] DWORD dwPasswordLength,\r
+ [out] SC_HANDLE *hService);\r
\r
+\r
+ /* Function 15 */\r
DWORD ScmrOpenSCManagerW([in] handle_t BindingHandle,\r
[in, string, unique] LPCWSTR lpMachineName,\r
[in, string, unique] LPCWSTR lpDatabaseName,\r
[in] DWORD dwDesiredAccess,\r
[out] SC_HANDLE *hScm);\r
\r
- SC_HANDLE ScmrOpenServiceA([in] handle_t BindingHandle,\r
+ /* Function 16 */\r
+ SC_HANDLE ScmrOpenServiceW([in] handle_t BindingHandle,\r
[in] SC_HANDLE hSCManager,\r
- [in, string] LPCSTR lpServiceName,\r
+ [in, string] LPCWSTR lpServiceName,\r
[in] DWORD dwDesiredAccess,\r
[out] SC_HANDLE *hScm);\r
\r
- SC_HANDLE ScmrOpenServiceW([in] handle_t BindingHandle,\r
+\r
+ /* Function 27 */\r
+ DWORD ScmrOpenSCManagerA([in] handle_t BindingHandle,\r
+ [in, string, unique] LPCSTR lpMachineName,\r
+ [in, string, unique] LPCSTR lpDatabaseName,\r
+ [in] DWORD dwDesiredAccess,\r
+ [out] SC_HANDLE *hScm);\r
+\r
+ /* Function 28 */\r
+ SC_HANDLE ScmrOpenServiceA([in] handle_t BindingHandle,\r
[in] SC_HANDLE hSCManager,\r
- [in, string] LPCWSTR lpServiceName,\r
+ [in, string] LPCSTR lpServiceName,\r
[in] DWORD dwDesiredAccess,\r
[out] SC_HANDLE *hScm);\r
}\r