Example #1
0
        public void Start(Service service, string[] args)
        {
            var servicePtr = ADVANCED_API.OpenService(_managerPtr, service.Name, SERVICE_ACCESS.SERVICE_START);

            if (servicePtr == IntPtr.Zero)
            {
                var error = Marshal.GetLastWin32Error();
                throw new Win32Exception(error);
            }
            var started = ADVANCED_API.StartService(servicePtr, args.Length, args);
            var closed  = ADVANCED_API.CloseServiceHandle(servicePtr);

            if (!started || !closed)
            {
                var error = Marshal.GetLastWin32Error();
                throw new Win32Exception(error);
            }
        }