mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 20:36:35 +00:00

Implement ControlService() RPCRT4.DLL: Disable a bogus buffer overflow check in NdrSimpleStructMarshall. svn path=/trunk/; revision=14658
123 lines
4.2 KiB
Text
123 lines
4.2 KiB
Text
/*
|
|
* Service Control Manager (SCM) interface definition
|
|
*/
|
|
|
|
//#include <windef.h>
|
|
//#include <winsvc.h>
|
|
|
|
#define DWORD unsigned long
|
|
#define BOOL unsigned long
|
|
#define SC_HANDLE unsigned int
|
|
#define SC_LOCK unsigned int
|
|
#define LPCSTR char*
|
|
#define LPCWSTR wchar_t*
|
|
#define LPDWORD unsigned long*
|
|
|
|
[
|
|
uuid(367abb81-9844-35f1-ad32-98f038001003),
|
|
version(2.0),
|
|
pointer_default(unique),
|
|
explicit_handle
|
|
]
|
|
interface svcctl
|
|
{
|
|
cpp_quote("#if 0");
|
|
typedef struct _SERVICE_STATUS
|
|
{
|
|
DWORD dwServiceType;
|
|
DWORD dwCurrentState;
|
|
DWORD dwControlsAccepted;
|
|
DWORD dwWin32ExitCode;
|
|
DWORD dwServiceSpecificExitCode;
|
|
DWORD dwCheckPoint;
|
|
DWORD dwWaitHint;
|
|
} SERVICE_STATUS, *LPSERVICE_STATUS;
|
|
cpp_quote("#endif");
|
|
|
|
/* Function 0 */
|
|
DWORD ScmrCloseServiceHandle([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hSCObject);
|
|
|
|
/* Function 1 */
|
|
BOOL ScmrControlService([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hService,
|
|
[in] DWORD dwControl,
|
|
[out] LPSERVICE_STATUS lpServiceStatus);
|
|
|
|
/* Function 2 */
|
|
DWORD ScmrDeleteService([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hService);
|
|
|
|
/* Function 3 */
|
|
DWORD ScmrLockServiceDatabase([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hSCManager,
|
|
[out] SC_LOCK *hLock);
|
|
|
|
/* Function 4 */
|
|
// DWORD ScmrQueryServiceObjectSecurity();
|
|
|
|
/* Function 5 */
|
|
// DWORD ScmrSetServiceObjectSecurity();
|
|
|
|
/* Function 6 */
|
|
// DWORD ScmrQueryServiceStatus();
|
|
|
|
/* Function 7 */
|
|
// DWORD ScmrSetServiceStatus();
|
|
|
|
/* Function 8 */
|
|
DWORD ScmrUnlockServiceDatabase([in] handle_t BindingHandle,
|
|
[in] SC_LOCK hLock);
|
|
|
|
/* Function 9 */
|
|
DWORD ScmrNotifyBootConfigStatus([in] handle_t BindingHandle,
|
|
[in] BOOL BootAcceptable);
|
|
|
|
|
|
/* Function 12 */
|
|
DWORD ScmrCreateServiceW([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hSCManager,
|
|
[in, string, ref] LPCWSTR lpServiceName,
|
|
[in, string, ref] LPCWSTR lpDisplayName,
|
|
[in] DWORD dwDesiredAccess,
|
|
[in] DWORD dwServiceType,
|
|
[in] DWORD dwStartType,
|
|
[in] DWORD dwErrorControl,
|
|
[in, string, ref] LPCWSTR lpBinaryPathName,
|
|
[in, string, unique] LPCWSTR lpLoadOrderGroup,
|
|
[out, unique] LPDWORD lpdwTagId,
|
|
[in, string, unique] LPCWSTR lpDependencies,
|
|
[in, string, unique] LPCWSTR lpServiceStartName,
|
|
[in, string, unique] LPCWSTR lpPassword);
|
|
|
|
|
|
/* Function 15 */
|
|
DWORD ScmrOpenSCManagerW([in] handle_t BindingHandle,
|
|
[in, string, unique] LPCWSTR lpMachineName,
|
|
[in, string, unique] LPCWSTR lpDatabaseName,
|
|
[in] DWORD dwDesiredAccess,
|
|
[out] SC_HANDLE *hScm);
|
|
|
|
/* Function 16 */
|
|
SC_HANDLE ScmrOpenServiceW([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hSCManager,
|
|
[in, string] LPCWSTR lpServiceName,
|
|
[in] DWORD dwDesiredAccess,
|
|
[out] SC_HANDLE *hScm);
|
|
|
|
|
|
/* Function 27 */
|
|
DWORD ScmrOpenSCManagerA([in] handle_t BindingHandle,
|
|
[in, string, unique] LPCSTR lpMachineName,
|
|
[in, string, unique] LPCSTR lpDatabaseName,
|
|
[in] DWORD dwDesiredAccess,
|
|
[out] SC_HANDLE *hScm);
|
|
|
|
/* Function 28 */
|
|
SC_HANDLE ScmrOpenServiceA([in] handle_t BindingHandle,
|
|
[in] SC_HANDLE hSCManager,
|
|
[in, string] LPCSTR lpServiceName,
|
|
[in] DWORD dwDesiredAccess,
|
|
[out] SC_HANDLE *hScm);
|
|
|
|
}
|